เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจ•เฉ€ เจŸเฉˆเจ‚เจ—เฉ‹?

เจ‡เจน เจตเฉฑเจ–-เจตเฉฑเจ– เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ…เจคเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฆเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจนเฉˆเฅค
TANGO เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš 4 เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ: Linux, Windows NT, Solaris เจ…เจคเฉ‡ HP-UXเฅค
เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ (เจ‰เจฌเฉฐเจŸเฉ‚ 18.04) เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจ‡เจน เจ•เจฟเจธ เจฒเจˆ เจนเฉˆ?

เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจพเจœเจผเฉ‹-เจธเจพเจฎเจพเจจ เจ…เจคเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเจพเจฒ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ.

  • เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเฉ‹ เจšเฉเฉฑเจ•เจพ เจนเฉˆเฅค
  • เจ‡เจน เจธเจฟเจฐเจซ เจชเฉ‹เจฒเจฟเฉฐเจ— เจธเฉˆเจ‚เจธเจฐเจพเจ‚ เจฒเจˆ เจตเจฟเจงเฉ€ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ.
  • เจคเฉเจนเจพเจกเฉ‡ เจธเจพเจฐเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐ เจคเฉฑเจ• เจ˜เจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

เจ•เจฟเฉฑเจฅเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆ

เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจคเฉ‹เจ‚ เจฒเจพเจ‚เจš เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฟเจ†; เจฎเฉˆเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจŸเฉˆเจ‚เจ—เฉ‹เจฌเฉŒเจ•เจธ 9.3 เจฆเฉ€ เจ‡เฉฑเจ• เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ€ เจคเจธเจตเฉ€เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€เฅค
เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฆเฉฑเจธเจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ€ เจธเจผเจพเจฎเจฒ เจนเฉˆ?

  • เจœเฉ€เจต โ€” เจŸเฉˆเจ‚เจ—เฉ‹ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจ…เจคเฉ‡ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
  • POGO - เจŸเฉˆเจ‚เจ—เฉ‹ เจกเจฟเจตเจพเจˆเจธ เจธเจฐเจตเจฐเจพเจ‚ เจฒเจˆ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐเฅค
  • เจเจธเจŸเจฐ - เจŸเฉˆเจ‚เจ—เฉ‹ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฎเฉˆเจจเฉ‡เจœเจฐเฅค

เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจชเจนเจฟเจฒเฉ‡ เจฆเฉ‹ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจนเฉ€ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฒเจตเจพเจ‚เจ—เฉ‡เฅค

เจธเจฎเจฐเจฅเจฟเจค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพเจตเจพเจ‚

  • C
  • C ++
  • เจœเจพเจตเจพ
  • เจœเจพเจตเจพเจธเจ•เจฐเจฟเจชเจŸ
  • เจชเจพเจˆเจฅเจจ
  • เจฎเฉˆเจŸเจฒเจพเจฌ
  • เจฒเฉˆเจฌเจตเจฟเจœเจผเจจ

เจฎเฉˆเจ‚ เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ python & c++ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เฉ€เจคเจพเฅค เจ‡เฉฑเจฅเฉ‡ C++ เจจเฉ‚เฉฐ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจนเฉเจฃ เจ†เจ‰ เจ‡เจธ เจฆเฉ‡ เจตเจฐเจฃเจจ เจตเฉฑเจฒ เจตเจงเฉ€เจ เจ•เจฟ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจŸเฉˆเจ‚เจ—เฉ‹ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจซเฉ€เจธ เจจเฉ‚เฉฐ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚ เจฒเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ GPS neo-6m-0-001:

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจธเฉ€เจ‚ UART CP2102 เจฆเฉเจ†เจฐเจพ เจฌเฉ‹เจฐเจก เจจเฉ‚เฉฐ PC เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• PC เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจกเจฟเจตเจพเจˆเจธ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ /dev/ttyUSB[0-N], เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ /dev/ttyUSB0.

POGO

เจนเฉเจฃ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ Pogo, เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจฌเฉ‹เจฐเจก เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจชเจฟเฉฐเจœเจฐ เจ•เฉ‹เจก เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹เฅค

pogo

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉ‹เจก เจฌเจฃเจพ เจฒเจฟเจ† เจนเฉˆ, เจšเจฒเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰ เจซเจพเจˆเจฒ->เจจเจตเจพเจ‚.

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจธเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ†เจ‚ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ:

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจธเจพเจกเฉ€ เจกเจฟเจตเจพเจˆเจธ (เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš, เจกเจฟเจตเจพเจˆเจธ เจฆเฉเจ†เจฐเจพ เจธเจพเจกเจพ เจฎเจคเจฒเจฌ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจญเจพเจ— เจนเฉ‹เจตเฉ‡เจ—เจพ) เจ–เจพเจฒเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจฆเฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจนเจจ: เจฐเจพเจœ & เจธเจฅเจฟเจคเฉ€.

เจ‡เจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจ—เฉเจฃเจพเจ‚ เจจเจพเจฒ เจญเจฐเจฟเจ† เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

เจกเจฟเจตเจพเจˆเจธ เจชเฉเจฐเจพเจชเจฐเจŸเฉ€ - เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚; GPS เจฌเฉ‹เจฐเจก เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจฌเฉ‹เจฐเจก เจฆเจพ เจจเจพเจฎ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ com="/dev/ttyUSB0" เจ…เจคเฉ‡ com เจชเฉ‹เจฐเจŸ เจธเจชเฉ€เจก เจฌเฉŒเจฆเจฐเจพเจกเฉ‡ = 9600

