He ʻōnaehana no ka hoʻokele ʻana i nā ʻano lako like ʻole a me nā lako polokalamu.
Kākoʻo ʻo TANGO i kēia manawa i nā paepae 4: Linux, Windows NT, Solaris a me HP-UX.
Maanei e wehewehe mākou i ka hana ʻana me Linux (Ubuntu 18.04)
No ke aha ia?
Hoʻomaʻamaʻa i ka hana me nā lako like ʻole a me nā lako polokalamu.
ʻAʻole pono ʻoe e noʻonoʻo e pili ana i ka mālama ʻana i ka ʻikepili i ka waihona, ua hana ʻia no ʻoe.
He mea pono wale nō e wehewehe i ke ʻano o nā ʻike koho balota.
ʻAʻole hiki iaʻu ke hoʻokuʻu iā ia mai ke kumu kumu; Ua hoʻohana au i kahi kiʻi mākaukau o TangoBox 9.3 e hana.
Hōʻike nā ʻōlelo aʻoaʻo pehea e hoʻouka ai mai nā pūʻolo.
He aha ia mea?
JIVE — hoʻohana ʻia e nānā a hoʻoponopono i ka waihona TANGO.
POGO — mea hoʻoheheʻe code no nā kikowaena mea TANGO.
Astor — luna polokalamu no ka ʻōnaehana TANGO.
E hoihoi wale mākou i nā mea mua ʻelua.
Kākoʻo ʻia nā ʻōlelo papahana
C
C ++
Iawa
pio ka
Python
matlab
LabVview
Ua hana au me ia ma python & c++. Maanei e hoʻohana ʻia ʻo C++ ma ke ʻano he laʻana.
I kēia manawa, e neʻe kākou i ka wehewehe ʻana i ke ʻano o ka hoʻopili ʻana i ka hāmeʻa iā TANGO a pehea e hana pū ai me ia. E lawe ʻia ka uku ma ke ʻano he laʻana GPS neo-6m-0-001:
E like me kāu e ʻike ai ma ke kiʻi, hoʻopili mākou i ka papa i ka PC ma o UART CP2102. Ke hoʻohui ʻia i kahi PC, ʻike ʻia ka hāmeʻa /dev/ttyUSB[0-N], maʻamau /dev/ttyUSB0.
POGO
E hoʻomaka kākou pogo, a hoʻopuka i ka code skeleton no ka hana ʻana me kā mākou papa.
pogo
Ua hana mua au i ke code, e hana hou kāua Waihona-> Hou.
Loaʻa iā mākou kēia mau mea:
ʻO kā mākou mea hana (i ka wā e hiki mai ana, ma ke ʻano o ka ʻaoʻao e manaʻo mākou ʻo ka ʻāpana polokalamu) ʻaʻohe mea a loaʻa ʻelua mau kauoha mana: Moku'āina & kūlana.
Pono e hoʻopiha ʻia me nā ʻano pono:
Mea lako - nā waiwai paʻamau a mākou e hoʻoili ai i ka hāmeʻa e hoʻomaka ai; no ka papa GPS, pono ʻoe e hoʻololi i ka inoa o ka papa ma ka ʻōnaehana com="/dev/ttyUSB0" a me ka māmā puka com baudrade=9600
Nā kauoha - nā kauoha e hoʻomalu i kā mākou hāmeʻa; hiki ke hāʻawi ʻia i nā hoʻopaʻapaʻa a me ka waiwai hoʻihoʻi.
MOKU'ĀINA - hoʻihoʻi i ke kūlana o kēia manawa, mai States
kūlana - hoʻihoʻi i ke kūlana o kēia manawa, ʻo ia ka hoʻokō o ke kaula MOKU'ĀINA
GPSArray - hoʻi GPS kaula i ke ano DevVarCharArray
A laila, hoʻonohonoho i nā ʻano mea hiki ke heluhelu a kākau ʻia iā ia. Nā ʻano Scalar - nā ʻano maʻalahi (char, string, long, etc.) Nā ʻano kikoʻī - nā papa kuhikuhi hoʻokahi Nā ʻano kiʻi - nā papa hana ʻelua
States - ka moku'āina i loaʻa ai kā mākou mea hana.
hamama — ua hamama ka mea hana.
kokoke - ua pani ʻia ka mea hana.
HAULE - kuhi hewa.
ON - loaʻa ka ʻikepili mai ka mea hana.
aku - ʻaʻohe ʻikepili mai ka hāmeʻa.
Laʻana o ka hoʻohui ʻana i kahi ʻano gps_string:
Kau koho manawa i ms, ehia mau manawa e hoʻonui ʻia ka waiwai gps_string. Inā ʻaʻole i kuhikuhi ʻia ka manawa hou, e hōʻano hou ʻia ke ʻano ma ke noi wale nō.
Ua hiki mai:
I kēia manawa pono ʻoe e hana i ke code Waihona-> Hana
Ma ka maʻamau, ʻaʻole i hana ʻia ka Makefile; ʻo ka manawa mua ʻoe e nānā i ka pahu e hana ai. Hana ʻia kēia i ʻole e holoi ʻia nā hoʻololi i hana ʻia i ka wā o kahi hanauna hou. Ma hope o ka hana ʻana i hoʻokahi manawa a hoʻonohonoho iā ia no kāu papahana (kāinoa i nā kī hōʻuluʻulu, nā faila hou aku), hiki iā ʻoe ke poina iā ia.
I kēia manawa e neʻe kākou i ka hoʻolālā. pogo me ka hana ʻana i kēia mau mea no mākou:
E hoihoi mākou iā NEO6M.cpp & NEO6M.h. E lawe kākou i kekahi laʻana o ka mea kūkulu papa:
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 ka mea ma laila a he aha ka mea nui ma ʻaneʻi? Hāʻawi ka hana init_device () i ka hoʻomanaʻo no kā mākou mau ʻano: gps_string & gps_array, akā ʻaʻole ia he mea nui. ʻO ka mea nui maʻaneʻi, eia nā ʻōlelo:
/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
.......
/*----- PROTECTED REGION END -----*/ // NEO6M::constructor_1
ʻAʻole e hoʻokomo ʻia nā mea a pau i loko o kēia poloka manaʻo i ka pogo i ka wā o ka hoʻoponopono hou ʻana o nā code nee aku !. ʻO nā mea a pau ʻaʻole i loko o nā poloka! ʻO kēia nā wahi e hiki ai iā mākou ke papahana a hana i kā mākou hoʻoponopono ponoʻī.
Ke makemake mākou e heluhelu i ka waiwai waiwai gps_string, e kapa ʻia nā hana ma ke ʻano penei: mau_hoʻokō_hook, read_attr_hardware и heluhelu_gps_string. E hoʻopiha ka Read_gps_string i ka gps_string me ka waiwai.
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
}
Hoʻohui
E hele i ka waihona kumu a:
make
E hōʻuluʻulu ʻia ka papahana i loko o ka waihona ~/DeviceServers.
tango-cs@tangobox:~/DeviceServers$ ls
NEO6M
JIVE
jive
Aia kekahi mau mea i loko o ka waihona, e hana mākou i kā mākou Hoʻoponopono->E hana i ke kikowaena
I kēia manawa e hoʻāʻo kāua e hoʻopili iā ia:
ʻAʻohe mea e hana, pono mākou e holo i kā mākou papahana:
sudo ./NEO6M neo6m -v2
Hiki iaʻu ke hoʻopili wale i ka com port me nā kuleana aa-A. v — pae logging.
I kēia manawa hiki iā mākou ke hoʻohui:
Mea kūʻai aku
Ma nā kiʻi kiʻi, ʻoiaʻiʻo ka maikaʻi o ka nānā ʻana i nā kiʻi, akā pono ʻoe i kahi mea e pono ai. E kākau kāua i kahi mea kūʻai aku e hoʻopili i kā mākou hāmeʻa a lawe i nā heluhelu mai ia mea.
#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);
}
}