Izy io dia rafitra fitantanana fitaovana sy rindrambaiko isan-karazany.
TANGO amin'izao fotoana izao dia manohana sehatra 4: Linux, Windows NT, Solaris ary HP-UX.
Eto isika dia mamaritra ny miasa amin'ny Linux (Ubuntu 18.04)
Inona no anton'izany?
Manamora ny asa miaraka amin'ny fitaovana sy rindrambaiko isan-karazany.
Tsy mila mieritreritra ny fomba fitahirizana angon-drakitra ao amin'ny database ianao, efa natao ho anao izany.
Ilaina fotsiny ny mamaritra ny mekanika ho an'ny sensor fandatsaham-bato.
Tsy afaka namoaka izany avy amin'ny kaody loharano aho;
Ny torolàlana dia mamaritra ny fomba fametrahana avy amin'ny fonosana.
Inona no ao anatiny?
JIVE — ampiasaina hijerena sy hanovana ny angon-drakitra TANGO.
POGO - mpamorona kaody ho an'ny mpizara fitaovana TANGO.
Astor - mpitantana ny programa ho an'ny rafitra TANGO.
Ny singa roa voalohany ihany no hahaliana antsika.
Fiteny fandaharana tohanana
C
C ++
Java
JavaScript
Python
MatLab
LabVIEW
Niasa tamin'ny python & c++ aho. Eto dia C++ no ampiasaina ho ohatra.
Andeha isika hifindra amin'ny famaritana ny fomba hampifandray ny fitaovana amin'ny TANGO sy ny fomba miasa miaraka aminy. Horaisina ho ohatra ny sarany GPS neo-6m-0-001:
Araka ny hitanao eo amin'ny sary, mampifandray ny birao amin'ny PC amin'ny alalan'ny UART CP2102. Rehefa mifandray amin'ny PC dia miseho ilay fitaovana /dev/ttyUSB[0-N], matetika /dev/ttyUSB0.
Ny fitaovanay (amin'ny ho avy, amin'ny alàlan'ny fitaovana no tiana holazaina amin'ny ampahany amin'ny rindrambaiko) dia foana ary manana baiko fanaraha-maso roa: State & Status.
Tsy maintsy fenoina ireo toetra ilaina:
Fananan'ny fitaovana - ny soatoavina default izay afindranay amin'ny fitaovana hanombohana azy ho an'ny birao GPS, mila mamindra ny anaran'ny birao ao amin'ny rafitra ianao com="/dev/ttyUSB0" ary com port speed baudrade=9600
didy — baiko hifehy ny fitaovantsika;
FANJAKANA - mamerina ny fanjakana ankehitriny, avy amin'ny States
STATUS - mamerina ny sata ankehitriny, izany no famenon'ny tady FANJAKANA
Vanim-potoana fandatsaham-bato fotoana amin'ny ms, impiry no havaozina ny sanda gps_string. Raha tsy voafaritra ny fotoana fanavaozana, dia havaozina ihany ny toetra raha misy fangatahana.
Nitranga:
Ankehitriny dia mila mamorona ny code ianao File-> Mamorona
Amin'ny alàlan'ny default, ny Makefile dia tsy noforonina tamin'ny fotoana voalohany mila manamarina ny boaty mba hamoronana azy. Atao izany mba tsy ho voafafa mandritra ny taranaka vaovao ny fanovana natao taminy. Rehefa namorona azy indray mandeha ary nanamboatra azy ho an'ny tetikasanao (misoratra anarana ny fanalahidin'ny compilation, rakitra fanampiny), azonao adino izany.
Andeha isika izao hiroso amin'ny fandaharana. pogo dia namorona izao manaraka izao ho antsika:
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
}
Inona no misy ary inona no zava-dehibe eto? Ny asa init_device() dia manome fahatsiarovana ho an'ny toetrantsika: gps_string & gps_array, nefa tsy zava-dehibe izany. Ny zava-dehibe indrindra eto, ireto ny hevitra:
/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
.......
/*----- PROTECTED REGION END -----*/ // NEO6M::constructor_1
Ny zavatra rehetra ao anatin'ity sakana fanehoan-kevitra ity dia tsy hampidirina ao amin'ny pogo mandritra ny fanavaozana kaody manaraka mialà!. Ny zavatra rehetra tsy ao anaty blocs dia ho! Ireo no toerana ahafahantsika manao fandaharana sy manao fanitsiana manokana.
Rehefa te hamaky ny sanda toetra gps_string, ireo fiasa dia hantsoina amin'ny filaharana manaraka: foana_tanterahana_hook, read_attr_hardware и read_gps_string. Read_gps_string dia hameno gps_string amin'ny sandany.
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
}
fitambaran'ireo
Mandehana any amin'ny lahatahiry loharano ary:
make
Ny programa dia hatambatra ao amin'ny lahatahiry ~/DeviceServers.
tango-cs@tangobox:~/DeviceServers$ ls
NEO6M
JIVE
jive
Efa misy fitaovana sasantsasany ao amin'ny tahiry, andao izao hamorona ny antsika Ahitsio-> Mamorona Server
Andeha isika hiezaka hifandray aminy:
Tsy misy na inona na inona mandeha, mila mihazakazaka ny programa aloha isika:
sudo ./NEO6M neo6m -v2
Afaka mifandray amin'ny port com ihany aho miaraka amin'ny zo faka-A. v - haavon'ny logging.
Afaka mifandray isika izao:
mpanjifa
Amin'ny sary dia tsara tokoa ny mijery sary, saingy mila zavatra mahasoa kokoa ianao. Andao hanoratra mpanjifa iray izay hifandray amin'ny fitaovantsika ary handray famakiana avy amin'izany.
#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);
}
}