рдХреЗ рдЯрд╛рдиреНрдЧреЛ ?
рдпреЛ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реЛред
TANGO рд▓реЗ рд╣рд╛рд▓ рек рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ: Linux, Windows NT, Solaris рд░ HP-UXред
рдпрд╣рд╛рдБ рд╣рд╛рдореА рд▓рд┐рдирдХреНрд╕ (Ubuntu 18.04) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред
рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛ?
рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдг рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрдЧ рдХрд╛рдо рд╕рд░рд▓ред
- рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдбрд╛рдЯрд╛ рдХрд╕рд░реА рднрдгреНрдбрд╛рд░ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рд╕рдХрд┐рдПрдХреЛ рдЫред
- рдорддрджрд╛рди рд╕реЗрдиреНрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрдпрдиреНрддреНрд░ рд╡рд░реНрдгрди рдЧрд░реНрди рдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдЫред
- рддрдкрд╛рдИрдВрдХреЛ рд╕рдмреИ рдХреЛрдбрд▓рд╛рдИ рдПрдХ рдорд╛рдирдХрдорд╛ рдШрдЯрд╛рдЙрдБрдЫред
рдХрд╣рд╛рдБ рдкреБрдЧреНрдиреЗ
рд╕реНрд░реЛрддрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рди Ubuntu рдорд╛ рдЖрдзрд╛рд░рд┐рдд TangoBox рдЫрд╡рд┐
рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрд░реЛрдд рдХреЛрдбрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХрд┐рди; рдореИрд▓реЗ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ TangoBox 9.3 рдХреЛ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдВред
рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдмрд╛рдЯ рдХрд╕рд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред
рдпрд╕рдорд╛ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ?
- рдЬреАрд╡ - TANGO рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЗрд░реНрди рд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред
- POGO - TANGO рдЙрдкрдХрд░рдг рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ред
- рдПрд╕реНрдЯрд░ - TANGO рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рдмрдиреНрдзрдХред
рд╣рд╛рдореА рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛ рджреБрдИ рдШрдЯрдХрд╣рд░реВрдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреЗрдЫреМрдВред
рд╕рдорд░реНрдерд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ
- C
- рд╕реА ++
- Java
- рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
- рдЕрдЬрдЧрд░
- рдорд╛рддреНрд▓рд╛рдм
- рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рджреГрд╢реНрдп
рдореИрд▓реЗ рдкрд╛рдЗрдерди рд░ c++ рдорд╛ рдпрд╕рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реЗрдВред рдпрд╣рд╛рдБ C++ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред
рдЕрдм рдЯреНрдпрд╛рдЩреНрдЧреЛрдорд╛ рдпрдиреНрддреНрд░ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ рддреНрдпрд╕рд╕рдБрдЧ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рд╡рд┐рд╡рд░рдгрдорд╛ рдЬрд╛рдФрдВред рд╢реБрд▓реНрдХрд▓рд╛рдИ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдЗрдиреЗрдЫ GPS neo-6m-0-001:
рддрдкрд╛рдИрд▓реЗ рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╣рд╛рдореА рдмреЛрд░реНрдбрд▓рд╛рдИ рдкреАрд╕реАрдорд╛ UART CP2102 рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВред PC рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛, рдЙрдкрдХрд░рдг рджреЗрдЦрд╛ рдкрд░реНрджрдЫ /dev/ttyUSB[0-N], рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ /dev/ttyUSB0ред
POGO
рдЕрдм рд╕реБрд░реБ рдЧрд░реМрдВ рдкреЛрдЧреЛ, рд░ рд╣рд╛рдореНрд░реЛ рдмреЛрд░реНрдбрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрдВрдХрд╛рд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
pogo
рдореИрд▓реЗ рдХреЛрдб рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдХреЛ рдЫреБ, рдпрд╕рд▓рд╛рдИ рдлреЗрд░рд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рдлрд╛рдЗрд▓->рдирдпрд╛рдБ.
рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рдкрд╛рдЙрдБрдЫреМрдВ:
рд╣рд╛рдореНрд░реЛ рдпрдиреНрддреНрд░ (рднрд╡рд┐рд╖реНрдпрдорд╛, рдпрдиреНрддреНрд░рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдореАрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рднрд╛рдЧрд▓рд╛рдИ рдЕрд░реНрде рджрд┐рдиреЗрдЫреМрдВ) рдЦрд╛рд▓реА рдЫ рд░ рджреБрдИрд╡рдЯрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЖрджреЗрд╢рд╣рд░реВ рдЫрдиреН: рд░рд╛рдЬреНрдп & рд╕реНрдерд┐рддрд┐.
рдпреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рд╕рдВрдЧ рднрд░рд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫ:
рдЙрдкрдХрд░рдг рд╕рдореНрдкрддреНрддрд┐ - рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирд╣рд░реВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрди рдЙрдкрдХрд░рдгрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдЫреМрдВ; GPS рдмреЛрд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдмреЛрд░реНрдбрдХреЛ рдирд╛рдо рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред com="/dev/ttyUSB0" рд░ com рдкреЛрд░реНрдЯ рдЧрддрд┐ рдмреМрджреНрд░реЗрдб = 9600
рдЖрджреЗрд╢рд╣рд░реВ - рд╣рд╛рдореНрд░реЛ рдЙрдкрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдЖрджреЗрд╢рд╣рд░реВ; рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рддрд░реНрдХ рд░ рдлрд┐рд░реНрддрд╛ рдореВрд▓реНрдп рджрд┐рди рд╕рдХрд┐рдиреНрдЫред
- рд░рд╛рдЬреНрдп - рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ, рдмрд╛рдЯ рд░рд╛рдЬреНрдпрд╣рд░реБ
- рд╕реНрдерд┐рддрд┐ - рд╣рд╛рд▓рдХреЛ рд╕реНрдерд┐рддрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ, рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рдкреВрд░рдХ рд╣реЛ рд░рд╛рдЬреНрдп
- GSArray - рдлрд░реНрдХрд╛рдЙрдБрдЫ рдЬреАрдкреАрдПрд╕ рдлрд╛рд░рдордорд╛ рд╕реНрдЯреНрд░рд┐рдЩ DevVarCharArray
рдЕрд░реНрдХреЛ, рдпрдиреНрддреНрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬреБрди рдпрд╕рд▓рд╛рдИ рдкрдвреНрди/рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред
рд╕реНрдХреЗрд▓рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ - рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (char, string, long, etc.)
рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ - рдПрдХ-рдЖрдпрд╛рдореА arrays
рдЫрд╡рд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ - рджреБрдИ-рдЖрдпрд╛рдореА arrays
рд░рд╛рдЬреНрдпрд╣рд░реБ - рд╣рд╛рдореНрд░реЛ рдпрдиреНрддреНрд░ рдЕрд╡рд╕реНрдерд┐рдд рднрдПрдХреЛ рд░рд╛рдЬреНрдпред
- рдЦреБрд▓реНрд▓рд╛ - рдЙрдкрдХрд░рдг рдЦреБрд▓рд╛ рдЫред
- рдирд┐рдХрдЯрдХреЛ - рдЙрдкрдХрд░рдг рдмрдиреНрдж рдЫред
- рдлреЗрд▓ - рддреНрд░реБрдЯрд┐ред
- ON - рдЙрдкрдХрд░рдгрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрддред
- рдмрдиреНрдж - рдЙрдкрдХрд░рдгрдмрд╛рдЯ рдХреБрдиреИ рдбрд╛рдЯрд╛ рдЫреИрдиред
рд╡рд┐рд╢реЗрд╖рддрд╛ рдердкреНрдиреЗ рдЙрджрд╛рд╣рд░рдг gps_string:
рдорддрджрд╛рди рдЕрд╡рдзрд┐ рд╕рдордп ms рдорд╛, рдХрддрд┐ рдкрдЯрдХ gps_string рдорд╛рди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реБрдиреЗрдЫред рдпрджрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рднрдиреЗ, рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрдиреБрд░реЛрдзрдорд╛ рдорд╛рддреНрд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдиреЗрдЫред
рднрдпреЛ:
рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдлрд╛рдЗрд▓-> рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, Makefile рдЙрддреНрдкрдиреНрди рд╣реБрдБрджреИрди; рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдмрд╛рдХрд╕ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдЧрд░рд┐рдиреНрдЫ рддрд╛рдХрд┐ рдпрд╕рдорд╛ рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирдпрд╛рдБ рдкреБрд╕реНрддрд╛рдХреЛ рд╕рдордпрдорд╛ рдореЗрдЯрд┐рдиреЗ рдЫреИрдирдиреНред рдпрд╕рд▓рд╛рдИ рдПрдХ рдкрдЯрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рд░ рддрдкрд╛рдЗрдБрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ (рджрд░реНрддрд╛ рд╕рдВрдХрд▓рди рдХреБрдЮреНрдЬреАрд╣рд░реВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдЗрд▓рд╣рд░реВ), рддрдкрд╛рдЗрдБ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд┐рд░реНрд╕рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдорд╛ рдЬрд╛рдФрдВред pogo рд▓реЗ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рдЙрддреНрдкрдиреНрди рдЧрд░реНрдпреЛ:
рд╣рд╛рдореА NEO6M.cpp рд░ NEO6M.h рдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреЗрдЫреМрдВред рдХреНрд▓рд╛рд╕ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдХреЛ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдФрдВ:
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
}
рддреНрдпрд╣рд╛рдБ рдХреЗ рдЫ рд░ рдпрд╣рд╛рдБ рдХреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ? init_device() рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрджрдЫ: gps_string & gps_array, рддрд░ рдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрдиред рдпрд╣рд╛рдБ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛, рдпреА рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рдЫрдиреН:
/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
.......
/*----- PROTECTED REGION END -----*/ // NEO6M::constructor_1
рдпрд╕ рдЯрд┐рдкреНрдкрдгреА рдмреНрд▓рдХ рднрд┐рддреНрд░ рднрдПрдХрд╛ рд╕рдмреИ рдХреБрд░рд╛ рдкрдЫрд┐рдХреЛ рдХреЛрдб рдкреБрди: рдирд┐рд░реНрдорд╛рдгрдХреЛ рдХреНрд░рдордорд╛ рдкреЛрдЧреЛрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдиреЗ рдЫреИрди рдЯрд╛рдврд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН!ред рдмреНрд▓рдХрдорд╛ рдирднрдПрдХрд╛ рд╕рдмреИ рдХреБрд░рд╛ рд╣реБрдиреЗрдЫрдиреН! рдпреА рдард╛рдЙрдБрд╣рд░реВ рд╣реБрдиреН рдЬрд╣рд╛рдБ рд╣рд╛рдореА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд░ рдЖрдлреНрдиреИ рд╕рдореНрдкрд╛рджрдирд╣рд░реВ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
рдЕрдм рдХрдХреНрд╖рд╛рд▓реЗ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрд╣рд░реВ рдХреЗ рд╣реБрдиреН? 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);
рдЬрдм рд╣рд╛рдореА рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдкрдвреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ gps_string, рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдирд┐рдореНрди рдХреНрд░рдордорд╛ рдмреЛрд▓рд╛рдЗрдиреЗрдЫ: рд╕рдзреИрдВ_рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ_рд╣реБрдХ, read_attr_hardware ╨╕ рдкрдвреНрдиреБрд╣реЛрд╕реН_gps_stringред Read_gps_string рд▓реЗ gps_string рд▓рд╛рдИ рдорд╛рдирд╕рдБрдЧ рднрд░реНрдиреЗрдЫред
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
}
рд╕рдВрдХрд▓рди
рд╕реНрд░реЛрдд рдлреЛрд▓реНрдбрд░рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рд░:
make
рдХрд╛рд░реНрдпрдХреНрд░рдо ~/DeviceServers рдлреЛрд▓реНрдбрд░рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдиреЗрдЫред
tango-cs@tangobox:~/DeviceServers$ ls
NEO6M
рдЬреАрд╡
jive
рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреЗрд╣реА рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН, рдЕрдм рд╣рд╛рдореНрд░реЛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рд╕рдореНрдкрд╛рджрди->рд╕рд░реНрднрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдЕрдм рдпрд╕рд▓рд╛рдИ рдЬрдбрд╛рди рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:
рдХреЗрд╣рд┐ рдХрд╛рдо рдЧрд░реНрджреИрди, рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
sudo ./NEO6M neo6m -v2
рдо рдЕрдзрд┐рдХрд╛рд░рдХреЛ рд╕рд╛рде com рдкреЛрд░реНрдЯрдорд╛ рдорд╛рддреНрд░ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫреБ рдореВрд▓-рдПред v - рд▓рдЧрд┐рдЩ рд╕реНрддрд░ред
рдЕрдм рд╣рд╛рдореА рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:
рдЧреНрд░рд╛рд╣рдХ
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕рдорд╛, рддрд╕реНрд╡рд┐рд░рд╣рд░реВ рд╣реЗрд░реНрджрд╛ рдкрдХреНрдХреИ рдкрдирд┐ рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдердк рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рдЪрд╛рд╣рд┐рдиреНрдЫред рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреМрдВ рдЬреБрди рд╣рд╛рдореНрд░реЛ рдЙрдкрдХрд░рдгрдорд╛ рдЬрдбрд╛рди рд╣реБрдиреЗрдЫ рд░ рддреНрдпрд╕рдмрд╛рдЯ рдкрдврд╛рдЗрд╣рд░реВ рд▓рд┐рдиреБрд╣реЛрд╕реНред
#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);
}
}
рдХрд╕рд░реА рд╕рдВрдХрд▓рди рдЧрд░реНрдиреЗ:
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++
рдкрд░рд┐рдгрд╛рдо:
tango-cs@tangobox:~/workspace/c$ ./a.out
$GPRMC,,V,,,,,,,,,,N*53
$GPRMC,,V,,,,,,,,,,N*53
$GPRMC,,V,,,,,,,,,,N*53
рд╣рд╛рдореАрд▓реЗ рд╕реНрдЯреНрд░рд┐рдЩрдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд░ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рдПрд░реНрд░реЗ рд▓рд┐рдПрд░ рдЖрджреЗрд╢ рдлрд┐рд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╛рдпреМрдВред
рд╕рдиреНрджрд░реНрдн
рдореИрд▓реЗ рдЖрдлреНрдиреЛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦ рд▓реЗрдЦреЗрдВ, рдХрд┐рдирднрдиреЗ рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐ рдо рдХрд╕рд░реА рд░ рдХреЗ рдЧрд░реНрдиреЗ рдмрд┐рд░реНрд╕рди рдерд╛рд▓реЗрдВред
рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рди рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рджред
рд╕реНрд░реЛрдд: www.habr.com