Знешні інтэрфейс прымача GNSS JAVAD GREIS

Тэхнічныя характарыстыкі

  • Прадукт: GNSS-прыёмнік GREIS
  • Версія прашыўкі: 4.5.00
  • Апошняя рэдакцыя: 14 кастрычніка 2024 г

Інфармацыя аб прадукце

Прыёмнік GREIS GNSS - гэта высокадакладная знешняя інтэрфейсная прылада, распрацаваная JAVAD GNSS, якая прапануе дакладную інфармацыю аб пазіцыянаванні.

Уводзіны

GREIS - гэта ўніверсальная прылада, якая выкарыстоўваецца для розных прыкладанняў. Вось некаторыя ключавыя моманты:

  • Што такое GREIS: Гэта знешняя інтэрфейсная прылада для прыёмнікаў GNSS.
  • Як выкарыстоўваецца GREIS: Ён выкарыстоўваецца для павышэння функцыянальнасці і дакладнасці сістэм GNSS.
  • Спісы: Падрабязныя спісы падтрымоўваных функцый і функцый звярніцеся да кіраўніцтва.
  • Аб'екты: Даследуйце розныя аб'екты, якія можна выкарыстоўваць з GREIS для выканання пэўных задач.

Мова ўводу прымача

Мова ўводу прымача дазваляе карыстальнікам узаемадзейнічаць з прыладай, выкарыстоўваючы пэўныя каманды і сінтаксіс. Вось кароткі аглядview:

  • Мова Выпрampлес: Даведайцеся з прадастаўленага выпрampкаб зразумець, як мець зносіны з прыладай.
  • Сінтаксіс мовы: Азнаёмцеся з правіламі сінтаксісу перадачы каманд у прыёмнік.
  • Каманды: Выкарыстоўвайце розныя каманды для кіравання і канфігурацыі прылады ў адпаведнасці з вашымі патрабаваннямі.

Прыёмнік паведамленняў

Разуменне паведамленняў атрымальніка мае вырашальнае значэнне для інтэрпрэтацыі даных і інфармацыі аб стане. Вось што вам трэба ведаць:

  • Умоўныя пагадненні: Выконвайце пэўныя фарматы і значэнні для дакладнай інтэрпрэтацыі паведамленняў.
  • Стандартны паток паведамленняў: Вывучыце стандартны фармат паведамлення для паслядоўнай перадачы даных.

FAQ

Пытанне: Ці магу я змяніць убудаванае праграмнае забеспячэнне GNSS-прыёмніка GREIS?
A: Не, змяненне ўбудаванага праграмнага забеспячэння не дазваляецца ў адпаведнасці з правіламі аўтарскага права JAVAD GNSS.

Пытанне: Як я магу атрымаць падтрымку па тэхнічных пытаннях, звязаных з GNSS-прыёмнікам GREIS?
A: Для атрымання тэхнічнай падтрымкі, калі ласка, звярніцеся непасрэдна да JAVAD GNSS.

Дзякуй за набыццё GNSS-прыёмніка JAVAD. Матэрыялы, даступныя ў гэтым даведачным кіраўніцтве («Кіраўніцтва»), былі падрыхтаваны JAVAD GNSS, Inc. для ўладальнікаў прадуктаў JAVAD GNSS. Ён прызначаны для дапамогі ўладальнікам у выкарыстанні прымача, і яго выкарыстанне рэгулюецца дадзенымі ўмовамі («Умовы»).

Правілы і ўмовы
ПРАФЕСІЙНАЕ ВЫКАРЫСТАННЕ Прыёмнікі JAVAD GNSS прызначаныя для прафесійнага выкарыстання. Чакаецца, што карыстальнік павінен добра ведаць і разумець інструкцыі па тэхніцы бяспекі перад эксплуатацыяй, праверкай або рэгуляваннем. Падчас працы з прымачом заўсёды апранайце неабходныя сродкі абароны (ахоўны абутак, шлем і г.д.).

АДМОВА АД ГАРАНТЫІ, ЗА АКРАМЯ ЛЮБЫХ ГАРАНТЫЙ У ГЭТЫМ КІРАЎНІЦТВЕ АБО ГАРАНТЫЙНЫМ КАРТОЧКУ, ЯКІМ ДА ПРАДУКТА, ГЭТАЕ КІРАЎНІЦТВА І ПРЫЕМНІК ПАСТАЎЛЯЮЦЦА "ЯК ЁСЦЬ". ІНШЫХ ГАРАНТЫЙ НЯМА. JAVAD GNSS АДМОВАЛЯЕЦЦА ДА ЛЮБЫХ РАЗУМЕВАЕМЫХ ГАРАНТЫЙ ТАВАЖНАСЦІ АБО ПРЫДАТНАСЦІ ДЛЯ ЛЮБЫХ КАНКРЭТНЫХ ВЫКАРЫСТАННЯЎ АБО МЭТ. JAVAD GNSS І ЯГО ДЫСТРЫБ'ЮТАРЫ НЕ НЯСУЦЬ АДКАЗНАСЦІ ЗА ТЭХНІЧНЫЯ АБО РЭДАКЦЫЙНЫЯ ПАМЫЛКІ АБО НЕДАПУТКІ, ЯКІЯ ТУТ ЗМЕШЧАЮЦЦА; НІ ЗА ВЫПАДКОВЫЯ АБО ЎСКОЎНЫЯ ШКОДЫ Ў ВЫНІКУ МЕБЛІРАВАННЯ, РАБОТЫ АБО ВЫКАРЫСТАННЯ ГЭТАГА МАТЭРЫЯЛУ АБО ПРЫЕМНІКА. ТАКАЯ АДМОВА АД ШКОДЫ УКЛЮЧАЕ, АЛІ НЕ АБМЯЖУЕЦЦА, СТРАТУ ЧАСУ, СТРАТУ АБО ЗНІШЧЭННЕ ДАДЗЕНЫХ, СТРАТУ ПРЫБЫТКУ, ЭКАНОМАЦЫІ АБО ДАХОДУ АБО СТРАТУ ВЫКАРЫСТАННЯ ПРАДУКТАМ. АКРАМЯ таго, JAVAD GNSS НЕ НЯСЕ АДКАЗНАСЦІ ЗА ШКОДУ АБО ВЫХОДЫ, ПАННЕСЫЯ Ў СУВЯЗІ З АТРЫМАННЕМ ЗАМЕННЫХ ПРАДУКЦЫЯЎ АБО ПРАГРАМНАГА ЗАБЕСПЯЧЭННЯ, ПРЭТЭНГАМІ ІНШЫХ ІНШЫХ ЧАСАЎ, нязручнасцямі АБО ЛЮБЫМІ ІНШЫМІ ВЫХАДАМІ. У ЛЮБЫМ ВЫПАДКУ JAVAD GNSS НЕ НЯСЕ АДКАЗНАСЦІ ЗА ШКОДУ АБО ІНШЫМ ШКОДАМ ВАМ АБО ЛЮБЫМ ІНШЫМ ФІЗІЧНЫМ АБО ОРГАНІЗАЦЫІ, ЯКІЯ ПЕРАВЫШАЮЦЬ КОШТ НАКУПКІ ПРЫЕМНІКА.
ЛІЦЭНЗІЙНАЯ ПАГАДНЯ Выкарыстанне любых камп'ютэрных праграм або праграмнага забеспячэння, якія пастаўляюцца JAVAD GNSS або спампоўваюцца з JAVAD GNSS webсайта («Праграмнае забеспячэнне») у сувязі з атрымальнікам азначае прыняцце гэтых Палажэнняў і ўмоў у гэтым Кіраўніцтве і згоду выконваць гэтыя Палажэнні і ўмовы. Карыстальніку прадастаўляецца персанальная, невыключная ліцэнзія без права перадачы на ​​выкарыстанне такога Праграмнага забеспячэння ў адпаведнасці з умовамі

ПРАДМОВА Правілы і ўмовы
пазначаных тут і ў любым выпадку толькі з адным прымачом або адным камп'ютэрам. Вы не можаце прызначаць або перадаваць Праграмнае забеспячэнне або гэтую ліцэнзію без відавочнай пісьмовай згоды JAVAD GNSS. Гэтая ліцэнзія дзейнічае да спынення дзеяння. Вы можаце спыніць дзеянне ліцэнзіі ў любы час, знішчыўшы Праграмнае забеспячэнне і Кіраўніцтва. JAVAD GNSS можа спыніць дзеянне ліцэнзіі, калі вы не выконваеце якія-небудзь з Умоў. Вы згаджаецеся знішчыць Праграмнае забеспячэнне і Кіраўніцтва пасля спынення выкарыстання вамі прымача. Усе правы ўласнасці, аўтарскія правы і іншыя правы інтэлектуальнай уласнасці ў дачыненні да Праграмнага забеспячэння належаць JAVAD GNSS. Калі гэтыя ўмовы ліцэнзіі непрымальныя, вярніце ўсё нявыкарыстанае праграмнае забеспячэнне і кіраўніцтва.

КАНФІДЭНЦЫЯЛЬНАСЦЬ Гэта кіраўніцтва, яго змест і Праграмнае забеспячэнне (разам «Канфідэнцыяльная інфармацыя») з'яўляюцца канфідэнцыяльнай і службовай інфармацыяй JAVAD GNSS. Вы згаджаецеся абыходзіцца з канфідэнцыяльнай інфармацыяй JAVAD GNSS са ступенню асцярожнасці, не менш строгай, чым ступень асцярожнасці, якую вы выкарыстоўвалі б пры захаванні вашых уласных найбольш каштоўных камерцыйных сакрэтаў. Нішто ў гэтым пункце не абмяжоўвае вас ад раскрыцця канфідэнцыяльнай інфармацыі вашым супрацоўнікам, калі гэта можа быць неабходна або мэтазгодна для працы з прыёмнікам або догляду за ім. Такія супрацоўнікі таксама павінны захоўваць канфідэнцыяльнасць інфармацыі. У выпадку, калі вас па законе прымусяць раскрыць якую-небудзь канфідэнцыяльную інфармацыю, вы павінны неадкладна паведаміць JAVAD GNSS, каб яна магла запатрабаваць ахоўнага загаду або іншага адпаведнага сродкі прававой абароны.
WEBСАЙТ; ІНШЫЯ ЗАЯВЫ Ніякай заявы не змяшчаецца ў JAVAD GNSS webсайт (ці любы іншы webна сайце) або ў любой іншай рэкламе або літаратуры JAVAD GNSS або зробленых супрацоўнікам або незалежным падрадчыкам JAVAD GNSS змяняе гэтыя Умовы (уключаючы ліцэнзію на Праграмнае забеспячэнне, гарантыю і абмежаванне адказнасці).
БЯСПЕКА Няправільнае выкарыстанне прымача можа прывесці да траўмаў людзей або маёмасці і/або няспраўнасці прадукту. Прыёмнік павінен рамантавацца толькі ў аўтарызаваных цэнтрах гарантыйнага абслугоўвання JAVAD GNSS.
ІНШЫЯ Вышэйзгаданыя Палажэнні і ўмовы могуць быць зменены, мадыфікаваны, заменены або адменены ў любы час JAVAD GNSS. Вышэйзгаданыя Умовы будуць рэгулявацца і тлумачыцца ў адпаведнасці з законамі штата Каліфорнія без спасылак на калізійнае права.

Што такое GREIS
GREIS - гэта мова інтэрфейсу, якая дазваляе карыстачу эфектыўна мець зносіны з прымачамі GNSS, карыстаючыся ўсімі іх магчымасцямі і функцыямі.
GREIS прадстаўляе агульную структуру мовы прымача для ўсяго дыяпазону абсталявання JAVAD GNSS. Гэтая структура мовы не залежыць ад прымача і адкрыта для будучых мадыфікацый або пашырэнняў. GREIS заснаваны на ўніфікаваным падыходзе, які дазваляе карыстальніку кіраваць прымачом JAVAD GNSS з дапамогай адпаведнага набору названых аб'ектаў. Сувязь з гэтымі аб'ектамі ажыццяўляецца з дапамогай загадзя вызначаных каманд і паведамленняў. Няма асаблівых абмежаванняў на колькасць або тып выкарыстоўваных аб'ектаў-прыёмнікаў.

Як выкарыстоўваецца GREIS
Любая сістэма, якая мае сувязь з прымачом JAVAD GNSS праз адзін з яго партоў (паслядоўны, паралельны, USB, Ethernet і г.д.), будзе выкарыстоўваць каманды і паведамленні GREIS для выканання неабходнай задачы. Пара тыповых прыкладанняў, у якіх GREIS адыгрывае вельмі важную ролю, - гэта, па-першае, выкарыстанне партатыўных кантролераў для сувязі з прымачамі падчас палявых работ у праектах агляду і RTK або, па-другое, пры загрузцы даных з прымачоў у настольныя сістэмы для далейшай публікацыі апрацоўка. Сама праграма пост-апрацоўкі не выкарыстоўвае каманды GREIS, але павінна быць у курсе паведамленняў GREIS, каб атрымаць даныя з даных files.


Адной з важных асаблівасцей GREIS з'яўляецца тое, што яго можна эфектыўна выкарыстоўваць як для аўтаматычнага, так і для ручнога кіравання прымачамі GNSS JAVAD. Для ручнога кіравання карыстальнік будзе ўводзіць неабходныя каманды GREIS у прыёмнік праз тэрмінал. Гэта лёгка дасягальна, паколькі GREIS распрацаваны як тэкставы інтэрфейс, які чытаецца чалавекам. З іншага боку, GREIS падпарадкоўваецца даволі строгім правілам, што робіць яго простым у выкарыстанні праграмамі.

Спісы
GREIS актыўна выкарыстоўвае канцэпцыю спісаў. Спісы выкарыстоўваюцца як у мове ўводу атрымальніка, так і ў стандартных тэкставых паведамленнях.

УВОДЗІНЫ Аб'екты
Спісы ў GREIS прадстаўлены паслядоўнасцю элементаў, раздзеленых коскамі (,, ASCII-код 44) і ў дужках ({}, ASCII-коды 123 і 125):
{element1,element2,element3}
У сваю чаргу, элементы спісу самі могуць быць спісамі:
{e1,{ee21,ee22},e3}
Такім чынам, прыведзенае вышэй вызначэнне з'яўляецца рэкурсіўным, так што дазволеныя спісы адвольнай глыбіні ўкладзенасці. Элементы, якія не з'яўляюцца спісамі, называюцца ліставымі элементамі або проста лісткамі. Элементы спісаў могуць быць пустымі, у гэтым выпадку мы гаворым, што элемент прапушчаны. Напрыкладample, у спісе ніжэй другі элемент апушчаны:
{e1,,e3}
Прабелы да і пасля раздзяляльнікаў дапускаюцца і ігнаруюцца. Калі ўсе элементы спісу маюць адзін і той жа падрадок (прэфікс) у пачатку, гэты падрадок можа быць вынесены з дужак, якія атачаюць спіс, напрыклад,
элемент{1,2,3}
з'яўляецца больш кароткай формай
{elem1,elem2,elem3}

