Mana Tango

Mana Tango

He aha TANGO?

He punaha mo te whakahaere i nga momo taputapu me nga rorohiko.
Kei te tautoko a TANGO i nga papaaho e 4: Linux, Windows NT, Solaris me HP-UX.
I konei ka whakaahuahia te mahi me te Linux (Ubuntu 18.04)

Hei aha?

Ka ngawari te mahi me nga momo taputapu me nga rorohiko.

  • Kaore koe e whai whakaaro me pehea te penapena raraunga i roto i te papanga raraunga, kua oti te mahi mo koe.
  • He mea tika ki te whakaahua i te tikanga mo nga pukoro pooti.
  • Ka whakaheke i to waehere katoa ki te paerewa kotahi.

Kei hea te tiki?

Kaore i taea e au te whakarewa mai i te waehere puna; I whakamahia e ahau tetahi ahua kua oti te hanga o TangoBox 9.3 hei mahi.
Ko nga tohutohu e whakaatu ana me pehea te whakauru mai i nga kohinga.

He aha kei roto?

  • HANGI — whakamahia ki te tiro me te whakatika i te putunga raraunga TANGO.
  • POGO — kaihanga waehere mo nga kaitoro taputapu TANGO.
  • Astor — kaiwhakahaere kaupapa mo te punaha TANGO.

Ka aro noa tatou ki nga waahanga tuatahi e rua.

Nga reo hotaka tautoko

  • C
  • C ++
  • Java
  • JavaScript
  • nānati
  • matlab
  • LabVIEW

I mahi tahi ahau me te python & c++. I konei ka whakamahia a C++ hei tauira.

Inaianei ka anga atu ki te whakamaarama me pehea te hono i te taputapu ki a TANGO me pehea te mahi. Ka tangohia te utu hei tauira GPS neo-6m-0-001:

Mana Tango

Ka taea e koe te kite i te pikitia, ka hono matou i te poari ki te PC ma te UART CP2102. Ina hono ki te PC, ka puta te taputapu /dev/ttyUSB[0-N], te tikanga /dev/ttyUSB0.

POGO

Inaianei me whakarewa pogo, me te whakaputa i te waehere koiwi mo te mahi me to maatau poari.

pogo

Mana Tango

Kua hanga e au te waehere, me hanga ano Kōnae->Hou.

Mana Tango

Ka whiwhi tatou i nga mea e whai ake nei:

Mana Tango

Ko ta maatau taputapu (i nga wa kei te heke mai, ma te taputapu ka kiia ko te waahanga rorohiko) kei te noho kau, e rua nga whakahau mana: State & Tūnga.

Me whakakiia ki nga huanga e tika ana:

Taonga Pūrere - nga uara taunoa ka whakawhitia e matou ki te taputapu ki te arawhiti; mo te poari GPS, me whakawhiti e koe te ingoa o te poari i roto i te punaha com="/dev/ttyUSB0" me te tere tauranga com baudrade=9600

Nga whakahau — he whakahau ki te whakahaere i a maatau taputapu; ka taea te hoatu tautohetohe me te uara whakahoki.

  • Tuhinga - ka whakahoki i te ahua o naianei, mai i States
  • Tuhinga - ka whakahoki i te mana o naianei, koinei te taapiri o te aho Tuhinga
  • GPSArray - hoki mai GPS aho i te ahua DevVarCharArray

Whai muri, whakaritea nga huanga o te taputapu ka taea te panui/tuhi ki a/mai.
Huanga Tauine — nga huanga ngawari (char, string, long, etc.)
Huanga Hihinga - huinga ahu kotahi
Huanga Atahanga - huinga ahu-rua

States — te ahua kei reira to maatau taputapu.

  • OPEN — kua tuwhera te taputapu.
  • Tuhinga - kua kati te taputapu.
  • HUNGA - hapa.
  • ON — whiwhi raraunga mai i te taputapu.
  • OFF - kaore he raraunga mai i te taputapu.

He tauira mo te taapiri i tetahi huanga aho_gps:

Mana Tango

Te wa pooti te wa i roto i te ms, e hia nga wa ka whakahoutia te uara gps_string. Ki te kore e tohua te wa whakahou, ka whakahouhia te huanga i runga i te tono.

Kua tupu:

Mana Tango

Inaianei me whakaputa e koe te waehere Kōnae-> Hanga

Mana Tango

Ma te taunoa, kaore i hangaia te Makefile; ko te wa tuatahi me tirotiro koe i te pouaka hei hanga. Ka mahia tenei kia kore ai e mukua nga huringa i mahia i roto i te reanga hou. Ka oti te hanga me te whirihora mo to kaupapa (rehitahia nga taviri whakahiato, etahi atu konae), ka wareware koe.

Inaianei ka anga whakamua ki te kaupapa. pogo me te hanga i nga mea e whai ake nei mo tatou:

Mana Tango

Ka hiahia matou ki NEO6M.cpp & NEO6M.h. Me tango tetahi tauira o te kaihanga akomanga:

NEO6M::NEO6M(Tango::DeviceClass *cl, string &s)
 : TANGO_BASE_CLASS(cl, s.c_str())
{
    /*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
    init_device();

    /*----- PROTECTED REGION END -----*/    //  NEO6M::constructor_1
}