เจ•เจฎเจพเจ‚เจกเจพเจ‚ โ€” เจธเจพเจกเฉ€ เจกเจฟเจตเจพเจˆเจธ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฎเจพเจ‚เจกเจพเจ‚; เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจ…เจคเฉ‡ เจตเจพเจชเจธเฉ€ เจฎเฉเฉฑเจฒ เจฆเจฟเฉฑเจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

  • เจธเจŸเฉ‡เจŸ - เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเฉ‹เจ‚ เจ…เจฎเจฐเฉ€เจ•เจพ
  • เจธเจฅเจฟเจคเฉ€ - เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจธเจคเจฐ เจฆเจพ เจชเฉ‚เจฐเจ• เจนเฉˆ เจธเจŸเฉ‡เจŸ
  • GSArray - เจตเจพเจชเจธเฉ€ GPS เจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจธเจคเจฐ เจฆเฉ‡เจตเจตเจพเจฐเจšเจพเจฐเจพเจฐเฉ‡

เจ…เฉฑเจ—เฉ‡, เจกเจฟเจตเจพเจˆเจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉˆเจŸ เจ•เจฐเฉ‹ เจœเฉ‹ เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉœเฉเจน/เจฒเจฟเจ–เฉ€เจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค
เจธเจ•เฉ‡เจฒเจฐ เจ—เฉเจฃ - เจธเจงเจพเจฐเจจ เจ—เฉเจฃ (เจšเจพเจฐ, เจธเจคเจฐ, เจฒเฉฐเจฎเจพ, เจ†เจฆเจฟ)
เจธเจชเฉˆเจ•เจŸเฉเจฐเจฎ เจ—เฉเจฃ - เจ‡เฉฑเจ•-เจ…เจฏเจพเจฎเฉ€ เจเจฐเฉ‡
เจšเจฟเฉฑเจคเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ - เจฆเฉ‹-เจ…เจฏเจพเจฎเฉ€ เจเจฐเฉ‡

เจ…เจฎเจฐเฉ€เจ•เจพ โ€” เจ‰เจน เจธเจฅเจฟเจคเฉ€ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจกเจฟเจตเจพเจˆเจธ เจธเจฅเจฟเจค เจนเฉˆเฅค

  • เจ–เฉ‹เจฒเฉเจนเฉ‹ โ€” เจฏเฉฐเจคเจฐ เจ–เฉเฉฑเจฒเฉเจนเจพ เจนเฉˆเฅค
  • เจฌเฉฐเจฆ เจ•เจฐเฉ‹ - เจกเจฟเจตเจพเจˆเจธ เจฌเฉฐเจฆ เจนเฉˆเฅค
  • เจซเฉ‡เจฒ - เจ—เจฒเจคเฉ€.
  • ON โ€” เจกเจฟเจตเจพเจˆเจธ เจคเฉ‹เจ‚ เจกเจพเจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เฅค
  • เจฌเฉฐเจฆ โ€” เจกเจฟเจตเจพเจˆเจธ เจคเฉ‹เจ‚ เจ•เฉ‹เจˆ เจกเจพเจŸเจพ เจจเจนเฉ€เจ‚เฅค

เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ gps_string:

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจชเฉ‹เจฒเจฟเฉฐเจ— เจฆเฉ€ เจฎเจฟเจ†เจฆ ms เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚, gps_string เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ•เจฟเฉฐเจจเฉ€ เจตเจพเจฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจฆเจพ เจธเจฎเจพเจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจธเจฟเจฐเจซเจผ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจจ 'เจคเฉ‡ เจนเฉ€ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจนเฉ‹เจ‡เจ†:

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจนเฉเจฃ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจซเจพเจˆเจฒ-> เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจคเจฟเจ†เจฐ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ; เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฌเจพเจ•เจธ เจจเฉ‚เฉฐ เจšเฉˆเฉฑเจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ‡เจธ เจฒเจˆ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจจเจตเฉ€เจ‚ เจชเฉ€เฉœเฉเจนเฉ€ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ€เจคเฉ‡ เจ—เจ เจฌเจฆเจฒเจพเจ… เจฎเจฟเจŸเจพเจ เจจเจพ เจœเจพเจฃเฅค เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจฐ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ (เจฐเจœเจฟเจธเจŸเจฐ เจ•เฉฐเจชเจพเจ‡เจฒเฉ‡เจธเจผเจจ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚, เจตเจพเจงเฉ‚ เจซเจพเจˆเจฒเจพเจ‚) เจฒเจˆ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจญเฉเฉฑเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจนเฉเจฃ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจตเฉฑเจฒ เจตเจงเจฆเฉ‡ เจนเจพเจ‚เฅค เจชเฉ‹เจ—เฉ‹ เจจเฉ‡ เจธเจพเจกเฉ‡ เจฒเจˆ เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ:

เจŸเฉˆเจ‚เจ—เฉ‹ เจ•เฉฐเจŸเจฐเฉ‹เจฒ

เจธเจพเจจเฉ‚เฉฐ 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 ะธ 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

เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ ~/เจกเจฟเจตเจพเจˆเจธ เจธเจฐเจตเจฐ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