แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒ แƒ แƒแƒ แƒ˜แƒก แƒขแƒแƒœแƒ’แƒ?

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ˜แƒกแƒ แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
TANGO แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก 4 แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒก: Linux, Windows NT, Solaris แƒ“แƒ HP-UX.
แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก Linux-แƒ—แƒแƒœ (Ubuntu 18.04)

แฒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก?

แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒฆแƒญแƒฃแƒ แƒ•แƒ˜แƒšแƒแƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒš แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒแƒกแƒ—แƒแƒœ.

  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒคแƒ˜แƒฅแƒ แƒ˜ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜, แƒ”แƒก แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก.
  • แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒ”แƒœแƒญแƒ˜แƒกแƒงแƒ แƒ˜แƒก แƒกแƒ”แƒœแƒกแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ.
  • แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ“แƒก แƒ”แƒ แƒ— แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ–แƒ”.

แƒกแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ—?

แƒ›แƒ” แƒ•แƒ”แƒ  แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ; แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” TangoBox 9.3-แƒ˜แƒก แƒ›แƒ–แƒ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ“.
แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒ แƒ˜แƒกแƒ’แƒแƒœ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ?

  • แƒชแƒแƒชแƒฎแƒแƒšแƒ˜ - แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ TANGO แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“ แƒ“แƒ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • POGO โ€” แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ TANGO แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • แƒแƒกแƒขแƒแƒ แƒ˜แƒก - แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜ TANGO แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒ—.

แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ”แƒ‘แƒ˜

  • C
  • C + +
  • Java
  • JavaScript
  • Python
  • แƒ›แƒแƒขแƒ˜แƒšแƒแƒ‘แƒ˜
  • แƒšแƒแƒ‘แƒแƒ แƒแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒ” แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ” แƒ›แƒแƒกแƒ—แƒแƒœ python & c++-แƒจแƒ˜. แƒแƒฅ C++ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜.

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒแƒฆแƒฌแƒ”แƒ แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ TANGO-แƒก แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒ›แƒแƒกแƒ—แƒแƒœ. แƒกแƒแƒคแƒแƒกแƒฃแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ GPS neo-6m-0-001:

แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒ”แƒ แƒ—แƒ”แƒ‘แƒ— แƒ“แƒแƒคแƒแƒก แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒก UART CP2102-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ /dev/ttyUSB[0-N], แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• /dev/ttyUSB0.

POGO

แƒแƒฎแƒšแƒ แƒ’แƒแƒ•แƒ˜แƒฅแƒชแƒ”แƒ— แƒžแƒแƒ’แƒแƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒฉแƒแƒœแƒฉแƒฎแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒ“แƒแƒคแƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

pogo

แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ›แƒแƒ“แƒ˜ แƒ˜แƒกแƒ”แƒ• แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜->แƒแƒฎแƒแƒšแƒ˜.

แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

แƒขแƒแƒœแƒ’แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ (แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ•แƒ˜แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ‘แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒš แƒœแƒแƒฌแƒ˜แƒšแƒก) แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ: แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ & แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜.

แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒ—:

แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ โ€” แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒก แƒ›แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; GPS แƒ“แƒแƒคแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒ“แƒแƒคแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ com="/dev/ttyUSB0" แƒ“แƒ แƒ™แƒแƒ›แƒžแƒแƒ แƒขแƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” baudrade=9600

แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ โ€” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒšแƒแƒ“; แƒ›แƒแƒ— แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ•แƒชแƒ”แƒ— แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ.

  • แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ - แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก, แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜แƒ“แƒแƒœ เฒฐเฒพเฒœเณเฒฏเฒ—เฒณเณ
  • STATUS - แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒขแƒแƒขแƒฃแƒกแƒก, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ
  • GPSArray - แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ gps แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒกแƒแƒฎแƒ˜แƒ— DevVarCharArray

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ/แƒฉแƒแƒฌแƒ”แƒ แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ/แƒ›แƒ˜แƒกแƒ’แƒแƒœ.
แƒกแƒ™แƒแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ - แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ (char, string, long แƒ“แƒ แƒ.แƒจ.)
แƒกแƒžแƒ”แƒฅแƒขแƒ แƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ - แƒ”แƒ แƒ—แƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜
แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜ - แƒแƒ แƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜

เฒฐเฒพเฒœเณเฒฏเฒ—เฒณเณ โ€” แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ.

  • OPEN - แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒฆแƒ˜แƒแƒ.
  • แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ - แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒ“แƒแƒฎแƒฃแƒ แƒฃแƒšแƒ˜แƒ.
  • แƒ›แƒแƒ แƒชแƒฎแƒ˜ - แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ.
  • ON โ€” แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒ“แƒแƒœ.
  • OFF - แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒ“แƒแƒœ.

แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ 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_แƒ›แƒแƒกแƒ˜แƒ•แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜. แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜:

/*----- PROTECTED REGION ID(NEO6M::constructor_1) ENABLED START -----*/
    .......
/*----- PROTECTED REGION END -----*/    //  NEO6M::constructor_1

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒแƒ› แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒจแƒ˜แƒ, แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ pogo-แƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ แƒ”แƒ’แƒ”แƒœแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒแƒจแƒแƒ แƒ“แƒ˜!. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ! แƒ”แƒก แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ.

แƒแƒฎแƒšแƒ แƒ แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒšแƒแƒกแƒ˜? 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 ะธ read_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 แƒžแƒแƒ แƒขแƒ—แƒแƒœ root-แƒ. 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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