Элементы могуць быць заключаны ў двукоссе (“, код ASCII 34), якія выдаляюцца падчас аналізу. Унутры элемента ў цытатах спецыяльныя сімвалы (дужкі, коскі і інш.) страчваюць сваю ролю і лічацца звычайнымі сімваламі. Яшчэ адно выкарыстанне двукоссяў - гэта адрозненне паміж умовамі "элемент не зададзены" і "пусты элемент зададзены". Першы абазначаецца простым апусканнем элемента са спісу, а другі абазначаецца пастаноўкай пары двукоссяў паміж коскамі. Цытаванне таксама карысна, калі ў радку трэба мець прабелы ў пачатку або ў канцы. Каб змясціць падвойнае двукоссе ў элемент, узяйце гэты элемент у двукоссе і экрануйце падвойнае двукоссе ўнутры сімвалам зваротнай касой рысы (, код ASCII 92). Каб паставіць зваротную касую рысу ў радок у цытатах, экрануйце яе іншай зваротнай касой рысай, напрыкладampль:
Example: “Радок з “двукоссямі”, зваротнай касой рысай \ і спецыяльнымі сімваламі, {}”
1.4 аб'екты
У кантэксце мадэлі, на якой заснаваны GREIS, прымач JAVAD GNSS ідэнтыфікуецца з наборам названых аб'ектаў.

ГРЭЙС

www.javad.com

20

УВОДЗІНЫ Аб'екты
Ідэнтыфікатары аб'ектаў
Аб'ект вызначаецца як апаратнае або праграмнае забеспячэнне атрымальніка, да якога можна звяртацца, усталёўваць або запытваць. Апаратныя аб'екты звычайна называюць прыладамі, у той час як аб'екты прашыўкі - гэта звычайна files і параметры. Парты прымача і модулі памяці - усе добрыяampлес прылад. Усе прылады, fileі параметры аднолькава апрацоўваюцца GREIS. Кожны аб'ект мае звязаны набор атрыбутаў, да якіх можна атрымаць доступ, вызначыць і/або змяніць праз GREIS.


1.4.1 Ідэнтыфікатары аб'ектаў
Вышэй адзначалася, што прыёмнік разглядаецца як сукупнасць аб'ектаў (прыбораў, files, паведамленні, параметры і г.д.) у кантэксце мадэлі GREIS. У мэтах звароту да аб'ектаў у камандах прымача кожнаму аб'екту павінен быць прызначаны ўнікальны ідэнтыфікатар.


