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.
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:
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
Kua hanga e au te waehere, me hanga ano Kōnae->Hou.
Ka whiwhi tatou i nga mea e whai ake nei:
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:
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:
Inaianei me whakaputa e koe te waehere Kōnae-> Hanga
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:
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:
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
Kei roto etahi taputapu kei roto i te papaa raraunga, me hanga e taatau Whakatika-> Waihanga Tūmau
Inaianei me ngana ki te hono atu ki a ia:
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:
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);
}
}