He aha kei reira, he aha te mea nui i konei? Ko te mahi init_device() ka tohatoha mahara mo o tatou huanga: aho_gps & gps_array, engari ehara i te mea nui. Ko te mea nui i konei, ko enei nga korero:

/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
    .......
/*----- PROTECTED REGION END -----*/    //  NEO6M::constructor_1

Ko nga mea katoa kei roto i tenei poraka korero e kore e uru ki roto i te pogo i nga wa o nga whakahoutanga waehere ka whai ake neke atu!. Ko nga mea katoa kaore i roto i nga poraka ka waiho! Koinei nga waahi ka taea e tatou te whakarite me te hanga i a tatou ake whakatika.

Inaianei he aha nga mahi matua kei roto i te akomanga? NEO6M:

void always_executed_hook();
void read_attr_hardware(vector<long> &attr_list);
void read_gps_string(Tango::Attribute &attr);
void read_gps_array(Tango::Attribute &attr);

Ina hiahia tatou ki te panui i te uara huanga aho_gps, ka karangahia nga mahi i roto i te raupapa e whai ake nei: mau_whakamahia_matau, pānui_attr_pūmārō и panui_gps_string. Ma te panui_gps_string ka whakakiia te gps_string ki te uara.

void NEO6M::read_gps_string(Tango::Attribute &attr)
{
    DEBUG_STREAM << "NEO6M::read_gps_string(Tango::Attribute &attr) entering... " << endl;
    /*----- PROTECTED REGION ID(NEO6M::read_gps_string) ENABLED START -----*/
    //  Set the attribute value

        *this->attr_gps_string_read = Tango::string_dup(this->gps.c_str());

    attr.set_value(attr_gps_string_read);

    /*----- PROTECTED REGION END -----*/    //  NEO6M::read_gps_string
}

Whakahiato

Haere ki te kōpaki pūtake ka:

make

Ka whakahiatohia te papatono ki te kōpaki ~/DeviceServers.

tango-cs@tangobox:~/DeviceServers$ ls
NEO6M

HANGI

jive

Mana Tango

Kei roto etahi taputapu kei roto i te papaa raraunga, me hanga e taatau Whakatika-> Waihanga Tūmau

Mana Tango

Inaianei me ngana ki te hono atu ki a ia:

Mana Tango

Kaore he mea e mahi, tuatahi me whakahaere ta maatau kaupapa:

sudo ./NEO6M neo6m -v2

Ka taea e au te hono atu ki te tauranga com me nga tika pakiaka-A. v — taumata takiuru.

Inaianei ka taea e taatau te hono:

Mana Tango

Kaihoko

I roto i nga whakairoiro, he pai te titiro ki nga pikitia, engari me hiahia koe ki tetahi mea whai hua ake. Me tuhi he kaihoko ka hono atu ki ta maatau taputapu ka tango panui mai i a raatau.

#include <tango.h>
using namespace Tango;

int main(int argc, char **argv) {
    try {

        //
        // create a connection to a TANGO device
        //

        DeviceProxy *device = new DeviceProxy("NEO6M/neo6m/1");

        //
        // Ping the device
        //

        device->ping();

        //
        // Execute a command on the device and extract the reply as a string
        //

        vector<Tango::DevUChar> gps_array;

        DeviceData cmd_reply;
        cmd_reply = device->command_inout("GPSArray");
        cmd_reply >> gps_array;

        for (int i = 0; i < gps_array.size(); i++) {            
            printf("%c", gps_array[i]);
        }
        puts("");

        //
        // Read a device attribute (string data type)
        //

        string spr;
        DeviceAttribute att_reply;
        att_reply = device->read_attribute("gps_string");
        att_reply >> spr;
        cout << spr << endl;

        vector<Tango::DevUChar> spr2;
        DeviceAttribute att_reply2;
        att_reply2 = device->read_attribute("gps_array");
        att_reply2.extract_read(spr2);

        for (int i = 0; i < spr2.size(); i++) {
            printf("%c", spr2[i]);
        }

        puts("");

    } catch (DevFailed &e) {
        Except::print_exception(e);
        exit(-1);
    }
}

Me pehea te whakahiato:

g++ gps.cpp -I/usr/local/include/tango -I/usr/local/include -I/usr/local/include -std=c++0x -Dlinux -L/usr/local/lib -ltango -lomniDynamic4 -lCOS4 -lomniORB4 -lomnithread -llog4tango -lzmq -ldl -lpthread -lstdc++

Hua:

tango-cs@tangobox:~/workspace/c$ ./a.out 
$GPRMC,,V,,,,,,,,,,N*53

$GPRMC,,V,,,,,,,,,,N*53

$GPRMC,,V,,,,,,,,,,N*53

I whiwhi matou i te hua hei whakahoki whakahau, tango i nga huanga o te aho me te huinga o nga tohu.

tohutoro

I tuhia e ahau te tuhinga mo au ake, no te mea i muri i etahi wa ka timata ahau ki te wareware me pehea te mahi.

Mauruuru koe mo tou whakarongo.

Source: will.com

Tāpiri i te kōrero