Аб'екты ў ствольнай скрынцы лагічна арганізаваны ў групы. Сама група таксама з'яўляецца аб'ектам і належыць да іншай групы, калі толькі гэта не каранёвая група. Такім чынам, усе аб'екты ў атрымальніку арганізаваны ў дрэвападобную іерархію, пачынаючы з адной каранёвай групы. Гэта прадстаўніцтва нагадвае арганізацыю в files у каталогі (тэчкі), з якімі знаёмыя большасць карыстальнікаў кампутараў.
У GREIS групы аб'ектаў прадстаўлены ў выглядзе спісаў адпаведных імёнаў аб'ектаў. Імя аб'екта з'яўляецца унікальным у спісе, да якога належыць аб'ект. Глабальны ўнікальны ідэнтыфікатар аб'екта вызначаецца як усе імёны аб'ектаў на шляху праз дрэва аб'ектаў ад каранёвага спісу да аб'екта, размежаваныя касой рысай (/). Сам каранёвы спіс ідэнтыфікуецца адной касой рысай.
Exampфайлы ідэнтыфікатараў аб'ектаў:
Example: Каранёвая група:
/
Example: электронны ідэнтыфікатар атрымальніка:
/пар/rcv/ідэнтыфікатар
Example: Хуткасць перадачы паслядоўнага порта A:
/par/dev/ser/a/rate
Example: Атрыбуты (памер і час апошняй мадыфікацыі) файла file ІМЯ (file атрыбуты адрозніваюцца ад атрыбутаў аб'ектаў, разгледжаных ніжэй):
/log/ІМЯ
Example: сказ NMEA GGA:

ГРЭЙС

www.javad.com

21

УВОДЗІНЫ Перыядычны выхад
Тыпы аб'ектаў
/msg/nmea/GGA
Усе аб'екты маюць адзін або некалькі атрыбутаў, звязаных з імі. Атрыбуты аб'екта ідэнтыфікуюцца даданнем знака & і імя атрыбута да ідэнтыфікатара аб'екта. Асноўным атрыбутам кожнага аб'екта з'яўляецца каштоўнасць. Да гэтага атрыбуту каманды GREIS заўсёды звяртаюцца няяўна. Некаторыя з аб'ектаў могуць мець дадатковыя атрыбуты, напрample: Выклample: паслядоўны порт хуткасць перадачы па змаўчанні:
/par/dev/ser/a/rate&def
Example: Змест ст file ІМЯ:
/log/ІМЯ&змест
1.4.2 Тыпы аб'ектаў
Кожны аб'ект у атрымальніку мае звязаны з ім тып GREIS. Тып аб'екта вызначае яго паводзіны адносна каманд GREIS. У прыватнасці, тып вызначае, якія значэнні можа прымаць аб'ект і якія канкрэтныя каманды дастасавальныя да аб'екта.
Звярніцеся да «Асноўных тыпаў аб'ектаў» на старонцы 184 для падрабязнага апісання тыпаў аб'ектаў, якія падтрымліваюцца ў цяперашні час.

ГРЭЙС

1.5 Перыядычны выхад

Важную ролю ў працы прымача адыгрывае яго здольнасць перыядычна выдаваць некаторую інфармацыю, напрыклад, розныя віды вымярэнняў, разлічаныя значэння і інш., па зададзеным раскладзе. GREIS вызначае багаты набор паведамленняў, якія змяшчаюць розныя тыпы інфармацыі ў розных фарматах, якія з'яўляюцца мінімальнымі адзінкамі вываду, і забяспечвае метады для запыту перыядычнага вываду любой камбінацыі паведамленняў у любым парадку на любы з падтрымліваемых носьбітаў, прыдатных для вываду даных. Любы падтрымліваемы носьбіт, прыдатны для вываду даных, у GREIS называецца выходным патокам.
Для кожнага выходнага патоку атрымальнік падтрымлівае спіс паведамленняў, якія ў цяперашні час дазволены для вываду ў паток, які называецца спісам вываду. Парадак, у якім выводзяцца паведамленні, адпавядае парадку паведамленняў у спісе вываду. Акрамя таго, кожнае паведамленне, якое прысутнічае ў спісе выхаду, мае свой уласны набор параметраў планавання, звязаных з ім. Параметры планавання, далучаныя да паведамлення ў спісе вываду, вызначаюць расклад вываду гэтага канкрэтнага паведамлення ў гэты канкрэтны паток вываду. GREIS забяспечвае тры кам-

www.javad.com

22

УВОДЗІНЫ Перыядычны выхад Перыяд і фаза выхаду
mands, em, out і dm, каб забяспечыць эфектыўнае маніпуляванне спісамі вываду і параметрамі планавання.
Параметры планавання паведамленняў складаюцца з чатырох палёў: перыяд, фаза, колькасць і сцягі, кожнае з якіх выконвае розную ролю ў вызначэнні раскладу вываду. Ніжэй мы апішам, як менавіта іх значэнні ўплываюць на вывад, але ў асноўным перыяд вызначае інтэрвал паміж выхадамі паведамлення; фаза задае часавы зрух момантаў выхаду адносна момантаў часу, калі бягучы час кратны перыяду; лік, калі большы за нуль, абмяжоўвае колькасць разоў, калі паведамленне будзе выводзіцца; тады як сцягі filed дазваляе некаторую тонкую наладу працэсу вываду.

1.5.1 Перыяд і фаза выхаду

Заўвага:

Палі перыяду і фазы параметраў планавання паведамленняў з'яўляюцца значэннямі з плаваючай коскай у дыяпазоне [0…86400) секунд. Іх дакладнае значэнне апісана ніжэй.
Калі біт F_CHANGE усталяваны ў полі сцягоў параметраў планавання, поле фазы губляе сваю звычайную ролю і замест гэтага становіцца «перыядам прымусовага вываду». Падрабязнасці глядзіце ў апісанні сцяга F_CHANGE ніжэй.
Прыёмнік мае ўнутраную сетку часу, якая вызначаецца гадзіннікам прымача і значэннем параметра /par/raw/curmsint, які вызначае крок унутраных эпох прымача. Унутраныя эпохі прымача ўзнікаюць, калі час прымача кратны кроку. У сваю чаргу, час прымача вызначаецца як значэнне гадзінніка прымача па модулю аднаго дня (86400 секунд). Прыёмнік скануе спісы вываду толькі ва ўнутраныя эпохі прымача, так што вывад не можа стварацца часцей, чым гэта.
Прымаючы пад увагу ўнутраную сетку часу, зменныя перыяду і фазы вызначаюць моманты часу вываду паведамлення наступным чынам: атрымальнік будзе выводзіць паведамленне толькі ў момант часу Tout атрымальніка, які адначасова задавальняе наступным двум раўнанням:

Перыяд Toutmod = фаза

(1)

Tout = N крок (2)

ГРЭЙС

дзе N - цэлы лік, які прымае значэнні [0,1,2,…,(86400/крок)-1].
Першае раўнанне вызначае асноўнае правіла вываду паведамленняў, а другое накладае дадатковыя абмежаванні, звязаныя з унутранымі эпохамі прымача. Звярніце ўвагу, што ў найбольш звычайным выпадку, калі і перыяд, і фаза кратныя кроку, другое ўраўненне выконваецца аўтаматычна кожны раз, калі выконваецца першае ўраўненне. Таксама звярніце ўвагу, што калі
86400 (перыяд мадыфікацыі) 0,

www.javad.com

23

УВОДЗІНЫ Перыядычны выхад
Колькасць вывадаў

Exampль:
Example: Выклampль:

фактычны інтэрвал паміж апошнім паведамленнем, адпраўленым перад пераходам дня, і першым паведамленнем пасля пераходу дня будзе адрознівацца ад значэння перыяду.
Разгледзім пару прыкладаўampLes, які ілюструе гэты механізм:
Дапусцім, перыяд роўны 10 с, фаза роўная 2.2 с, а крок роўны 0.2 с. Паколькі Tout, згодна з другім ураўненнем, можа прымаць толькі значэнні, кратныя кроку, левая частка першага ўраўнення будзе прымаць наступныя значэнні: 0, 0.2, 0.4, …, 9.8, 0, …, з якіх толькі значэнне 2.2 фаза матчаў. Гэтыя супадзенні будуць адбывацца, і паведамленне будзе выводзіцца кожны раз, калі Tout прымае адно з наступных значэнняў: 2.2 с, 12.2 с, 22.2 с і г.д.
Выкажам здагадку, што перыяд роўны 10 с, фаза роўная 2.2 с, а крок роўны 0.5 с. Атрымальнік не будзе выводзіць паведамленне, таму што прыведзеная вышэй пара адначасовых ураўненняў ніколі не выконваецца.
Дапусцім, фаза > перыяд. Атрымальнік наогул не будзе выводзіць паведамленне, бо першае ўраўненне ніколі не будзе выканана.

1.5.2 Падлік выхадных дадзеных

Заўвага:

Поле падліку параметраў планавання паведамленняў з'яўляецца цэлым лікам у дыяпазоне [-256…32767) і служыць двум розным мэтам:
1. Калі лік роўны 0, будзе выводзіцца неабмежаваная колькасць паведамленняў. Калі лік большы за 0, ён вызначае, колькі разоў будзе выводзіцца паведамленне. У гэтым выпадку лічыльнік памяншаецца на 1 кожны раз, калі выводзіцца паведамленне, і калі ён становіцца роўным 0, у полі сцягоў усталёўваецца біт F_DISABLED. Планіроўшчык паведамленняў не выводзіць паведамленні з усталяваным бітам F_DISABLED.
2. Калі для падліку ўстаноўлена значэнне ў дыяпазоне [-256…-1], выхад паведамлення не падаўляецца, і поле падліку служыць зусім іншым мэтам. Гэта дазваляе абгарнуць паведамленне ў спецыяльнае паведамленне [>>] перад вывадам (гл. “[>>] Wrapper” на стар. 132). Затым значэнне count выкарыстоўваецца для ўстаноўкі поля id у згенераваным паведамленні [>>] такім чынам, каб id лікава роўны (-1 – count).
Функцыя абкручвання карысная, напрыкладample, для сервернага прыкладання, якое атрымлівае паведамленні ад атрымальніка і перасылае іх некалькім кліентам. Ён можа запытваць абгортванне адвольных паведамленняў у паведамленні [>>] з рознымі ідэнтыфікатарамі, разгортваць атрыманыя паведамленні і адпраўляць дадзеныя канкрэтным кліентам(ам) на аснове атрыманага ідэнтыфікатара. Выкарыстоўваючы гэтую функцыю, такому прылажэнню не трэба ведаць якія-небудзь іншыя фарматы даных, акрамя фармату паведамлення [>>], і яно можа выкарыстоўваць адзіны канал сувязі з атрымальнікам для атрымання і адпраўкі паведамленняў у розных фарматах.

ГРЭЙС

www.javad.com

24

1.5.3 Вывадныя сцягі

УВОДЗІНЫ Перыядычны выхад
Выхадныя сцягі

Поле сцягоў параметраў планавання паведамленняў з'яўляецца 16-бітным бітавым полем. Кожны біт гэтага бітавага поля з'яўляецца асобным сцягам і служыць іншым мэтам. Ніжэй прыведзены спіс сцягоў планавання паведамленняў.
Табліца 1-1. Сцяжкі планавання паведамленняў

Біт #
0 1 2 3 4 5 6 7 8 9 10 11 12

HEX
0x0001 0x0002 0x0004 0x0008 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 0x0400 0x0800 0xF000

Імя
F_OUT F_CHANGE F_OUT_ON_ADD F_NOTENA F_FIX_PERIOD F_FIX_PHASE F_FIX_COUNT F_FIX_FLAGS зарэзервавана зарэзервавана зарэзервавана F_DISABLED зарэзервавана

Заўвага: назвы палёў прыводзяцца тут толькі з мэтай спасылацца на іх у гэтым кіраўніцтве. Няма магчымасці выкарыстоўваць іх у камандах GREIS.

F_OUT Калі гэты сцяг усталяваны, першыя паведамленні пасля выкліку адпаведнай каманды будуць выводзіцца ў эпоху ўнутранага прымача, бліжэйшую да часу выканання каманды, незалежна ад таго, што вызначана параметрам планавання перыяду.
F_CHANGE Калі гэты сцяг усталяваны, адпаведнае паведамленне будзе выводзіцца толькі ў тым выпадку, калі даныя паведамлення змяніліся з моманту апошняга вываду паведамлення ў дадзены паток вываду. Атрымальнік правярае, ці змяніліся дадзеныя паведамлення, толькі ў моманты, вызначаныя ўраўненнямі (1), (2), дзе зменная фазы ўсталявана ў нуль, а зменная перыяду - у значэнне поля перыяду. Фаза параметраў планавання паведамленняў, якая ў гэтым выпадку губляе сваю першапачатковую функцыю, цяпер выконвае ролю перыяду прымусовага вываду. «Прымусовы вывад» азначае, што адпаведнае паведамленне будзе выведзена незалежна ад таго, змяніўся яго змест ці не ў моманты часу, вызначаныя ўраўненнямі (1), (2), дзе зменная перыяду задаецца значэннем поля фазы, а фаза зменная ўстаноўлена ў нуль. Калі фаза поля роўная нулю, то прыёмнік не выконвае прымусовы вывад, так што адпаведнае паведамленне будзе выводзіцца толькі пры ўмове, што яго дадзеныя змяніліся.

ГРЭЙС

www.javad.com

25

УВОДЗІНЫ Перыядычны выхад
Выхадныя сцягі
F_OUT_ON_ADD Калі гэты сцяг усталяваны, то першае паведамленне будзе выведзена адразу пасля выканання адпаведнай каманды em або out. Гэты сцяг ігнаруецца для большасці паведамленняў1.
F_NOTENA Калі гэты сцяг усталяваны для паведамлення ў спісе вываду, сцяг F_DISABLED для гэтага паведамлення не будзе ачышчаны, калі паведамленне ўключана, і таму яго вывад застанецца прыпыненым. Напрыкладample, гэты сцяг выкарыстоўваецца для таго, каб не выводзіць некаторыя паведамленні з набору паведамленняў па змаўчанні, калі карыстальнік змяняе перыяд вываду на хаду, без папярэдняга адключэння вываду.
F_FIX_PERIOD, F_FIX_PHASE, F_FIX_COUNT, F_FIX_PERIOD Будучы ўсталяваным у 1 у параметрах планавання, прадухіляе змяненне адпаведнага поля(-яў) гэтага параметру планавання праз каманды em і out.
F_DISABLED Яўна не праграмуецца карыстальнікам. Калі адзін уключае паведамленне са станоўчым лікам, то пасля таго, як гэтае паведамленне было выведзена колькі разоў, планавальнік паведамленняў усталёўвае гэты сцяг у 1. Гэты сцяг ачышчаецца да 0, калі паведамленне паўторна ўключана, калі толькі сцяг F_NOTENA не ўсталяваны для гэта паведамленне.

1. У цяперашні час толькі два паведамленні GREIS, [JP] і [MF], адзначаюць гэты сцяг.

ГРЭЙС

www.javad.com

26

Раздзел 2
МОВА ЎВОДУ ПРЫЕМНІКА

У гэтай главе апісваюцца сінтаксіс і семантыка мовы ўводу-прыёмніка. Мы пачынаем з некаторых эксamples, каб даць чытачу адчуць мову, затым перайдзіце да падрабязнага вызначэння сінтаксісу, а потым апішыце ўсе вызначаныя каманды разам з іх семантыкай.

2.1 Мова Выклampлес

Вось некалькі эксampфайлы рэальных заяваў, якія атрымальнік разумее разам з адказамі атрымальніка. Вы знойдзеце больш эксampлес выкарыстання пэўных каманд у адпаведных падраздзелах. Уваход у прымач пазначаны сімвалам, а выхад прымача пазначаны сімвалам:

Example: папрасіце атрымальніка надрукаваць свой электронны ідэнтыфікатар. Атрымальнік генеруе паведамленне ў адказ:

Exampль:

друк,/пар/rcv/ідэнтыфікатар RE00C QP01234TR45
Папрасіце атрымальнік усталяваць хуткасць перадачы паслядоўнага порта А на 9600. Прыёмнік паспяхова выконвае каманду і не стварае ніякага адказу.

набор,/пар/дэв/сер/а/хуткасць,9600
Example: выкарыстоўвайце тую ж каманду, што і ў папярэднім прыкладзеample, але прымусіць атрымальніка згенераваць адказ з дапамогай ідэнтыфікатара аператара.

Exampль:

%set_rate%set,/par/dev/ser/a/rate,9600 RE00A%set_rate%
Паспрабуйце ўсталяваць занадта высокую хуткасць перадачы дадзеных. Атрымальнік адказвае паведамленнем пра памылку, нават калі мы не выкарыстоўвалі ідэнтыфікатар аператара.

набор,/пар/дэв/сер/а/хуткасць,1000000 ER016{4,значэнне па-за дыяпазонам}

Заўвага:

Атрымальнік заўсёды змяшчае свае звычайныя адказы і адказы пра памылкі ў двух стандартных паведамленнях, [RE] і [ER] адпаведна. Для атрымання дадатковай інфармацыі аб фармаце паведамленняў GREIS звярніцеся да «Агульнага фармату паведамленняў» на старонцы 64. Самі паведамленні [RE] і [ER] апісаны ў раздзеле «Інтэрактыўныя паведамленні» на старонцы 129.

ГРЭЙС

www.javad.com

27

МОВА ЎВОДУ ПРЫЕМНІКА Сінтаксіс мовы
2.2 Сінтаксіс мовы
GREIS вызначае радкі сімвалаў ASCII адвольнай даўжыні1, размежаваныя знакамі вяртання карэткі ( , дзесятковы код ASCII 13), або перавод радка ( , дзесятковы код ASCII 10) сімвалы, якія з'яўляюцца элементамі сінтаксісу верхняга ўзроўню мовы. У GREIS дазволеныя і ігнаруюцца пустыя радкі. Як следства, лінія можа быць размежавана любой камбінацыяй і/або сімвалы. Гэта дазваляе GREIS бесперашкодна падтрымліваць канвенцыі заканчэння радкоў WindowsTM, MacTM і UNIXTM.
Мова ўводу прымача адчувальная да рэгістра. Гэта азначае, што, напрыклад,ample, радкі GREIS, greis і gReIs, якія з'яўляюцца рознымі радкамі, сапраўды разглядаюцца атрымальнікам як такія.
Знак лічбы (#, код ASCII 35) з'яўляецца ўступным сімвалам каментара. Прыёмнік ігнаруе ўсё, пачынаючы ад гэтага сімвала і да канца радка.
Пасля таго, як каментар (калі ёсць) выдалены з радка, атрымальнік выдаляе прабелы ў пачатку і ў канцы, а затым разбівае радок на аператары. Аператары раздзяляюцца кропкай з коскай (;, код ASCII 59) або двума ampэрсанды (&&, коды ASCII 38), або з двума вертыкальнымі рыскамі (||, коды ASCII 124). Аператары ў радку затым выконваюцца ў парадку, злева направа. Калі аператар, які заканчваецца раздзяляльнікам &&, выклікае памылку, астатнія аператары ў радку не выконваюцца. Аператар If, які заканчваецца на || падзельнік выконваецца паспяхова, астатнія аператары ў радку не выконваюцца. Аператар, які заканчваецца кропкай з коскі, ніколі не спыняе выкананне паслядоўнасці аператараў. Звярніце ўвагу, што канец радка сам па сабе з'яўляецца тэрмінатарам аператара, таму вам не трэба ставіць адзін з відавочных раздзяляльнікаў аператараў у канцы радка.
Фармат заявы наступны:
[%ID%][COMMAND][@CS], дзе квадратныя дужкі абазначаюць неабавязковыя палі, а перад і пасля кожнага поля дазваляецца любая колькасць прабелаў. Такія прабелы ігнаруюцца, за выключэннем мэтаў разліку кантрольнай сумы, гл. ніжэй. Палі:
Ідэнтыфікатар аператара %ID%, дзе ID пазначае адвольны радок, магчыма, пусты. Ідэнтыфікатар, калі ён прысутнічае, капіюецца атрымальнікам без змен у паведамленне адказу на заяву. Любая заява з ідэнтыфікатарам заўсёды будзе генераваць адказ ад атрымальніка. Аператар, які змяшчае толькі ідэнтыфікатар, таксама дапускаецца; у такім выпадку атрымальнік проста згенеруе паведамленне ў адказ.
COMMAND (магчыма пусты) спіс, дзе першы элемент называецца імем каманды. Ён абазначае дзеянне, якое трэба выканаць. Астатнія элементы (калі ёсць) з'яўляюцца каманднымі

ГРЭЙС

1. Цяперашняя рэалізацыя GREIS у прымачах падтрымлівае радкі даўжынёй да 256 сімвалаў.

www.javad.com

28

МОВА ЎВОДУ ПРЫЕМНІКА Сінтаксіс мовы
аргументы. Дужкі, якія атачаюць спіс каманд, можна апусціць. Сінтаксіс спісаў глядзіце ў раздзеле «Спісы» на старонцы 19. Кантрольная сума @CS, дзе CS - гэта 8-бітная кантрольная сума, адфарматаваная як 2-байтавае шаснаццатковае лік. Перш чым выканаць аператар з кантрольнай сумай, атрымальнік параўнае ўваходную кантрольную суму CS з вылічанай убудаваным праграмным забеспячэннем і адмовіцца выконваць аператар, калі гэтыя кантрольныя сумы не супадаюць. Кантрольная сума вылічваецца, пачынаючы з першага знака аператара, які не з'яўляецца пустым, да знака @ уключна. Падрабязнасці глядзіце ў раздзеле «Вылічэнне кантрольных сум» на старонцы 579.
Ідэнтыфікатар аператара, %ID%, служыць для наступных мэтаў:
1. Прымушае адказ прымача на каманду. 2. Дазваляе адпраўляць атрымальніку некалькі каманд з рознымі ідэнтыфікатарамі
не чакаючы адказу на кожную каманду, потым атрымайце адказы і скажыце, які адказ якой камандзе адпавядае. 3. Дапамагае ўсталяваць сінхранізацыю з прымачом, дазваляючы праверыць, што канкрэтны адказ прымача адпавядае канкрэтнай камандзе, а не нейкай іншай камандзе, выдадзенай да або пасля.
Спіс пад назвай опцыі можа быць дададзены да любога элемента COMMAND пасля двукроп'я (:, код ASCII 58). Калі спіс опцый складаецца з аднаго элемента, фігурныя дужкі можна апусціць. Спіс параметраў, дададзены да спісу, распаўсюджваецца на кожны элемент спісу, хоць параметры, відавочна дададзеныя да элемента спісу, маюць прыярытэт перад распаўсюджанымі параметрамі. Напрыкладampле,
{e1,{e2:{o1,,o3},e3}}:{o4,o5}
эквівалентна:
{e1:{o4,o5},{e2:{o1,o5,o3},e3:{o4,o5}}}
Звярніце ўвагу таксама на тое, як прапушчаная опцыя o2 дазваляе опцыі o5 распаўсюджвацца ў спіс опцый для элемента e2.
Колькасць і значэнне аргументаў і опцый у камандзе залежыць ад канкрэтнага дзеяння каманды і вызначаецца ў апісанні кожнай каманды-прыёмніка. Акрамя таго, калі апісанне каманды вызначае некаторыя параметры, але некаторыя або ўсе з іх прапушчаны ў заяве, значэнні па змаўчанні для прапушчаных опцый падстаўляюцца. Значэнні параметраў па змаўчанні таксама вызначаны ў апісанні кожнай каманды прымача.

ГРЭЙС

www.javad.com

29

МОВА ЎВОДУ ПРЫЕМНІКА Сінтаксіс мовы

Для даведкі, ніжэй прыведзена табліца, якая змяшчае ўсе паслядоўнасці сімвалаў, якія маюць асаблівае значэнне ў мове ўводу атрымальніка:

Табліца 2-1. Спецыяльныя сімвалы мовы ўводу

Сімвалы Дзесятковы код ASCII

Сэнс

10

падзельнік радкоў

13

падзельнік радкоў

#

35

;

59

пачатак раздзяляльніка выказванняў каментара

&&

38

||

124

%

37

аператары і аператары-падзельнікі або знак ідэнтыфікатара аператараў-падзельнікаў

@

64

{

123

}

125

,

44

:

58

кантрольная сума пазначыць пачатак спісу пазначыць канец спісу пазначыць спіс элементы раздзяляльнік варыянты пазначыць

34

двукоссе

92

уцёкі

ГРЭЙС

www.javad.com

30

Каманды МОВА ЎВОДУ ПРЫЕМНІКА
2.3 каманд
У гэтым раздзеле мы апісваем усе каманды, вызначаныя ў GREIS. Спецыфікацыі сінтаксісу і семантыкі кожнай каманды суправаджаюцца тлумачэннем exampлес. Для падрабязнага апісання аб'ектаў, якія выкарыстоўваюцца ў якасці аргументаў у examples, калі ласка, звярніцеся да раздзела 4 на старонцы 181.

ГРЭЙС

www.javad.com

31

2.3.1 камплект

МОВА ЎВОДУ ПРЫЕМНІКА Набор каманд

Імя
ўсталяваць зададзенае значэнне аб'екта.
Канспект
Фармат: набор, аб'ект, значэнне Параметры: няма
Аргументы
object ідэнтыфікатар мэтавага аб'екта. Калі аб'ект не пачынаецца з "/", то прэфікс "/par/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды.
значэнне, якое будзе прысвоена мэтаваму аб'екту. Дыяпазон дазволеных значэнняў, а таксама семантыка прысваення залежаць ад тыпу аб'екта і ўказваюцца далей у гэтым кіраўніцтве для кожнага падтрымоўванага аб'екта.
Параметры
Няма.
Апісанне
Гэтая каманда прысвойвае значэнне аб'екту. Адказ не генеруецца, калі толькі не ўзнікае памылка або адказ не вымушаны ідэнтыфікатарам аператара.
Exampлес
Example: усталяваць хуткасць перадачы паслядоўнага порта C на 115200. Любое з:
набор,/пар/развіццё/сер/с/хуткасць,115200 набор,развіццё/серыял/с/хуткасць,115200
Example: усталяваць хуткасць перадачы паслядоўнага порта A на 9600 і прымусова адказаць:
%%set,dev/ser/a/rate,9600 RE002%%

ГРЭЙС

www.javad.com

32

2.3.2 друк

МОВА ЎВОДУ ПРЫЕМНІКА Друк каманд

Імя
друкаваць значэнне аб'екта.

Канспект
Фармат: print,object Параметры: {імёны}

Аргументы
object ідэнтыфікатар аб'екта для вываду. Калі аб'ект не пачынаецца з "/", то прэфікс "/par/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды.

Параметры

Табліца 2-2. рэзюмэ параметраў друку

Тып імя

Каштоўнасці

імёны лагічныя ўкл., выкл

Па змаўчанні
выключаны

імёны, калі выключаны, выводзіць толькі значэнні аб'ектаў. Калі ўключана, выводзіць імёны аб'ектаў у дадатак да значэнняў аб'ектаў у фармаце ІМЯ=ЗНАЧЭННЕ.
Апісанне
Гэтая каманда друкуе значэнне аб'екта, неабавязкова дадаючы да значэння назву адпаведнага аб'екта. Адказ генеруецца заўсёды, і ў адказ на адну каманду друку можа быць створана некалькі паведамленняў [RE].
Значэнне аб'екта тыпу list друкуецца як спіс значэнняў для кожнага аб'екта ў спісе. Гэта прымяняецца рэкурсіўна, пакуль не будуць дасягнуты ліставыя аб'екты, таму друк аб'екта няліставога тыпу эфектыўна выводзіць усё паддрэва, пачынаючы з названага аб'екта. У выпадку друку спісаў можа быць згенеравана некалькі паведамленняў [RE]. Аднак раздзяленне вываду можа адбыцца толькі адразу пасля знакаў-падзельнікаў спісу.

ГРЭЙС

www.javad.com

33

МОВА ЎВОДУ ПРЫЕМНІКА Друк каманд
Exampлес
Example: Раздрукаваць бягучы перыяд часовай сеткі ўнутранага прымача. Любы з:
print,/par/raw/curmsint RE004 100 print,raw/curmsint RE004 100
Example: друкуе бягучы перыяд часовай сеткі ўнутранага прымача разам з назвай аб'екта. Любы з:
print,/par/raw/curmsint:on RE015/par/raw/curmsint=100 print,raw/curmsint:on RE015/par/raw/curmsint=100
Example: Раздрукаваць інфармацыю аб версіі прымача:
print,rcv/ver RE028{“2.5 Sep,13,2006 p2″,0,71,MGGDT_5,none, RE00D {none,none}}
Example: Раздрукаваць інфармацыю аб версіі атрымальніка разам з адпаведнымі назвамі:
print,rcv/ver:on RE043/par/rcv/ver={main=”2.5 Sep,13,2006 p2”,boot=0,hw=71,board=MGGDT_5, RE00C modem=none, RE017 pow={fw =няма,hw=няма}}
Example: Раздрукаваць усе паведамленні, дазволеныя для вываду на паслядоўны порт B, разам з іх параметрамі планавання:
print,out/dev/ser/b:on RE02D/par/out/dev/ser/b={jps/RT={1.00,0.00,0,0×0}, RE01A jps/SI={1.00,0.00,0,0, 0×01}, RE1.00,0.00,0,0A jps/rc={0×01}, RE1.00,0.00,0,0A jps/ET={0×01}, RE10.00,5.00,0,0D nmea/GGA={0×XNUMX}}

ГРЭЙС

www.javad.com

34

2.3.3 спіс

МОВА ЎВОДУ ПРЫЕМНІКА Спіс каманд

Імя
спіс спіс змесціва аб'екта.
Канспект
Фармат: спіс[,аб'ект] Параметры: няма
Аргументы
object ідэнтыфікатар аб'екта для вываду. Калі аб'ект апушчаны, прымаецца /log. Калі аб'ект не пачынаецца з "/", то прэфікс "/log/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды.
Параметры
Няма.
Апісанне
Гэтая каманда выводзіць імёны кожнага члена аб'екта. Адказ генеруецца заўсёды, і больш чым адно паведамленне [RE] можа быць згенеравана ў адказ на адну каманду спісу. Калі ўказаны аб'ект не належыць да тыпу спісу, генеруецца пустое паведамленне [RE]. Калі ўказаны аб'ект з'яўляецца спісам, друкуецца спіс імёнаў кожнага аб'екта ў спісе. Гэта прымяняецца рэкурсіўна, пакуль не будуць дасягнуты ліставыя аб'екты, таму пералік аб'екта неліставога тыпу эфектыўна выводзіць усё паддрэва, пачынаючы з названага аб'екта. У выпадку друку спісаў можа быць згенеравана некалькі паведамленняў [RE]. Аднак раздзяленне вываду можа адбыцца толькі адразу пасля знакаў-падзельнікаў спісу.
Exampлес
Example: пусты адказ на пералік аб'екта, які не ўваходзіць у спіс:
спіс,/пар/rcv/ver/асноўны RE000
Example: Адказ пра памылку для спісу неіснуючага аб'екта:
list,/does_not_exist ER018{2,,няправільны 1-ы параметр}

ГРЭЙС

www.javad.com

35

МОВА ЎВОДУ ПРЫЕМНІКА Спіс каманд
Example: атрымаць спіс існуючых часопісаўfileс. Любы з
спіс,/спіс часопісаў
будзе вырабляць той жа вынік, напрыклад:
RE013{log1127a,log1127b}
Example: спіс усіх стандартных паведамленняў GREIS, якія падтрымліваюцца атрымальнікам:
list,/msg/jps RE03D{JP,MF,PM,EV,XA,XB,ZA,ZB,YA,YB,RT,RD,ST,LT,BP,TO,DO,OO,UO,GT, RE040 NT,GO,NO,TT,PT,SI,NN,EL,AZ,SS,FC,RC,rc,PC,pc,CP,cp,DC,CC,cc,EC, RE040 CE,TC,R1,P1,1R,1P,r1,p1,1r,1p,D1,C1,c1,E1,1E,F1,R2,P2,2R,2P,r2, RE040 p2,2r,2p,D2,C2,c2,E2,2E,F2,ID,PV,PO,PG,VE,VG,DP,SG,BI,SE,SM,PS, RE040 GE,NE,GA,NA,WE,WA,WO,GS,NS,rE,rM,rV,rT,TM,MP,TR,MS,DL,TX,SP,SV, RE031 RP,RK,BL,AP,AB,re,ha,GD,LD,RM,RS,IO,NP,LH,EE,ET}
Example: спіс усіх паведамленняў у наборы паведамленняў па змаўчанні:
спіс,/msg/def RE040{jps/JP,jps/MF,jps/PM,jps/EV,jps/XA,jps/XB,jps/RT,jps/RD,jps/SI, RE040 jps/NN,jps /EL,jps/FC,jps/RC,jps/DC,jps/EC,jps/TC,jps/CP,jps/1R, RE040 jps/1P, jps/2R, jps/2P, jps/E1, jps/D2, jps/E2, jps/SS, jps/SE, jps/PV, RE040 jps/ST, jps/DP, jps/TO, jps /DO,jps/UO,jps/IO,jps/GE,jps/NE,jps/GA, RE01D jps/NA, jps/WE, jps/WA, jps/WO}

ГРЭЙС

www.javad.com

36

ГРЭЙС

2.3.4 em & out

МОВА ЎВОДУ ПРЫЕМНІКА Каманды em & out

Імя
em, out уключыць перыядычны вывад паведамленняў.

Канспект
Фармат: Фармат: Параметры:

em,[мэта],паведамленні з,[мэта],паведамленні {перыяд, фаза, колькасць, сцягі}

Аргументы
арыентавацца на любы выходны паток або набор паведамленняў. Калі мэта не вызначана, мяркуецца бягучы тэрмінал /cur/term.
messages спіс (з дужкамі або без іх) імёнаў паведамленняў і/або імёнаў набораў паведамленняў, якія трэба ўключыць. Калі некаторыя з названых імёнаў не пачынаюцца з “/”, то прэфікс “/msg/” аўтаматычна ўстаўляецца перад такімі імёнамі перад выкананнем каманды.

Параметры

Табліца 2-3. em і out параметры рэзюмэ

Тып імя

Каштоўнасці

Па змаўчанні

перыяд з плаваючай часткай [0…86400)

фаза з плаваючай колькасцю [0…86400)

count integer [-256…32767] 0 for em 1 for out

сцягі цэлы лік [0…0xFFFF] –

перыяд, фаза, колькасць, сцягі параметры планавання паведамленняў.
Апісанне
Гэтыя каманды дазваляюць перыядычна выводзіць зададзеныя паведамленні ў мэту, прымушаючы параметры планавання паведамленняў быць такімі, якія задаюцца параметрамі. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Каманды em і out аднолькавыя, за выключэннем таго, што значэнне параметра падліку па змаўчанні ўстаноўлена ў 0 для em і 1 для out. Каманда out - гэта проста больш зручны спосаб запыту

www.javad.com

37

МОВА ЎВОДУ ПРЫЕМНІКА Каманды em & out

Заўвага:

аднаразовы вывад паведамлення (паведамленняў). У гэтым апісанні мы будзем казаць толькі пра іх, хоць усё адносіцца і да аўту.
Прыведзенае ніжэй апісанне мяркуе, што чытач знаёмы з матэрыялам у раздзеле «Перыядычны выхад» на старонцы 22.
Для кожнага патоку вываду існуе адпаведны спіс вываду паведамленняў1,2, якія ў цяперашні час дазволены для вываду ў дадзены паток. Калі паведамленне, перададзенае ў якасці аргумента камандзе em, зараз адсутнічае ў спісе вываду, каманда em дадае азначанае паведамленне ў канец спісу. Калі паведамленне, перададзенае камандзе em, ужо знаходзіцца ў спісе вываду, каманда em проста змяняе параметры планавання гэтага паведамлення і не змяняе пазіцыю паведамлення ў спісе.
Паколькі каманда em аб'ядноўвае ўказаныя паведамленні ў спіс вываду, часта бывае добрай ідэяй выкарыстоўваць каманду dm, каб ачысціць спіс вываду для дадзенага патоку перад выдачай каманд em.
Каманда em апрацоўвае спіс паведамленняў па адным злева направа і ад першага паведамлення ў наборы да апошняга паведамлення ў наборы. Калі ён сутыкнецца з імем, якое не адпавядае ніякаму падтрымоўванаму паведамленні атрымальніка або набору паведамленняў, ён запамінае, што адбылася памылка падчас выканання, але не спыняе апрацоўку спісу паведамленняў. Такім чынам, усе паведамленні са спісу паведамленняў, якія можна ўключыць, будуць уключаны, і будзе паведамляцца толькі пра адну памылку, калі адно ці некалькі з указаных паведамленняў не могуць быць уключаны.
Калі каманда em апрацоўвае адпаведнае паведамленне, канчатковыя працоўныя параметры планавання паведамленняў у адпаведным спісе вываду паведамленняў разлічваюцца з улікам некалькіх крыніц інфармацыі аб параметрах планавання, у прыватнасці:
1. Значэнні, відавочна зададзеныя ў параметрах каманды em.
2. Значэнні параметраў каманды em па змаўчанні.
3. Параметры раскладу, вызначаныя для дадзенага паведамлення ў складзе адпаведнага набору паведамленняў. Яны ўлічваюцца толькі пры ўключэнні паведамлення шляхам указання набору паведамленняў, а не асобнага паведамлення.
4. Бягучыя параметры раскладу паведамлення ў адпаведным спісе вываду (пры наяўнасці).
5. Параметры раскладу па змаўчанні, вызначаныя для дадзенага паведамлення ў складзе адпаведнай групы паведамленняў.
Вышэйзгаданыя крыніцы параметраў пералічаны ў парадку іх старшынства, першая з якіх мае найбольшы прыярытэт, і прымяняюцца асобна да кожнага з чатырох параметраў планавання. Такім чынам, значэнні з (1) перавызначаюць значэнні з (2), выніковае значэнне

ГРЭЙС

1. Для патоку NAME адпаведны спіс вываду называецца /par/out/NAME 2. Бягучая ўбудаваная праграма мае адвольнае абмежаванне для максімальнай колькасці паведамленняў у спісе вываду, роўнае 49.

www.javad.com

38

МОВА ЎВОДУ ПРЫЕМНІКА Каманды em & out

перавызначае значэнне з (3) і г. д. Аднак, калі некаторыя з бітаў F_FIX_PERIOD, F_FIX_PHASE, F_FIX_COUNT або F_FIX_FLAGS устаноўлены ў полі сцягоў наступнай крыніцы, адпаведныя палі гэтай наступнай крыніцы не будуць перавызначаны.

Exampлес

Example: Уключыць аднаразовы вывад паведамлення NMEA GGA на бягучы тэрмінал:

em,,nmea/GGA:{,,1}

Тое самае, што і вышэй, але з выкарыстаннем out замест em:

выхад,,nmea/GGA
Example: Уключыць вывад стандартнага набору паведамленняў у бягучы журнал-file A з выкарыстаннем выходных параметраў па змаўчанні. Любы з:

Exampль:

em,/cur/file/a,/msg/def em,/cur/file/a, дэф
Уключыць вывад стандартнага набору паведамленняў у бягучы журнал-file A кожныя 10 секунд. Для іншых выходных параметраў будуць выкарыстоўвацца іх значэнні па змаўчанні:

em,/cur/file/a,def:10
Example: Уключыць вывад стандартнага набору паведамленняў на бягучы тэрмінал з выкарыстаннем параметраў вываду па змаўчанні. Любы з:

Exampль:

em,/cur/term,/msg/def em,,/msg/def em,,def
Уключыць вывад паведамленняў GREIS [~~](RT) і [RD] на бягучы тэрмінал. Любы з:

Exampль:

em,,/msg/jps/RT,/msg/jps/RD em,,jps/{RT,RD}
Уключыць вывад паведамленняў NMEA GGA і ZDA на бягучы тэрмінал кожныя 20 секунд:

Exampль:

em,,nmea/{GGA,ZDA}:20
Уключыць вывад паведамленняў [SI], [EL] і [AZ] на паслядоўны порт A. Усталюйце параметры планавання для [SI] так, каб інтэрвал паміж любымі двума наступнымі паведамленнямі [SI] быў роўны 10 секундам, калі яны супадаюць, і 1 секунда ў адваротным выпадку; выводзіць толькі першыя пяцьдзесят [SI] паведамленняў. Акрамя таго, атрымальнік усталюе інтэрвал вываду ў 2 секунды для паведамленняў [EL] і [AZ]:

em,/dev/ser/a,jps/{SI:{1,10,50,0×2},EL,AZ}:2

ГРЭЙС

www.javad.com

39

МОВА ЎВОДУ ПРЫЕМНІКА Каманды em & out
Example: Уключыць вывад паведамленняў RTCM 2.x тыпаў 1 і 31 на паслядоўны порт B з інтэрвалам вываду 3 секунды і паведамленняў RTCM 2.x тыпаў 18, 19, 3, 22 на порт C з інтэрвалам вываду 1 секунда для тыпаў 18 і 19; і 10 секунд для тыпаў 3 і 22:
em,/dev/ser/b,rtcm/{1,31}:3; em,/dev/ser/c,rtcm/{18:1,19:1,22,3}:10
Example: Наладзьце стандартны набор паведамленняў, каб яны ўтрымлівалі толькі NMEA ZDA і GGA:
dm,/msg/def em,/msg/def,/msg/nmea/{ZDA,GGA}

ГРЭЙС

www.javad.com

40

2.3.5 дм

МОВА ЎВОДУ ПРЫЕМНІКА Каманды dm

Імя
dm адключыць перыядычны вывад паведамленняў.
Канспект
Фармат: dm[,[мэта][,паведамленні]] Параметры: няма
Аргументы
арыентавацца на любы выходны паток або набор паведамленняў. Калі мэта не вызначана, мяркуецца бягучы тэрмінал /cur/term. Калі некаторыя з указаных імёнаў не пачынаюцца з «/», то прэфікс «/msg/» аўтаматычна ўстаўляецца перад такімі імёнамі перад выкананнем каманды.
messages спіс паведамленняў, якія будуць адключаны, з дужкамі або без іх, альбо любая група паведамленняў або набор паведамленняў. Калі ніякія паведамленні не пазначаны, увесь перыядычны вывад да мэты адключаны.
Параметры
Няма.
Апісанне
Гэтая каманда адключае перыядычны вывад указаных паведамленняў у мэтавы аб'ект. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Калі ніякія паведамленні не пазначаны, усе перыядычныя вывады да мэты адключаны. Калі мэтай з'яўляецца бягучы журнал-file і ніякіх паведамленняў не вызначана, увесь вывад у file адключаны, ст file зачынены, а адпаведны бягучы журнал-file не ўстаноўлена.
Калі ў спісе паведамленняў указана паведамленне, вывад якога ў дадзены момант не дазволены, каманда dm не стварае адпаведнай памылкі. Аднак гэта ўмова не адключае магчымасць паведамлення пра іншыя магчымыя памылкі.
Exampлес
Example: адключыць усе паведамленні, якія выводзяцца ў бягучы журнал-file А і зачыніць file:
dm,/cur/file/a

ГРЭЙС

www.javad.com

41

МОВА ЎВОДУ ПРЫЕМНІКА Каманды dm
Example: адключыць увесь перыядычны вывад у бягучы тэрмінал. Любы з:
дм,/тэрмін дм
Example: Адключыць вывад паведамлення GREIS [~~](RT) у паслядоўны порт B:
dm,/dev/ser/b,/msg/jps/RT
Example: Адключыць вывад паведамлення GREIS [DO] у бягучы журнал-file B:
dm,/cur/file/b,/msg/jps/DO
Example: Выдаліць паведамленне GREIS [PM] з набору паведамленняў па змаўчанні:
dm,/msg/def,/msg/jps/PM
Example: Адключыць вывад усіх паведамленняў NMEA на бягучы тэрмінал:
dm,/cur/term,/msg/nmea
Example: Адключыць вывад паведамленняў NMEA GGA і ZDA на бягучы тэрмінал. Любы з:
dm,/cur/term,/msg/nmea/GGA,/msg/nmea/ZDA dm,,/msg/nmea/GGA,/msg/nmea/ZDA dm,,nmea/GGA,nmea/ZDA dm,,nmea /{GGA,ZDA}

ГРЭЙС

www.javad.com

42

2.3.6 пачатк

МОВА ЎВОДУ ПРЫЕМНІКА Каманды ініц

Імя
init ініцыялізаваць аб'екты.

Канспект
Фармат: init,object[/] Параметры: няма

Аргументы
object аб'ект для ініцыялізацыі. / калі прысутнічае і аб'ект мае тып list, замест гэтага ініцыялізаваць усе ўтрымоўваныя аб'екты
самога аб'екта.

Параметры
Няма.

Заўвага: Заўвага:

Апісанне
Гэтая каманда ініцыялізуе ўказаныя аб'екты. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Дакладная семантыка ініцыялізацыі залежыць ад аб'екта, які ініцыялізуецца, але ў цэлым можа разглядацца як перавод аб'екта ў стан «па змаўчанні» або «чысты». Напрыкладample, для параметраў гэта азначае ўстаноўку іх значэнняў на адпаведныя значэнні па змаўчанні, для fileпрылада захоўвання дадзеных азначае паўторнае фарматаванне асноўнага носьбіта і г.д.
Ініцыялізацыя некаторых аб'ектаў прывядзе да перазагрузкі прымача. У цяперашні час гэта тычыцца ініцыялізацыі энерганезалежнай памяці прымача (/dev/nvm/a).
Хоць гэта можа змяніцца ў будучыні, цяперашняя рэалізацыя гэтай агульнай каманды ў прымачах даволі абмежаваная. На самай справе толькі ініцыялізацыя аб'ектаў, якія знаходзяцца ў exampLes ніжэй у цяперашні час падтрымліваецца.

Exampлес
Example: ачысціць NVRAM і перазагрузіць прыёмнік. Усе дадзеныя, якія захоўваюцца ў NVRAM (альманахі, эфемерыды і г.д.), будуць страчаны, пасля перазагрузкі ўсе параметры будуць усталяваны ў значэнні па змаўчанні:
init,/dev/nvm/a
Example: Выразныя эфемерыды:
init,/eph/

ГРЭЙС

www.javad.com

43

МОВА ЎВОДУ ПРЫЕМНІКА Каманды ініц
Example: усталяваць для ўсіх параметраў прымача значэнні па змаўчанні:
ініцыялізацыя,/пар/
Example: усталяваць для ўсіх параметраў WLAN значэнні па змаўчанні. Каб змены ўступілі ў сілу, патрабуецца перазагрузка прылады:
init,/пар/сетка/wlan/
Example: Ініцыялізаваць file сістэмы (г. зн. перафарматаваць базавы носьбіт). Усе files, захаваныя ў прыёмніку, будуць страчаны:
init,/dev/blk/a
Example: Ініцыялізаваць усе наборы паведамленняў да значэнняў па змаўчанні:
init,/msg/

ГРЭЙС

www.javad.com

44

2.3.7 стварыць

МОВА ЎВОДУ АТРЫМАЛЬНІКА Каманды стварыць

Імя
стварыць стварыць новы аб'ект.

Канспект
Фармат: create[,object] Параметры: {log}

Аргументы
аб'ект аб'ект ідэнтыфікатар аб'екта, які будзе створаны. Калі аб'ект не пачынаецца з "/", то прэфікс "/log/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды. Калі апусціць, то стварэнне a file мяркуецца і ўнікальны file імя генеруецца аўтаматычна.

Параметры

Табліца 2-4. стварыць рэзюмэ варыянтаў

Імя Тып Значэнні
радок часопіса a,b,…

Па змаўчанні
a

запісваць часопіс-file створанае file павінен быць прызначаны. Журнал -file выбраны /cur/log/X, дзе X - значэнне option1.
Апісанне
Гэтая каманда стварае новы аб'ект. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Размяшчэнне ў дрэве і тып створанага аб'екта вызначаюцца аргументам object.
Можна стварыць два віды аб'ектаў:
1. Fileс. Новы file ствараецца кожны раз, калі ідэнтыфікатар аб'екта вызначае аб'ект у паддрэве /log або калі аргумент аб'екта апушчаны.
2. Спецыфікатары паведамленняў. Новы спецыфікатар паведамлення ствараецца кожны раз, калі ідэнтыфікатар аб'екта вызначае аб'ект у наборы паведамленняў (напрыклад, /msg/def).

ГРЭЙС

1. Бягучае ўбудаванае праграмнае забеспячэнне падтрымлівае адзін або два адначасовых запісуfiles у залежнасці ад канкрэтнага прымача.

www.javad.com

45

МОВА ЎВОДУ АТРЫМАЛЬНІКА Каманды стварыць
Стварэнне Files
Пры стварэнні files, аргумент аб'екта альбо апушчаны, альбо мае фармат /log/NAME, дзе NAME - гэта імя file быць створаны, а /log/ неабавязковы. У першым выпадку атрымальнік аўтаматычна абярэ унікальнае імя для file. У апошнім выпадку ўказанае ІМЯ павінна быць радком даўжынёй да 31 сімвала і не павінна ўтрымліваць ні прабелаў, ні наступных сімвалаў: “,{}()@&”/”.
Калі file /log/NAME ужо існуе, каманда create не спрацуе і выдасць паведамленне пра памылку. Як следства, няма магчымасці знішчыць некаторыя з існуючых files з дапамогай каманды create.
Пасля новага file паспяхова створаны, ён прызначаны аднаму з бягучых журналаўfiles у залежнасці ад значэння log_file варыянт. Калі адпаведны журнал-file ужо паказвае на іншае file калі ствараецца, стары журнал-file будзе зачынены, а вывад працягнецца ў новым file без перапынку.
Стварэнне спецыфікатараў паведамленняў
Пры даданні паведамленняў у набор паведамленняў аргумент аб'екта мае фармат /msg/SET/GROUP/MSG, дзе SET - гэта імя набору паведамленняў, у якім павінна быць створана новае паведамленне, GROUP - гэта імя групы, да якой належыць паведамленне , а MSG - гэта назва самога паведамлення (напрыклад, /msg/def/nmea/GGA або /msg/jps/rtk/min/jps/ET).
Параметры раскладу паведамленняў будуць скапіяваны з параметраў, вызначаных для дадзенага паведамлення ў групе паведамленняў. Пры неабходнасці выкарыстоўвайце каманду set, каб наладзіць параметры планавання.
Exampлес
Стварэнне Files
Example: Стварыце новы file з аўтаматычна створаным імем і прысвоіць яго бягучаму журналуfile A (/cur/file/а). Любы з:
ствараць ствараць,:а
Example: стварыць новы журнал-file з імем «my_file». Любы з:
стварыць,/log/my_file:стварыць,мой_file
Example: Стварыць files “file1” і “file2”, і прызначыць іх /cur/file/a і /cur/file/b:
ствараць,file1:а; ствараць,file2:б

ГРЭЙС

www.javad.com

46

МОВА ЎВОДУ АТРЫМАЛЬНІКА Каманды стварыць
Стварэнне спецыфікатараў паведамленняў
Example: Дадайце паведамленні /msg/jps/ET да стандартнага набору паведамленняў:
стварыць, /msg/def/jps/ET
Example: Дадаць паведамленне NMEA GGA да стандартнага набору паведамленняў і прымусіць яго перыяд і фазу заўсёды быць 10 і 5 адпаведна, незалежна ад таго, якія значэнні для іх будуць указаны ў камандзе em або out:
стварыць,/msg/def/nmea/GGA набор,/msg/def/nmea/GGA,{10,5,,0×30}

ГРЭЙС

www.javad.com

47

2.3.8 выдаліць

МОВА ЎВОДУ ПРЫЕМНІКА Каманды выдаліць

Імя
выдаліць выдаліць аб'ект.
Канспект
Фармат: выдаліць,аб'ект[/] Параметры: няма
Аргументы
object ідэнтыфікатар аб'екта аб'екта, які трэба выдаліць. Калі аб'ект не пачынаецца з "/", то прэфікс "/log/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды.
/ калі прысутнічае і аб'ект мае тып спісу, выдаліць усё змесціва аб'екта замест самога аб'екта.
Параметры
Няма.
Апісанне
Гэтая каманда выдаляе (выдаляе) існуючы аб'ект. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара. Калі няма аб'екта, вызначанага аб'ектам, або калі аб'ект не можа быць выдалены, генеруецца памылка. Можна выдаліць два віды аб'ектаў:
1. Files. Калі file з'яўляецца адным з бягучых часопісаўfiles, каманда не выканае і будзе згенеравана паведамленне пра памылку.
2. Спецыфікатары паведамленняў з набораў паведамленняў.
Exampлес
Example: выдаліць журнал-file з імем «ІМЯ». Любы з:
выдаліць,/log/NAME выдаліць,NAME
Example: выдаліць усе часопісыfiles:
выдаліць,/журнал/

ГРЭЙС

www.javad.com

48

МОВА ЎВОДУ ПРЫЕМНІКА Каманды выдаліць
Example: Выдаліце ​​стандартнае паведамленне GREIS [GA] з набору паведамленняў па змаўчанні:
выдаліць, /msg/def/jps/GA
Example: Выдаліць усе паведамленні з набору па змаўчанні:
выдаліць,/msg/def/
Example: Выдаліць усе паведамленні з мінімальнага набору стандартных паведамленняў GREIS, прыдатных для RTK:
выдаліць,/msg/rtk/jps/мін/

ГРЭЙС

www.javad.com

49

2.3.9 падзея

МОВА ЎВОДУ ПРЫЕМНІКА Падзея каманд

Імя
падзея генераваць падзею ў свабоднай форме.

Канспект
Фармат: падзея, радок Параметры: няма

Аргументы
string адвольны1 радок, які змяшчае да 63 сімвалаў.

Параметры
Няма.

Заўвага: напрыкладampль:

Апісанне
Гэтая каманда стварае падзею ў вольнай форме. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Дадзены радок разам з часам атрымання каманды падзеі захоўваецца ў атрымальніку ў спецыяльным буферы падзей2. Змесціва гэтага буфера выводзіцца ва ўсе выхадныя патокі, дзе ўключана стандартнае паведамленне GREIS [==](EV) (апісана на старонцы 131).
Механізм падзей свабоднай формы прызначаны для таго, каб праграмы кіравання перасылалі адвольную тэкставую інфармацыю праграмам пост-апрацоўкі без інтэрпрэтацыі гэтай інфармацыі ў прымачы. Ядро ўбудаванага праграмнага забеспячэння прымача ніколі не генеруе падзеі ў свабоднай форме самастойна, а таксама не інтэрпрэтуе інфармацыю, адпраўленую праз каманды падзей.
Усе радкі, якія пачынаюцца са знака падкрэслівання (ASCII 0x5F), зарэзерваваны для прыкладанняў JAVAD GNSS. Неабходна сачыць за тым, каб такія радкі не выкарыстоўваліся з камандамі падзей, за выключэннем выпадкаў, калі вы не можаце выканаць сваю задачу іншым спосабам або маеце намер супрацоўнічаць з некаторым праграмным забеспячэннем JAVAD GNSS. У апошнім выпадку, калі ласка, звярніцеся да падрабязнага апісання падзей свабоднай формы, зарэзерваваных для прыкладанняў JAVAD GNSS, у кіраўніцтве «Фармат кадра для падзей свабоднай формы», даступным на сайце http://www.javad.com.
Стварыце падзею ў вольнай форме, якая змяшчае радок "Info1":
падзея, інфармацыя1

ГРЭЙС

1. Памятайце, што калі радок змяшчае любы з сімвалаў, зарэзерваваных для мовы ўводу атрымальніка, вы павінны заключыць гэты радок у двукоссі.
2. Бягучае ўбудаванае праграмнае забеспячэнне забяспечвае дастаткова вялікі буфер для захоўвання да шаснаццаці 64-байтных падзей свабоднай формы.

www.javad.com

50

МОВА ЎВОДУ ПРЫЕМНІКА Падзея каманд
Example: Стварыце падзею ў свабоднай форме, якая змяшчае зарэзерваваныя сімвалы:
падзея, "ПАДЗЕЯ{ДАНЫЯ, АДПРАВЛЕНА}"
Example: Стварыць падзею свабоднай формы, зарэзерваваную для прыкладнога праграмнага забеспячэння JAVAD GNSS (гэтая падзея апавяшчае праграму пост-апрацоўкі аб змене дынамікі):
падзея,”_DYN=STATIC”
Example: Стварыце вольную форму з пустым радком:
падзея,””
Example: Стварыце некалькі падзей свабоднай формы і вярніце паведамленні [==](EV) (у змесціве паведамленняў [==] байты, якія не друкуюцца, замяняюцца кропкамі ў exampле):
em,,jps/EV %accepted% event,”some string” RE00A%accepted% ==011…..some_string. %1% падзея,1; %2% падзея,2 RE003%1% RE003%2% ==007…..1. ==007…..2. dm,,jps/EV

ГРЭЙС

www.javad.com

51

2.3.10 атрымаць

МОВА ЎВОДУ ПРЫЕМНІКА Каманды атрымаць

Імя
пачаць пошук file змесціва з дапамогай DTP1.

Канспект
Фармат: get,object[,offset] Параметры: {timeout,block_size,period,phase,attempts}

Аргументы
аб'ект ідэнтыфікатар аб'екта file быць здабыты. Калі аб'ект не пачынаецца з "/", то прэфікс "/log/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды. Калі аб'ект не існуе або яго нельга атрымаць, выдаецца паведамленне пра памылку.
зрушэнне зрушэнне ў байтах ад пачатку file з якой пачаць пошук. Калі прапушчана, прымаецца 0.

Параметры

Табліца 2-5. атрымаць зводку варыянтаў

Імя

Тып

Каштоўнасці

тайм-аўт

цэлы лік [0…86400], секунды

block_size цэлы лік [1…163841]

перыяд

float [0…86400), секунд

фаза

float [0…86400), секунд

спробы цэлы лік [-257…100] 1. 2048 для прымачоў, якія не падтрымліваюць TCP або USB.

Па змаўчанні
10 512 0 0 10

тайм-аўт тайм-аўт для DTP. block_size памер блока дадзеных DTP. period перыяд выхаду для фільтрацыі (гл. ніжэй). фаза выходная фаза для фільтрацыі (гл. ніжэй). спрабуе рознае значэнне ў залежнасці ад дыяпазону, наступным чынам:

1. Глядзіце «Пратакол перадачы даных» на старонцы 580.

ГРЭЙС

www.javad.com

52

МОВА ЎВОДУ ПРЫЕМНІКА Каманды атрымаць
[1…100] максімальная колькасць спроб перадатчыка DTP для адпраўкі аднаго блока. Калі ўстаноўлена ў 1, уключаецца спецыяльны рэжым струменевай перадачы (гл. ніжэй).
0 замест таго, каб запускаць DTP, вывесці неапрацаванае змесціва аб'екта. [-256…-1] замест таго, каб запускаць DTP, выводзіць змесціва аб'екта, загорнутага ў
[>>] паведамленні.
-257 замест запуску DTP, выводзіць змесціва аб'екта, загорнутага ў паведамленні [RE].
Апісанне
Гэтая каманда запускае атрыманне a file у галоўны кампутар з дапамогай пратаколу перадачы даных (DTP) або неапрацаванага фармату вываду. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
У рэжыме DTP пасля паспяховага выканання каманды перадатчык DTP запускаецца на прымачы і чакае, пакуль прымач DTP будзе запушчаны на хасце. Такім чынам, каб фактычна атрымаць якія-небудзь дадзеныя, патрэбна рэалізацыя прымача DTP на хасце.
Неабавязковы аргумент зрушэння дазваляе хосту рэалізаваць падтрымку для аднаўлення перапыненай перадачы даных. Звярніце ўвагу, што пошук вялікага зрушэння можа запатрабаваць даволі шмат часу для працы ў ствольнай скрынцы. Каб правільна рэалізаваць аднаўленне ў праграмным забеспячэнні хаста, прымусіце атрымальнік адказаць на каманду get з дапамогай ідэнтыфікатара аператара і дачакайцеся адказу ад атрымальніка перад запускам DTP на хасце. Гэты метад займае перадtagГэта звязана з тым, што атрымальнік адказвае на каманду get пасля выканання пошуку.
Калі для параметра спробы ўстаноўлена 1, перадатчык DTP будзе пераведзены ў так званы струменевы рэжым. У гэтым рэжыме, пасля атрымання першага паведамлення NACK ад прымача DTP, перадатчык DTP будзе трансліраваць блокі даных, не чакаючы ACK ад прымача DTP, і перадатчык неадкладна спыніць перадачу даных у выпадку атрымання NACK. Такі падыход дазваляе значна паскорыць перадачу даных па надзейных злучэннях з вялікімі затрымкамі (напрыклад, TCP) або адносна вялікімі выдаткамі на пераключэнне напрамкаў (напрыклад, USB). Правільна рэалізаваная прыёмная частка пратаколу не патрабуе адмысловага сыходу для падтрымкі гэтага метаду.
Калі параметр перыяду ненулявы, уключаецца спецыяльны рэжым фільтрацыі. Напрыкладample, гэта дазваляе спампоўваць дадзеныя 1 Гц з a file які быў напісаны з частатой абнаўлення 10 Гц. У прыватнасці, прымач будзе адпраўляць даныя толькі для тых перыядаў, калі час прымача па модулю аднаго дня (Tr) задавальняе наступнаму ўраўненню:
Tr {mod перыяд} = фаза
Каб дасягнуць гэтага, атрымальнік аналізуе змесціва file і адфільтроўвае некаторыя паведамленні. Звярніце ўвагу, што выкананне аднаўлення перапыненай загрузкі вельмі складанае, калі

ГРЭЙС

www.javad.com

53

МОВА ЎВОДУ ПРЫЕМНІКА Каманды атрымаць

не немагчыма ў гэтым выпадку з-за таго, што гаспадар паняцця не мае, на якім зрушэнні прымача file загрузка была перапыненая.
Любы з тыпаў перадачы можа быць спынены прымаючым бокам даных шляхам адпраўкі любога сімвала памылкі DTP (напрыклад, ASCII '#').
Пры перадачы даных у паведамленнях [RE] значэнне block_size будзе вызначаць максімальны памер карыснай нагрузкі даных для кожнага паведамлення [RE] (абмежаваны таксама памерам унутранага буфера прашыўкі). Як звычайна, кожнае паведамленне [RE] будзе пачынацца з ідэнтыфікатара каманды (калі ёсць).
Пры перадачы даных у паведамленнях [>>] значэнне опцыі спроб будзе вызначаць поле ідэнтыфікатара паведамленняў [>>] наступным чынам:
id = -1 – спробы
а значэнне “block_size” будзе вызначаць максімальны памер карыснай нагрузкі дадзеных для кожнага паведамлення [>>] (абмежаваны таксама памерам унутранага буфера прашыўкі).
Наступны байт пасля ідэнтыфікатара (першы байт поля даных) у паведамленні [>>] будзе сімвалам паслядоўнасці, які пачынаецца з сімвала ASCII 0 і павялічваецца па модулю 64 для кожнага паведамлення, у выніку чаго паслядоўнасць сімвалаў ASCII ад 0 да о, уключна:
seq = 0 цыкл { seq_char = '0' + (seq++ % 64)}
Сімвал паслядоўнасці дазваляе прымаючаму боку выявіць страту [>>] паведамлення(-яў) у паслядоўнасці.
Потым будзе прытрымлівацца карысная нагрузка дадзеных аб'екта памерам да байтаў block_size, а затым кантрольная сума ў адпаведнасці з фарматам паведамлення [>>].
Паспяховы вывад у згорнутым рэжыме заўсёды будзе завяршацца паведамленнем [>>] без карыснай нагрузкі дадзеных, каб дазволіць прымаючаму боку надзейна вызначыць канец перадачы.

Exampлес

Example: пачаць пошук змесціва file NAME з дапамогай DTP. Любы з:

Exampль:

get,/log/NAME get,NAME
Пачніце здабываць змесціва file NAME, пачынаючы з нумара байта 3870034 (адлік байтаў ад нуля). Чакайце, што паміж камандай і адказам пройдзе даволі шмат часу:

%%атрымаць,NAME,3870034 RE002%%

ГРЭЙС

www.javad.com

54

МОВА ЎВОДУ ПРЫЕМНІКА Каманды атрымаць
Example: пачаць пошук змесціва file мой_журналfile пачынаючы з байта 3000 з выкарыстаннем часу чакання 50 секунд і памерам блока 8192 байт:
атрымаць, мой_журналfile:{50,8192},3000
Example: пачаць пошук змесціва file NAME фільтруе эпохі, каб атрымаць вынік file будуць дадзеныя 0.1 Гц:
атрымаць,NAME:{,,10}
Example: пачаць пошук змесціва file NAME выкарыстоўвае рэжым струменевай перадачы (параметр спроб усталяваны ў 1):
атрымаць,ІМЯ:{,,,,1}
Example: Адправіць змесціва file NAME загорнута ў [>>] паведамленні з ідэнтыфікатарам 61 (з'яўляецца сімвалам ASCII '='), выкарыстоўваючы да 128 байт даных на паведамленне:
атрымаць,NAME:{,128,,,-62}
Example: Адправіць змесціва file NAME загорнута ў паведамленні [RE] з выкарыстаннем да 190 байт даных на паведамленне, перад %MY_ID%:
%MY_ID%get,NAME:{,190,,,-257}

ГРЭЙС

www.javad.com

55

2.3.11 паставіць

МОВА ЎВОДУ ПРЫЕМНІКА Каманды put

Імя
пакласці пачатак file загрузка з дапамогай DTP1.

Канспект
Фармат: put,object[,offset] Параметры: {timeout, block_size}

Аргументы
аб'ект ідэнтыфікатар аб'екта file для запісу даных. Калі аб'ект не пачынаецца з "/", то прэфікс "/log/" аўтаматычна ўстаўляецца перад аб'ектам перад выкананнем каманды.
зрушэнне зрушэнне ў байтах ад пачатку file з чаго пачаць пісаць. Калі прапушчана, прымаецца 0.

Параметры

Табліца 2-6. рэзюмэ пут-апцыён

Імя

Тып

Каштоўнасці

Па змаўчанні

тайм-аўт

цэлы лік [0…86400], секунды 10

block_size цэлы лік [1…163841]

512

1. 2048 для прымачоў, якія не падтрымліваюць TCP або USB.

тайм-аўт тайм-аўт для DTP. block_size памер блока дадзеных DTP.

Апісанне
Гэтая каманда запускае загрузку даных з хост-кампутара ў a file у прымачы з дапамогай пратаколу перадачы дадзеных (DTP). Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.
Пасля паспяховага выканання каманды put прыёмнік DTP запускаецца на прымачы і чакае, пакуль перадатчык DTP будзе запушчаны на хасце. Такім чынам, каб фактычна загрузіць якія-небудзь дадзеныя, неабходна ўкараненне перадатчыка DTP на хасце.

1. Глядзіце «Пратакол перадачы даных» на старонцы 580.

ГРЭЙС

www.javad.com

56

МОВА ЎВОДУ ПРЫЕМНІКА Каманды put

Неабавязковы аргумент зрушэння дазваляе хосту рэалізаваць падтрымку для аднаўлення перапыненай перадачы даных. Ненулявое значэнне зрушэння дазваляе хосту запытваць даданне даных у канец існуючага file адпаведнага памеру.
Калі зрушэнне роўна 0 і file аб'ект не існуе, атрымальнік паспрабуе стварыць і адкрыць для запісу новы file з назвай, вызначанай аб'ектам. У гэтым выпадку каманда не выканае, калі ўжо існуе a file з названым імем.
Калі зрушэнне больш за 0, і ёсць a file аб'ект, і ст file памер роўны значэнню зрушэння, тады каманда put адкрые file аб'ект для дап. У гэтым выпадку каманда не выканае, калі няма існуючай file з назвай або калі памер існуючага file не супадае з тымі, што вызначаны зрушэннем.

Exampлес

Example: Пачніце загрузку дадзеных у новы файл file “NAME” з дапамогай DTP. Любы з:

Exampль:

put,/log/NAME put,NAME
Пачніце загружаць дадзеныя і далучайце іх да існуючых file «ІМЯ». Выкарыстоўваць стандартны час чакання DTP і памер блока DTP 4096 байт. Атрымаць памер file перад пачаткам загрузкі (звярніце ўвагу, што file памер патрабуецца на хасце ў любым выпадку, каб ён мог прапусціць гэтую колькасць байтаў з зыходных дадзеных file):

Exampль:

print,/log/NAME&size RE008 3870034 put,/log/NAME:{,4096},3870034
Пачніце загрузку дадзеных у новы файл file «мой_журналfile», выкарыстоўваючы тайм-аўт 50 секунд і памер блока 8192 байт:

put,my_logfile:{50,8192}

ГРЭЙС

www.javad.com

57

2.3.12 разл

МОВА ЎВОДУ ПРЫЕМНІКА Каманды fld

Імя
Загрузка прашыўкі fld.

Канспект
Фармат: fld,id,object Параметры: {timeout, block_size}

Аргументы
радок id, які змяшчае электронны ID1 прымача. Калі ўказаны ідэнтыфікатар не супадае з сапраўдным электронным ідэнтыфікатарам атрымальніка, каманда не выканае і вывядзе паведамленне пра памылку.
аб'ект ідэнтыфікатар аб'екта крыніцы ўбудаванага праграмнага забеспячэння для загрузкі. Альбо імя атрымальніка file, або імя ўваходнага порта. Калі гэта назва ўваходнага порта, трэба ўказаць /cur/term або сапраўдную назву бягучага порта, у адваротным выпадку будзе паведамлена пра памылку.

Параметры

Табліца 2-7. рэзюмэ варыянтаў fld

Імя

Тып

Каштоўнасці

тайм-аўт

цэлы лік [0…86400], секунды

block_size integer [1…163841] 1. 2048 для прымачоў, якія не падтрымліваюць TCP або USB.

Па змаўчанні
10 512

тайм-аўт тайм-аўт для DTP. block_size памер блока дадзеных DTP.

Апісанне
Гэтая каманда загружае ўбудаванае праграмнае забеспячэнне з вызначанага аб'екта ў прымач, а затым скідае прыёмнік. Адказ не ствараецца, за выключэннем выпадкаў, калі ёсць памылка або адказ фарсіраваны ідэнтыфікатарам аператара.

1. Ідэнтыфікатар можна атрымаць з дапамогай каманды print,/par/rcv/id.

ГРЭЙС

www.javad.com

58

МОВА ЎВОДУ ПРЫЕМНІКА Каманды fld

Папярэджанне:

У выпадку збою сілкавання або фатальнага перапынення перадачы прашыўкі праз порт падчас загрузкі, прыёмнік можа перайсці ў напаўпрацоўны стан, дзе магчымая толькі загрузка прашыўкі праз порты RS-232 метадам «захопу пры ўключэнні».
Калі аб'ект пазначае існуючы file1, прыёмнік спачатку праверыць, ці з'яўляецца file змяшчае сапраўдную прашыўку для рэсівера (гэта займае некалькі секунд). Калі праверка прайшла паспяхова, прыёмнік загрузіць прашыўку, а затым выканае самааднаўленне. Звярніце ўвагу, што адказ на каманду (калі ёсць) будзе адпраўлены пасля выканання праверкі, але перад пачаткам загрузкі прашыўкі. Параметры timeout і block_size у гэтым выпадку ігнаруюцца.
Калі аб'ект пазначае ўваходны паток, каманда адправіць адказ (калі ёсць), а затым запусціць прыёмнік DTP, які будзе чакаць, пакуль перадатчык DTP будзе запушчаны на хасце. Такім чынам, каб фактычна загрузіць прашыўку, патрэбна рэалізацыя перадатчыка DTP на хасце. Самастойны скід (перазагрузка) будзе выкананы атрымальнікам пасля паспяховага завяршэння або перапынення загрузкі.

Exampлес
Example: загрузіць прашыўку з file “firmware.ldp” у прыёмнік з электронным ідэнтыфікатарам 123456789AB. Чакайце, што паміж адпраўкай каманды і атрыманнем адказу пройдзе некалькі секунд, пакуль атрымальнік правярае file для тэрміну прашыўкі:
%%fld,123456789AB,/log/firmware.ldp RE002%%
Example: Пачніце загрузку прашыўкі з порта USB, выкарыстоўваючы памер блока 16384 байта і час чакання 20 секунд. Атрымайце электронны ідэнтыфікатар перад выдачай каманды:
print,rcv/id RE00C 8PZFM10IL8G fld,8PZFM10IL8G,/dev/usb/a:{20,16384}

ГРЭЙС

1. Чакаецца, што file які змяшчае прашыўку, загружаецца ў прыёмнік загадзя, напрыклад, з дапамогай каманды put.

www.javad.com

59

МОВА ЎВОДУ ПРЫЕМНІКА Каманды fld

ГРЭЙС

www.javad.com

60

Раздзел 3
ПАВЕДАМЛЕННІ ПРЫЕМНІКА

У гэтым раздзеле апісваецца агульны фармат стандартных паведамленняў GREIS, а таксама асобныя фарматы ўсіх прадвызначаных паведамленняў. Акрамя паведамленняў стандарту GREIS, прыёмнік падтрымлівае даволі шмат паведамленняў розных фарматаў, такіх як NMEA або BINEX. Фарматы гэтых «чужых» паведамленняў апісаны ў канцы гэтай главы.
3.1 Умоўныя пагадненні
3.1.1 Характарыстыкі фармату
Каб апісаць нейкі фармат як паслядоўнасць байтаў1 у кампактнай форме, мы вызначаем фарматы для некалькіх асноўных тыпаў палёў, а затым выкарыстоўваем абазначэнні, блізкія да тых, што выкарыстоўваюцца ў мове праграмавання C, каб пабудаваць азначэнні больш складаных фарматаў:
struct NAME {LENGTH} { TYPE FIELD[COUNT]; // АПІСАННЕ … ПОЛЕ ТЫПУ[КОЛЬКОСЦЬ]; // АПІСАННЕ
};
дзе:
NAME імя, прызначанае для гэтага фармату. Ён можа выкарыстоўвацца ў азначэннях іншых фарматаў як ТЫП поля.
LENGTH даўжыня ўсёй паслядоўнасці ў байтах. Для фармату фіксаванай даўжыні гэта лік, для паведамлення зменнай даўжыні гэта можа быць альбо арыфметычны выраз у залежнасці ад некаторых іншых зменных параметраў, альбо проста радок вар.
Дэскрыптар поля TYPE FIELD[COUNT]. Ён апісвае паслядоўнасць з COUNT элементаў аднаго і таго ж TYPE, якому прысвоена імя FIELD. TYPE можа быць або адным з асноўных тыпаў палёў, апісаных ніжэй, або NAME іншага фармату. Калі [COUNT] адсутнічае, поле складаецца роўна з аднаго элемента. Калі COUNT адсутнічае (гэта значыць, ёсць толькі пустыя квадратныя дужкі, []), гэта азначае, што поле складаецца з нявызначанай колькасці элементаў.

ГРЭЙС

1. У кантэксце гэтай главы «байт» азначае 8-бітны аб'ект. Малодшы біт байта мае нулявы індэкс.

www.javad.com

61

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Ўмоўныя пагадненні
Спецыфікацыі фармату

АПІСАННЕ апісанне поля разам з яго адзінкамі вымярэння і дазволеным дыяпазонам значэнняў, дзе неабходна. Адзінкі вымярэння заключаны ў квадратныя дужкі.
Вызначаны наступныя асноўныя тыпы палёў:

Табліца 3-1. Асноўныя тыпы палёў

Назва тыпу

Сэнс

Даўжыня ў байтах

a1

Сімвал ASCII

1

i1

цэлы лік са знакам

1

i2

цэлы лік са знакам

2

i4

цэлы лік са знакам

4

u1

цэлы лік без знака

1

u2

цэлы лік без знака

2

u4

цэлы лік без знака

4

f4

IEEE-754 з плаваючай кропкай адзінарнай дакладнасці

4

f8

IEEE-754 з плаваючай кропкай падвойнай дакладнасці

8

вул

зменная паслядоўнасці сімвалаў ASCII з нулявым канчаткам

Каб цалкам вызначыць канкрэтны фармат, мы таксама павінны вызначыць парадак байтаў у першасных неагрэгаваных палях, якія з'яўляюцца шматбайтавымі (i2, i4, u2, u4, f4, f8). Для паведамленняў GREIS гэты парадак вызначаецца паведамленнем [MF], падрабязней глядзіце «Фармат паведамленняў [MF]» на старонцы 74.
Выкарыстоўваючы прыведзеныя вышэй азначэнні, можна (рэкурсіўна) пашырыць любую спецыфікацыю фармату да адпаведнай паслядоўнасці байтаў. Напрыкладample, фармат
struct Example {9} { u1 n1; f4 n2; i2 n3[2];
};
пашыраецца да наступнай паслядоўнасці байтаў, мяркуючы, што першы малодшы байт (LSB):
n1[0](0), n2[0](0),n2[0](1),n2[0](2),n2[0](3), n3[0](0),n3[0](1),n3[1](0),n3[1](1)

ГРЭЙС

www.javad.com

62

ГРЭЙС

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Стандартны паток паведамленняў
Асаблівыя каштоўнасці
і да наступнай паслядоўнасці байтаў з улікам парадку старшага байта (MSB):
n1[0](0), n2[0](3)n2[0](2)n2[0](1)n2[0](0) n3[0](1)n3[0](0)n3[1](1)n3[1](0)
дзе x[i](j) пазначае j-ы байт (байт №0 з'яўляецца малодшым) i-га элемента поля x.

3.1.2 Спецыяльныя каштоўнасці

Для двайковых паведамленняў некаторыя з іх цэлых палёў і палёў з плаваючай кропкай могуць утрымліваць спецыяльныя значэнні, якія выкарыстоўваюцца замест фактычных даных, калі даныя для гэтага поля адсутнічаюць. Бінарныя палі, для якіх падчас вымання дадзеных патрабуецца праверка спецыяльных значэнняў, пазначаны клічнікам «!» у першым слупку вызначэння поля.
У наступнай табліцы вызначаны спецыяльныя значэнні для розных тыпаў палёў даных:

Табліца 3-2. Спецыяльныя значэнні для палёў

Тып поля
i1 u1 i2 u2 i4 u4 f4 f8

Асаблівае значэнне
127 255 32767 65535 2147483647 4294967295 ціха NaN ціха NaN

HEX Прадстаўленне
7F FF 7FFF FFFF 7FFF_FFFF FFFF_FFFF 7FC0_0000 7FF8_0000_0000_0000

3.2 Стандартны паток паведамленняў

Стандартны паток паведамленняў GREIS - гэта паслядоўнасць не больш чым двух відаў паведамленняў, стандартных паведамленняў GREIS і нестандартных тэкставых паведамленняў.
Самы важны і шырока выкарыстоўваны тып паведамленняў - гэта багаты набор стандартных паведамленняў GREIS. Іх агульны фармат старанна распрацаваны, каб дазволіць як двайковыя, так і тэкставыя паведамленні.

www.javad.com

63

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Агульны фармат паведамленняў
Стандартныя паведамленні
мудрацы, а таксама зрабіць так, каб прыкладанні маглі эфектыўна прапускаць паведамленні, пра якія прыкладанне не ведае або якія не цікавяць.
Падтрымка нестандартных тэкставых паведамленняў, якія па-ранейшаму павінны прытрымлівацца фармату, вызначанага для іх у гэтым кіраўніцтве, дазваляе змешваць стандартныя паведамленні GREIS з паведамленнямі некаторых іншых фарматаў у стандартным патоку даных GREIS. БылыampLe такога фармату з'яўляюцца паведамленнямі NMEA.
Нестандартныя тэкставыя паведамленні асаблівага выпадку, паведамленні, якія змяшчаюць толькі ASCII і/або сімвалы ўстаўляюцца механізмам фарматавання паведамленняў у прыёмніку паміж стандартнымі паведамленнямі GREIS, каб зрабіць выніковы паток паведамленняў больш зручным для чытання чалавекам, калі ён адпраўляецца на тэрмінал або агульны тэкст viewer або дадатак рэдактара.
Акрамя стандартных паведамленняў GREIS і нестандартных тэкставых паведамленняў, прымачы JAVAD GNSS звычайна падтрымліваюць мноства іншых фарматаў (напрыклад, RTCM, BINEX, CMR). Аднак гэтыя фарматы несумяшчальныя з фарматам стандартнага патоку паведамленняў GREIS. Калі паток утрымлівае паведамленні гэтых фарматаў, ён больш не можа называцца стандартным патокам паведамленняў GREIS і не можа аналізавацца па тых жа правілах, што і стандартны паток.1

3.3 Агульны фармат паведамленняў

3.3.1 Стандартныя паведамленні

Фармат кожнага стандартнага паведамлення наступны:

struct StdMessage {вар.} {

a1 id[2];

// Ідэнтыфікатар

a1 даўжыня[3];

// Шаснаццаткавая даўжыня цела, [000…FFF]

u1 цела [даўжыня]; // Цела

};

Кожнае стандартнае паведамленне пачынаецца з унікальнага ідэнтыфікатара паведамлення, які складаецца з двух сімвалаў ASCII. У ідэнтыфікатары дазволены любыя сімвалы з падмноства ад «0» да «~» (г.зн. дзесятковыя коды ASCII у дыяпазоне [48…126]).

ГРЭЙС

1. Фактычна, фармат стандартных паведамленняў GREIS настолькі гнуткі, што можа ўключаць любы паток даных у стандартны паток даных GREIS, але тады зыходны несумяшчальны паток павінен быць загорнуты ў паслядоўнасць спецыяльных паведамленняў GREIS. Гэтаму служыць прадвызначанае паведамленне з ідэнтыфікатарам «>>».

www.javad.com

64

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Агульны фармат паведамленняў
Нестандартныя тэкставыя паведамленні
За ідэнтыфікатарам паведамлення ідзе даўжыня поля цела паведамлення. Гэта поле, якое змяшчае тры шаснаццатковыя лічбы ў верхнім рэгістры, вызначае даўжыню цела паведамлення ў байтах. Такім чынам, максімальная даўжыня цела паведамлення складае 4095 (0xFFF) байт.
Цела паведамлення ідзе адразу пасля поля даўжыні і змяшчае роўна тую колькасць байтаў, якая вызначана полем даўжыні. Няма ніякіх абмежаванняў на змест цела паведамлення, прадугледжаных агульным фарматам. Фармат цела паведамлення ў паведамленні няяўна вызначаецца ідэнтыфікатарам паведамлення. Фарматы тэл паведамленняў для ўсіх прадвызначаных паведамленняў

3.3.2 Нестандартныя тэкставыя паведамленні

Фармат нестандартных тэкставых паведамленняў наступны:

struct NonStdTextMessage {var} {

a1 ідэнтыфікатар;

// Ідэнтыфікатар, [!…/]

a1 цела[];

// Цела адвольнай даўжыні, [0…)

a1 eom;

// Канец паведамлення ( або )

};

Ідэнтыфікатар паведамлення - любы сімвал у дыяпазоне [!… /] (дзесятковыя коды ASCII у дыяпазоне [33…47]). Ідэнтыфікатар паведамлення неабавязковы. Калі адсутнічае, цела паведамлення павінна мець нулявую даўжыню (г.зн. таксама павінна адсутнічаць).

Цела паведамлення - гэта паслядоўнасць сімвалаў ASCII, акрамя (дзесятковы код 13) і (дзесятковы код 10) знакаў. Ніякіх абмежаванняў па даўжыні корпуса фармат не накладвае.

Маркер канца паведамлення - альбо або характар.

Звярніце ўвагу, што фармат дазваляе нестандартныя паведамленні, якія змяшчаюць толькі сімвалы CR або LF. Гэта функцыя дазваляе зрабіць стандартныя патокі паведамленняў GREIS больш зручнымі для чалавека пры вывадзе даных на тэрмінал агульнага прызначэння або viewз агульным тэкстам viewer або рэдактар.

Адзін з нестандартных ідэнтыфікатараў тэкставых паведамленняў, сімвал «$», ужо зарэзерваваны ў якасці ідэнтыфікатара для стандартных паведамленняў NMEA. Ніякія іншыя нестандартныя тэкставыя паведамленні не павінны выкарыстоўваць «$» у якасці ідэнтыфікатара.

3.3.3 Разбор плыні паведамленняў
У гэтым раздзеле вы знойдзеце некаторыя падказкі і парады аб тым, як напісаць код, прызначаны для разбору патокаў паведамленняў атрымальніка GREIS. Хаця мы не збіраемся падрабязна абмяркоўваць гэтую тэму ў гэтым даведніку, мы хацелі б падкрэсліць, што стандартнае паведамленне

ГРЭЙС

www.javad.com

65

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Агульны фармат паведамленняў
Разбор плыні паведамленняў
фармат дазволіць вам эфектыўна апрацоўваць/разбіраць практычна любы паток паведамленняў GREIS, з якім вы можаце сутыкнуцца на практыцы.

Заўвага:

Сінхранізацыя
Пры разборы патоку паведамленняў вам спачатку трэба знайсці бліжэйшую мяжу паведамлення. Гэта тое, што звычайна называюць «сінхранізацыяй». Сінхранізацыя паведамленняў ажыццяўляецца пры запуску аналізу або страце сінхранізацыі з-за памылкі ў патоку дадзеных. Фактычна, каб спрасціць алгарытм, вы можаце лічыць, што вы ўжо сінхранізаваны, калі пачынаеце разбіраць паток даных. Калі здараецца, што гэта не так, павінна адбыцца памылка аналізу. Затым вы прапускаеце адзін сімвал з уваходнага патоку і робіце выгляд, што зноў сінхранізаваны. Такі падыход фактычна ліквідуе задачу сінхранізацыі як асобную частку алгарытму разбору.
У сувязі з тым, што ўзровень памылак у дастаткова карысным патоку дадзеных павінен быць даволі нізкім, сінхранізацыя не павінна быць частай задачай. Акрамя таго, паток дадзеных GREIS звычайна складаецца з даволі кароткіх паведамленняў, таму адлегласць да бліжэйшай мяжы паведамлення звычайна невялікая. Прымаючы пад увагу гэтыя меркаванні, не патрабуецца, каб алгарытм сінхранізацыі быў вельмі хуткім.

Заўвага:

Пераход да наступнага паведамлення
Наяўнасць даўжыні ў агульным фармаце стандартных паведамленняў GREIS дазваляе лёгка ігнараваць паведамленні, не ведаючы фармату іх цела. Мы настойліва рэкамендуем напісаць аналізатары так, каб яны прапускалі невядомыя паведамленні.
Каб перайсці ад бягучага паведамлення да наступнага, выканайце наступныя дзеянні:
1. Выкажам здагадку, што бягучае паведамленне пачынаецца з пазіцыі «N». Вызначыць бягучую даўжыню паведамлення (дэкадаваць сімвалы ## N+2, N+3, N+4). Выкажам здагадку, што даўжыня паведамлення роўная L. Прапусціце першыя L+5 сімвалаў, пачынаючы з пазіцыі «N».
2. Прапусціць усё і знакаў (калі ёсць).
Строга кажучы, мы не рэкамендуем вам выкарыстоўваць у сваім кодзе разбору апрыёрную інфармацыю пра памеры і змест тэл паведамленняў. Калі вы паважаеце гэтую рэкамендацыю, у вас не будзе праблем з праграмай разбору, калі некаторыя паведамленні будуць зменены.
Правілы і падказкі па разбору тэл паведамленняў стандартных перадвызначаных паведамленняў GREIS абмяркоўваюцца пазней у раздзеле «Аналіз тэл паведамленняў» на старонцы 67.

ГРЭЙС

www.javad.com

66

ГРЭЙС

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Стандартныя загадзя вызначаныя паведамленні
Аналіз тэкстаў паведамленняў
3.4 Стандартныя загадзя вызначаныя паведамленні
У гэтым раздзеле мы пазнаёмім чытача з загадзя вызначаным наборам стандартных паведамленняў GREIS. Калі гаворка ідзе пра паведамленне з ідэнтыфікатарам XX, мы выкарыстоўваем абазначэнне [XX]. У той час як большасць паведамленняў выклікаюцца па ідэнтыфікатары паведамленняў у GREIS, некаторыя з іх, асабліва тыя, якія маюць нелітарна-лічбавыя ідэнтыфікатары, маюць розныя назвы. Для такіх паведамленняў выкарыстоўваецца запіс [XX](NN), дзе XX — ідэнтыфікатар паведамлення, а NN — імя паведамлення, якое будзе выкарыстоўвацца ў камандах GREIS. Напрыкладample паведамленне [~~](RT) мае загаловак “~~” і называецца /msg/jps/RT у камандах GREIS.
У гэтым раздзеле вызначаюцца фарматы тэл для ўсіх стандартных перадвызначаных паведамленняў. Майце на ўвазе, што ў патоку даных кожнае паведамленне таксама мае стандартны загаловак, вызначаны агульным фарматам.
3.4.1 Разбор тэл паведамленняў
Дазволеныя пашырэнні фарматаў
Фарматы двайковых паведамленняў з фіксаваным памерам паведамленняў дазваляюць у будучыні дадаваць больш палёў даных. Новыя палі дазволена ўстаўляць толькі ў канцы цела паведамлення непасрэдна перад полем кантрольнай сумы (калі ёсць). Такія мадыфікацыі тэл паведамлення лічацца пашырэннем фармату, а не несумяшчальнымі зменамі.
Хаця стандартныя тэкставыя паведамленні GREIS не з'яўляюцца паведамленнямі з фіксаваным памерам, у будучыні ў гэтых паведамленнях могуць з'явіцца новыя палі. Новыя палі можна ўставіць у канец існуючага тэкставага паведамлення непасрэдна перад полем кантрольнай сумы або непасрэдна перад любой правай дужкай (}). Напрыкладample, паведамленне, якое зараз чытаецца як:
…1,{21,22},3,@CS
пазней можа быць пашырана
…1,{2.1,2.2,2.3},3,4,@CS
дзе былі дададзены два дадатковыя палі «2.3» і «4».
Рэалізуйце свае алгарытмы аналізу з улікам наступных правілаў, каб прымусіць іх працаваць нават з будучымі пашырэннямі фарматаў:
1. Не мяркуйце, што памер цела атрыманага паведамлення павінен дакладна адпавядаць канкрэтнаму памеру, вызначанаму ў гэтым дакуменце. Толькі калі паведамленне занадта кароткае, гэта азначае, што вы не можаце выкарыстоўваць яго змест. Калі паведамленне даўжэй чаканага, проста ігнаруйце лішнія дадзеныя.
2. Адрасуйце поле кантрольнай сумы адносна канца цела паведамлення.

www.javad.com

67

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Стандартныя загадзя вызначаныя паведамленні
Агульныя заўвагі
3. Адрасуйце іншыя палі дадзеных адносна пачатку цела паведамлення. 4. Прыміце да ўвагі прыведзенае вышэй правіла пашырэння тэкставых паведамленняў, калі
напісанне экстрактараў дадзеных для тэкставых паведамленняў.
Кантрольныя сумы
Пасля таго, як паведамленне было вынята з патоку даных з дапамогай метадаў, апісаных у раздзеле «Аналіз патоку паведамленняў» на старонцы 65, і ідэнтыфікатар паведамлення апынуўся адным з тых, якія цікавяць прыкладанне, цела паведамлення павінна быць прааналізавана, каб атрымаць даныя . Перад здабываннем змесціва кантрольная сума паведамлення павінна быць вылічана і параўнана з кантрольнай сумай, якая змяшчаецца ў паведамленні.
Большасць наканаваных паведамленняў змяшчае кантрольную суму. Кантрольная сума вылічваецца як з выкарыстаннем загалоўка паведамлення (напрыклад, «ідэнтыфікатар паведамлення» плюс «даўжыня цела паведамлення»), так і самога цела. Глядзіце раздзел «Вылічэнне кантрольных сум» на старонцы 579 для атрымання дадатковай інфармацыі аб вылічэнні кантрольнай сумы.
Кантрольная сума заўсёды ставіцца ў самым канцы цела паведамлення. Калі структура паведамлення зменена шляхам дадання новых палёў даных, новыя палі даных будуць дададзены перад полем кантрольнай сумы. Гэта тлумачыць, чаму рэкамендуецца адрасаваць поле кантрольнай сумы адносна канца цела паведамлення.
3.4.2 Агульныя заўвагі
Шкалы часу
Ваш прыёмнік можа апрацоўваць пяць шкал часу:
Tr час прыёмніка Tg сістэмны час GPS Tu UTC(USNO). Сусветны каардынаваны час падтрымліваецца Ваенна-марскім назіральнікам ЗША
ваторый. Tn сістэмны час ГЛОНАСС. Ts UTC(SU). Універсальны каардынаваны час падтрымліваецца дзяржаўным часам і частай
quency Service, Расія.
«Час прымача» - гэта адзіная часовая сетка, якая заўсёды даступная ў вашым прымачы (г.зн. іншыя часовыя сеткі са спісу вышэй могуць быць або не даступныя ў цяперашні час).
Фактычна, прымач JAVAD GNSS заўсёды сінхранізуе час свайго прымача з адной з чатырох глабальных шкал часу: час GPS, UTC (USNO), час ГЛОНАСС або UTC (SU). The

ГРЭЙС

www.javad.com

68

ГРЭЙС

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Стандартныя загадзя вызначаныя паведамленні
Агульныя заўвагі
Выбраная такім чынам часовая сетка ў далейшым у гэтым раздзеле будзе называцца «эталонным часам прыёмніка» (Trr)1.
Розныя сістэмы часу могуць мець розныя абазначэнні часу (фарматы), звязаныя з імі (напрыклад, для часу GPS мы выкарыстоўваем такія тэрміны, як «нумар тыдня», «час тыдня» і г.д.). Звярніце ўвагу, аднак, што прадстаўленне «часу прымача» не будзе залежаць ад абранага апорнага часу прымача і заўсёды прадстаўляецца як дата і час сутак прымача.
Большасць загадзя вызначаных паведамленняў не ўтрымліваюць інфармацыю аб эталонным часе. У нашым view, было б празмерна выкарыстоўваць адзін і той жа час tag з усімі шматлікімі паведамленнямі, якія атрымальнік стварае ў бягучую эпоху. Пры вывадзе інфармацыі аб прыёмніку, даступнай для бягучай эпохі, вы звычайна атрымліваеце розныя паведамленні. Замест таго, каб даць кожнаму з іх індывідуальны час tag поле даных, мы выкарыстоўваем спецыяльнае паведамленне, якое змяшчае агульную для гэтых паведамленняў інфармацыю пра час атрымальніка. Гэта паведамленне называецца «Час атрымання» і мае ідэнтыфікатар [~~].
Існуе, аднак, рэжым працы, званы рэжымам RTK з затрымкай, калі ў дадзены момант часу прыёмнік можа вырабляць рашэнне, якое адносіцца да іншай эпохі ў мінулым. Каб забяспечыць час tag для такога рашэння спецыяльны час рашэнняTag Выкарыстоўваецца паведамленне [ST]. Фактычна гэтае паведамленне паказвае правільны час tag для рашэння ва ўсіх рэжымах працы, хоць у большасці рэжымаў ён мае сапраўды такі ж час, як [~~].
Ёсць і іншыя паведамленні tag поле дадзеных. Гэта паведамленні, якія змяшчаюць інфармацыю, якая з'яўляецца незалежна ў сетцы эпох атрымальніка. Былыampфайл такога паведамлення - "Падзея" [==].
Раздзяляльнікі
Па сутнасці, паведамленне «Час атрымання» павінна папярэднічаць усім іншым паведамленням, створаным у бягучую эпоху, такім чынам размяжоўваючы паведамленні, якія адпавядаюць розным эпохам. З фармальнага пункту гледжання view, карыстальнік павінен вызначыць парадак паведамленняў у выходным патоку. Аднак варта сачыць за тым, каб парадак, у якім паведамленні запісваюцца ў выходны паток, не парушаў «сінхранізацыю эпох», што вельмі важна для пост-апрацоўкі зарэгістраваных даных з дапамогай праграмных пакетаў JAVAD GNSS. Для атрымання больш падрабязнай інфармацыі аб наборы паведамленняў па змаўчанні глядзіце «Наборы паведамленняў» на старонцы 562.
Для прыкладанняў у рэжыме рэальнага часу вельмі важна вызначыць канец эпохі як мага хутчэй. Для такіх прыкладанняў простае размежаванне эпох маркерам «пачатак эпохі» не зручна. Мы прапануем выкарыстоўваць паведамленне «Epoch Time» [::](ET) у якасці маркера «канца эпохі». Гэта паведамленне змяшчае тое самае поле часу сутак, што і ў паведамленні "Час прыёмніка", якое дазваляе лепш праверыць цэласнасць. Ідэя ў тым, каб параўнаць час tag

1. У бягучай прашыўцы прымача эталонным часам прымача з'яўляецца сістэмны час GPS або ГЛОНАСС, звярніцеся да /par/raw/time/ref на старонцы 220

www.javad.com

69

ГРЭЙС

ПАВЕДАМЛЕННІ ПРЫЕМНІКА Стандартныя загадзя вызначаныя паведамленні
Агульныя заўвагі
ад [::] паведамленне супраць часу tag з адпаведнага [~~] паведамлення. Несупадае tags з'яўляюцца паказчыкам зламанай эпохі.
Вы заўважыце, што большасць паведамленняў маюць ідэнтыфікатары, якія складаюцца толькі з лічбаў і/або ангельскіх літар. Фактычна, «Час прыёму» [~~] — адзінае паведамленне, ідэнтыфікатар якога выкарыстоўвае сімвал «~». Гэта мае сэнс, бо паведамленне [~~] адыгрывае вельмі важную ролю, служачы раздзяляльнікам эпохі. Такім чынам, існуюць спецыяльныя меры засцярогі, каб звесці да мінімуму верагоднасць страты гэтага ключавога паведамлення. Аналагічным чынам, ідэнтыфікатар паведамлення "Падзея" ([==]) таксама павінен быць максімальна адметным, паколькі праграмнае забеспячэнне можа выкарыстоўваць падзеі ў свабоднай форме як раздзяляльнікі.
Ідэя выкарыстання «вельмі адметных» ідэнтыфікатараў для паведамленняў, якія служаць раздзяляльнікамі, вельмі зразумелая. Калі кантрольная сума паведамлення няправільная, проста праверце яго ідэнтыфікатар. Калі ні адзін з сімвалаў ідэнтыфікатара не супадае з «~», то вельмі малаверагодна, што гэта пашкоджанае паведамленне [~~]. Такім чынам, вам не трэба пераходзіць да наступнага [~~] паведамлення ў гэтым выпадку.
З іншага боку, калі паведамленне мае правільную кантрольную суму, але адзін з сімвалаў ідэнтыфікатара - "~", тады было б бяспечней разглядаць гэтае паведамленне як пашкоджанае [~~]. У гэтым выпадку перайсці да наступнага [~~] паведамлення.

Тыпы рашэнняў

Поле "solType", якое выкарыстоўваецца ў многіх загадзя вызначаных паведамленнях, вызначае тып адпаведнага рашэння і можа мець наступныя значэнні:
Табліца 3-3. Тыпы рашэнняў

Каштоўнасць

Сэнс

0

няма

Дакументы / Рэсурсы

Знешні інтэрфейс прымача GNSS JAVAD GREIS [pdfКіраўніцтва карыстальніка
Знешні інтэрфейс прымача GREIS GNSS, GREIS, знешні інтэрфейс прымача GNSS, знешні інтэрфейс прымача, знешні інтэрфейс, інтэрфейс

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *