Ke sistimi e tsamaisang lisebelisoa tse fapaneng tsa software le software.
TANGO hajoale e ts'ehetsa liforomo tse 4: Linux, Windows NT, Solaris le HP-UX.
Mona re tla hlalosa ho sebetsa le Linux (Ubuntu 18.04)
E etselitsoe eng?
E nolofatsa mosebetsi ka lisebelisoa tse fapaneng le software.
Ha ho hlokahale hore u nahane ka mokhoa oa ho boloka data ho database, e se e u etselitse.
Hoa hlokahala feela ho hlalosa mochine oa li-sensor tsa likhetho.
E fokotsa khoutu eohle ea hau ho ea boemong bo le bong.
Ha ke khone ho e qala ho tsoa ho khoutu ea mohloli; Ke sebelisitse setšoantšo se seng se entsoe sa TangoBox 9.3 ho sebetsa.
Litaelo li hlalosa mokhoa oa ho kenya liphutheloana.
E akarelletsa eng?
jive — e sebedisetswang ho sheba le ho lokisa polokelongtshedimosetso ya TANGO.
POGO — jenereithara ea khoutu bakeng sa liseva tsa sesebelisoa sa TANGO.
Astor - mookameli oa lenaneo bakeng sa tsamaiso ea TANGO.
Re tla thahasella feela likarolo tse peli tsa pele.
Lipuo tsa lenaneo tse tšehetsoeng
C
C ++
Java
Javascript
python
matlab
LabVIEW
Ke sebelitse le eona ho python & c ++. Mona C++ e tla sebelisoa e le mohlala.
Joale a re tsoeleng pele ho tlhaloso ea mokhoa oa ho hokahanya sesebelisoa le TANGO le mokhoa oa ho sebetsa le sona. Tefiso e tla nkoa e le mohlala GPS neo-6m-0-001:
Joalokaha u bona setšoantšong, re hokahanya boto ho PC ka UART CP2102. Ha o hokahantsoe le PC, sesebelisoa sea hlaha /dev/ttyUSB[0-N], hangata /dev/ttyUSB0.
POGO
Joale ha re qaleng pogo, le ho hlahisa khoutu ea skeleton bakeng sa ho sebetsa le boto ea rona.
pogo
Ke se ke entse khoutu, ha re e bopeng hape Faele-> Ncha.
Re fumana tse latelang:
Sesebelisoa sa rona (nakong e tlang, ka sesebelisoa re tla bolela karolo ea software) ha se na letho ebile se na le litaelo tse peli tsa taolo: State & boemo.
E tlameha ho tlatsoa ka litšoaneleho tse hlokahalang:
Thepa ea Sesebelisoa - litekanyetso tsa kamehla tseo re li fetisetsang sesebelisoa ho e qala; bakeng sa boto ea GPS, o hloka ho fetisetsa lebitso la boto tsamaisong. com="/dev/ttyUSB0" le lebelo la koung ea com baudrade=9600
Melao - litaelo tsa ho laola sesebelisoa sa rona; ba ka fuoa likhang le boleng ba ho khutlisa.
STATE - khutlisetsa boemo ba hona joale, ho tloha States
STATUS - e khutlisetsa boemo ba hona joale, sena ke tlatsetso ea khoele ho STATE
GPSArray - khutlela GPS khoele ka sebopeho DevVarCharArray
Ka mor'a moo, beha litšoaneleho tsa lisebelisoa tse ka baloang / ho ngoloa ho / ho tloha ho eona. Litšobotsi tsa Scalar - litšobotsi tse bonolo (char, khoele, telele, joalo-joalo) Litšobotsi tsa Spectrum - lihlopha tsa mahlakore a le mong Litšobotsi tsa Litšoantšo - lihlopha tse peli-dimensional
States - boemo boo sesebelisoa sa rona se leng ho sona.
Open — sesebelisoa se butsoe.
MOTSOALLE - sesebelisoa se koetsoe.
TLHOKOMELO - phoso.
ON — fumana data ho tsoa sesebelisoa.
Off - ha ho data ho tsoa sesebelisoa.
Mohlala oa ho eketsa tšobotsi gps_string:
Nako ea likhetho nako ho ms, hore na boleng ba gps_string bo tla ntlafatsoa hangata hakae. Haeba nako ea ntlafatso e sa boleloa, tšobotsi e tla ntlafatsoa feela ka kopo.
Ho etsahetse:
Hona joale o hloka ho kenya khoutu Faele-> Hlahisa
Ka nako e sa lekanyetsoang, Makefile ha e hlahisoe; lekhetlo la pele u hloka ho hlahloba lebokose ho e theha. Sena se etsoa e le hore liphetoho tse entsoeng ho eona li se ke tsa hlakoloa nakong ea moloko o mocha. Ha u se u e bōpile hanngoe 'me u e lokiselitse morero oa hau (linotlolo tsa ho bokella ngoliso, lifaele tse ling), u ka lebala ka eona.
Joale ha re feteleng pele ho mananeo. pogo e re hlahiselitse tse latelang:
Re tla thahasella NEO6M.cpp & NEO6M.h. Ha re nke mohlala oa sehahi sa sehlopha:
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
}
Ke eng e teng le ea bohlokoa moo? Mosebetsi oa init_device () o fana ka mohopolo bakeng sa litšobotsi tsa rona: gps_string & gps_array, empa hase ea bohlokoa. Ntho ea bohlokoa ka ho fetisisa mona, litlhaloso ke tsena:
/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
.......
/*----- PROTECTED REGION END -----*/ // NEO6M::constructor_1
Ntho e 'ngoe le e 'ngoe e ka hare ho sebaka sena sa maikutlo e ke ke ea kenyelletsoa pogo nakong ea ho nchafatsa khoutu e latelang suthela hole!. Ntho e 'ngoe le e' ngoe e seng ka li-block e tla ba teng! Mona ke libaka tseo re ka khonang ho etsa litlhophiso le ho iketsetsa tsona.
Joale mesebetsi ea mantlha eo phaposi e nang le eona ke efe? NEO6M:
Ha re batla ho bala boleng ba tšobotsi gps_string, mesebetsi e tla bitsoa ka tatellano e latelang: kamehla_executed_hook, bala_atr_hardware и bala_gps_string. Read_gps_string e tla tlatsa gps_string ka boleng.
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
}
Pokello
Eya ho foldara ea mohloli 'me:
make
Lenaneo le tla bokelloa ho foldareng ea ~/DeviceServers.
tango-cs@tangobox:~/DeviceServers$ ls
NEO6M
jive
jive
Ho se ho ntse ho e-na le lisebelisoa tse ling ka har'a database, joale ha re theheng tsa rona Fetola-> Theha Seva
Joale ha re lekeng ho hokela ho eona:
Ha ho letho le tla sebetsa, pele re hloka ho tsamaisa lenaneo la rona:
sudo ./NEO6M neo6m -v2
Ke khona ho hokela ho com port ka litokelo motso-A. v - boemo ba ho rema lifate.
Joale re ka kopanya:
Moreki
Ho Grafiken, ho sheba linepe ho lokile, empa o hloka ho hong ho molemo ho feta. Ha re ngolle moreki ea tla hokela sesebelisoa sa rona ebe o bala ho tsoa ho sona.
#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);
}
}