123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756 |
- /*
- * ubxproto
- * Copyright (c) 2014, Alexey Edelev aka semlanik, All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3.0 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.
- *
- * Additionally to GNU Lesser General Public License you MUST NOT
- * static link this library and MUST add link to author
- * and source of this library in your application.
- *
- * Actual LGPL text https://www.gnu.org/licenses/lgpl.html
- *
- * File: ubx.c
- */
- #include "ubxmessage.h"
- #include "ubx.h"
- #include "malloc.h"
- #include "memory.h"
- void fletcherChecksum(unsigned char* buffer, int size, unsigned char* checkSumA, unsigned char* checkSumB)
- {
- int i = 0;
- *checkSumA = 0;
- *checkSumB = 0;
- for(; i < size; i++)
- {
- *checkSumA += buffer[i];
- *checkSumB += *checkSumA;
- }
- }
- void completeMsg(struct UBXMsgBuffer* buffer, int payloadSize)
- {
- unsigned char* checkSumA = (unsigned char*)(buffer->data + UBX_HEADER_SIZE + payloadSize);
- unsigned char* checkSumB = (unsigned char*)(buffer->data + UBX_HEADER_SIZE + payloadSize + 1);
- fletcherChecksum((unsigned char*)(buffer->data + sizeof(UBX_PREAMBLE)), payloadSize + 4, checkSumA, checkSumB);
- }
- void initMsg(struct UBXMsg* msg, int payloadSize, enum UBXMessageClass msgClass, enum UBXMessageId msgId)
- {
- msg->preamble = htobe16(UBX_PREAMBLE);
- msg->hdr.msgClass = msgClass;
- msg->hdr.msgId = msgId;
- msg->hdr.length = payloadSize;
- }
- struct UBXMsgBuffer createBuffer(int payloadSize)
- {
- struct UBXMsgBuffer buffer = {0, 0};
- buffer.size = UBX_HEADER_SIZE + payloadSize + UBX_CHECKSUM_SIZE;
- buffer.data = malloc(buffer.size);
- memset(buffer.data, 0, buffer.size);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALPSRV(struct UBXMsg* clientMgs, const struct UBXAlpFileInfo *fileInfo)
- {
- int requestedAlpSize = (clientMgs->payload.AID_ALPSRV.size << 1);
- if(fileInfo->dataSize < (clientMgs->payload.AID_ALPSRV.offset + requestedAlpSize))
- {
- requestedAlpSize = fileInfo->dataSize - clientMgs->payload.AID_ALPSRV.offset - 1;
- }
- int alpMsgSize = sizeof(struct UBXAID_ALPSRV);
- int payloadSize = alpMsgSize + requestedAlpSize;
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*) buffer.data;
- if(requestedAlpSize < 0)
- {
- return buffer;
- }
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALPSRV);
- msg->payload.AID_ALPSRV.idSize = clientMgs->payload.AID_ALPSRV.idSize;
- msg->payload.AID_ALPSRV.type = clientMgs->payload.AID_ALPSRV.type;
- msg->payload.AID_ALPSRV.offset = clientMgs->payload.AID_ALPSRV.offset;
- msg->payload.AID_ALPSRV.size = clientMgs->payload.AID_ALPSRV.size;
- msg->payload.AID_ALPSRV.fileId = fileInfo->fileId;
- msg->payload.AID_ALPSRV.dataSize = requestedAlpSize;
- msg->payload.AID_ALPSRV.id1 = clientMgs->payload.AID_ALPSRV.id1;
- msg->payload.AID_ALPSRV.id2 = clientMgs->payload.AID_ALPSRV.id2;
- msg->payload.AID_ALPSRV.id3 = clientMgs->payload.AID_ALPSRV.id3;
- memcpy(buffer.data + UBX_HEADER_SIZE + alpMsgSize, fileInfo->alpData + msg->payload.AID_ALPSRV.offset, requestedAlpSize);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_MSG_POLL(enum UBXMessageClass msgClass, enum UBXMessageId msgId)
- {
- int payloadSize = sizeof(struct UBXCFG_MSG_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_MSG);
- msg->payload.CFG_MSG_POLL.msgClass = msgClass;
- msg->payload.CFG_MSG_POLL.msgId = msgId;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_MSG_RATE(enum UBXMessageClass msgClass, enum UBXMessageId msgId, u_int8_t rate)
- {
- int payloadSize = sizeof(struct UBXCFG_MSG_RATE);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_MSG);
- msg->payload.CFG_MSG_RATE.msgClass = msgClass;
- msg->payload.CFG_MSG_RATE.msgId = msgId;
- msg->payload.CFG_MSG_RATE.rate = rate;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_MSG_RATES(enum UBXMessageClass msgClass, enum UBXMessageId msgId, u_int8_t rate[6])
- {
- int payloadSize = sizeof(struct UBXCFG_MSG_RATES);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_MSG);
- msg->payload.CFG_MSG_RATES.msgClass = msgClass;
- msg->payload.CFG_MSG_RATES.msgId = msgId;
- memcpy(msg->payload.CFG_MSG_RATES.rate, rate, 6*sizeof(u_int8_t));
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_RST(enum UBXResetMode mode, u_int16_t mask)
- {
- int payloadSize = sizeof(struct UBXCFG_RST);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_RST);
- msg->payload.CFG_RST.resetMode = mode;
- msg->payload.CFG_RST.navBBRMask = mask;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_TP5_POLL_OPT(enum UBXCFGTimepulses tpIdx)
- {
- int payloadSize = sizeof(struct UBXCFG_TP5_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_TP5);
- msg->payload.CFG_TP5_POLL_OPT.tpIdx = tpIdx;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_TP5(enum UBXCFGTimepulses tpIdx,
- int16_t antCableDelay,
- int16_t rfGroupDelay,
- u_int32_t freqPeriod,
- u_int32_t freqPeriodLock,
- u_int32_t pulseLenRatio,
- u_int32_t pulseLenRatioLock,
- int32_t userConfigDelay,
- int32_t flags)
- {
- int payloadSize = sizeof(struct UBXCFG_TP5);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_TP5);
- msg->payload.CFG_TP5.tpIdx = tpIdx;
- msg->payload.CFG_TP5.antCableDelay = antCableDelay;
- msg->payload.CFG_TP5.rfGroupDelay = rfGroupDelay;
- msg->payload.CFG_TP5.freqPeriod = freqPeriod;
- msg->payload.CFG_TP5.freqPeriodLock = freqPeriodLock;
- msg->payload.CFG_TP5.pulseLenRatio = pulseLenRatio;
- msg->payload.CFG_TP5.pulseLenRatioLock = pulseLenRatioLock;
- msg->payload.CFG_TP5.userConfigDelay = userConfigDelay;
- msg->payload.CFG_TP5.flags = flags;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALM_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_ALM_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALP);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALM_POLL_OPT(UBXU1_t svid)
- {
- int payloadSize = sizeof(struct UBXAID_ALM_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALP);
- msg->payload.AID_ALM_POLL_OPT.svid = svid;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALM(UBXU4_t svid, UBXU4_t week)
- {
- int payloadSize = sizeof(struct UBXAID_ALM);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALM);
- msg->payload.AID_ALM.svid = svid;
- msg->payload.AID_ALM.week = week;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALM_OPT(UBXU4_t svid, UBXU4_t week, UBXU4_t dwrd[8])
- {
- int payloadSize = sizeof(struct UBXAID_ALM_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALM);
- msg->payload.AID_ALM_OPT.svid = svid;
- msg->payload.AID_ALM_OPT.week = week;
- memcpy(msg->payload.AID_ALM_OPT.dwrd, dwrd, 8*sizeof(UBXU4_t));
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALP_POLL(UBXU4_t predTow,
- UBXU4_t predDur,
- UBXI4_t age,
- UBXU2_t predWno,
- UBXU2_t almWno,
- UBXU1_t svs)
- {
- int payloadSize = sizeof(struct UBXAID_ALP_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALP);
- msg->payload.AID_ALP_POLL.predTow = predTow;
- msg->payload.AID_ALP_POLL.predDur = predDur;
- msg->payload.AID_ALP_POLL.age = age;
- msg->payload.AID_ALP_POLL.predWno = predWno;
- msg->payload.AID_ALP_POLL.almWno = almWno;
- msg->payload.AID_ALP_POLL.svs = svs;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALP_END()
- {
- int payloadSize = sizeof(struct UBXAID_ALP_END);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALP);
- msg->payload.AID_ALP_END.dummy = 0xAA;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_ALP(UBXU2_t* chunk, int chunkSize)
- {
- int payloadSize = sizeof(struct UBXAID_ALP) + chunkSize;
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_ALP);
- memcpy(&(msg->payload) + sizeof(struct UBXAID_ALP), chunk, chunkSize);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_AOP_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_AOP_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_AOP);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_AOP_POLL_OPT(UBXU1_t svid)
- {
- int payloadSize = sizeof(struct UBXAID_AOP_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_AOP);
- msg->payload.AID_AOP_POLL_OPT.svid = svid;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_AOP(UBXU1_t svid, UBXU1_t data[59])
- {
- int payloadSize = sizeof(struct UBXAID_AOP);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_AOP);
- msg->payload.AID_AOP.svid = svid;
- memcpy(msg->payload.AID_AOP.data, data, 59*sizeof(UBXU1_t));
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_AOP_OPT(UBXU1_t svid, UBXU1_t data[59], UBXU1_t optional0[48], UBXU1_t optional1[48], UBXU1_t optional2[48])
- {
- int payloadSize = sizeof(struct UBXAID_AOP_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_AOP);
- msg->payload.AID_AOP_OPT.svid = svid;
- memcpy(msg->payload.AID_AOP_OPT.data, data, 59*sizeof(UBXU1_t));
- memcpy(msg->payload.AID_AOP_OPT.optional0, optional0, 48*sizeof(UBXU1_t));
- memcpy(msg->payload.AID_AOP_OPT.optional1, optional1, 48*sizeof(UBXU1_t));
- memcpy(msg->payload.AID_AOP_OPT.optional2, optional2, 48*sizeof(UBXU1_t));
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_DATA_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_DATA_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_DATA);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_EPH_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_EPH_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_EPH);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_EPH_POLL_OPT(UBXU1_t svid)
- {
- int payloadSize = sizeof(struct UBXAID_EPH_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_EPH);
- msg->payload.AID_EPH_POLL_OPT.svid = svid;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_EPH(UBXU4_t svid, UBXU4_t how)
- {
- int payloadSize = sizeof(struct UBXAID_EPH);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_EPH);
- msg->payload.AID_EPH.svid = svid;
- msg->payload.AID_EPH.how = how;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_EPH_OPT(UBXU4_t svid, UBXU4_t how, UBXU4_t sf1d[8], UBXU4_t sf2d[8], UBXU4_t sf3d[8])
- {
- int payloadSize = sizeof(struct UBXAID_EPH_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_EPH);
- msg->payload.AID_EPH_OPT.svid = svid;
- msg->payload.AID_EPH_OPT.how = how;
- memcpy(msg->payload.AID_EPH_OPT.sf1d, sf1d, 8*sizeof(UBXU4_t));
- memcpy(msg->payload.AID_EPH_OPT.sf2d, sf2d, 8*sizeof(UBXU4_t));
- memcpy(msg->payload.AID_EPH_OPT.sf3d, sf3d, 8*sizeof(UBXU4_t));
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_HUI_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_HUI_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_HUI);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_HUI(UBXI4_t health,
- UBXR4_t utcA0,
- UBXR4_t utcA1,
- UBXI4_t utcTOW,
- UBXI2_t utcWNT,
- UBXI2_t utcLS,
- UBXI2_t utcWNF,
- UBXI2_t utcDN,
- UBXI2_t utcLSF,
- UBXI2_t utcSpare,
- UBXR4_t klobA0,
- UBXR4_t klobA1,
- UBXR4_t klobA2,
- UBXR4_t klobA3,
- UBXR4_t klobB0,
- UBXR4_t klobB1,
- UBXR4_t klobB2,
- UBXR4_t klobB3,
- UBXX2_t flags)
- {
- int payloadSize = sizeof(struct UBXAID_HUI);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_HUI);
- msg->payload.AID_HUI.health = health;
- msg->payload.AID_HUI.utcA0 = utcA0;
- msg->payload.AID_HUI.utcA1 = utcA1;
- msg->payload.AID_HUI.utcTOW = utcTOW;
- msg->payload.AID_HUI.utcWNT = utcWNT;
- msg->payload.AID_HUI.utcLS = utcLS;
- msg->payload.AID_HUI.utcWNF = utcWNF;
- msg->payload.AID_HUI.utcDN = utcDN;
- msg->payload.AID_HUI.utcLSF = utcLSF;
- msg->payload.AID_HUI.utcSpare = utcSpare;
- msg->payload.AID_HUI.klobA0 = klobA0;
- msg->payload.AID_HUI.klobA1 = klobA1;
- msg->payload.AID_HUI.klobA2 = klobA2;
- msg->payload.AID_HUI.klobA3 = klobA3;
- msg->payload.AID_HUI.klobA0 = klobB0;
- msg->payload.AID_HUI.klobA1 = klobB1;
- msg->payload.AID_HUI.klobA2 = klobB2;
- msg->payload.AID_HUI.klobA3 = klobB3;
- msg->payload.AID_HUI.flags = flags;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_INI_POLL()
- {
- int payloadSize = sizeof(struct UBXAID_INI_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_INI);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getAID_INI(UBXI1_t ecefXOrLat,
- UBXI1_t ecefYOrLat,
- UBXI1_t ecefZOrLat,
- UBXU1_t posAcc,
- UBXI1_t tmCfg,
- UBXU2_t wnoOrDate,
- UBXU4_t towOrDate,
- UBXI4_t towNs,
- UBXU4_t tAccMS,
- UBXU4_t tAccNS,
- UBXI4_t clkDOrFreq,
- UBXU4_t clkDAccOrFreqAcc,
- UBXX4_t flags)
- {
- int payloadSize = sizeof(struct UBXAID_INI);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassAID, UBXMsgIdAID_INI);
- msg->payload.AID_INI.ecefXOrLat = ecefXOrLat;
- msg->payload.AID_INI.ecefYOrLat = ecefYOrLat;
- msg->payload.AID_INI.ecefZOrLat = ecefZOrLat;
- msg->payload.AID_INI.posAcc = posAcc;
- msg->payload.AID_INI.tmCfg = tmCfg;
- msg->payload.AID_INI.wnoOrDate = wnoOrDate;
- msg->payload.AID_INI.towOrDate = towOrDate;
- msg->payload.AID_INI.towNs = towNs;
- msg->payload.AID_INI.tAccMS = tAccMS;
- msg->payload.AID_INI.tAccNS = tAccNS;
- msg->payload.AID_INI.clkDOrFreq = clkDOrFreq;
- msg->payload.AID_INI.clkDAccOrFreqAcc = clkDAccOrFreqAcc;
- msg->payload.AID_INI.flags = flags;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_ANT(){}
- struct UBXMsgBuffer getCFG_ANT_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_ANT_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_ANT);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_CFG(){}
- struct UBXMsgBuffer getCFG_CFG_OPT(){}
- struct UBXMsgBuffer getCFG_DAT_IN(){}
- struct UBXMsgBuffer getCFG_DAT_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_DAT_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_DAT);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_GNSS_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_GNSS_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_GNSS);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_GNSS(){}
- struct UBXMsgBuffer getCFG_INF_POLL(UBXU1_t protocolId)
- {
- int payloadSize = sizeof(struct UBXCFG_INF_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_INF);
- msg->payload.CFG_INF_POLL.protocolId = protocolId;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_INF(){}
- struct UBXMsgBuffer getCFG_ITFM_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_ITFM_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_ITFM);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_ITFM(){}
- struct UBXMsgBuffer getCFG_LOGFILTER_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_LOGFILTER_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_LOGFILTER);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_LOGFILTER(){}
- struct UBXMsgBuffer getCFG_NAV5_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_NAV5_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_NAV5);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_NAV5(){}
- struct UBXMsgBuffer getCFG_NAVX5_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_NAVX5_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_NAVX5);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_NAVX5(){}
- struct UBXMsgBuffer getCFG_NMEA_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_NMEA_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_NMEA);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_NMEA(){}
- struct UBXMsgBuffer getCFG_NVS(){}
- struct UBXMsgBuffer getCFG_PM2_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_PM2_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_PM2);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_PM2(){}
- struct UBXMsgBuffer getCFG_PRT_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_PRT_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_PRT);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_PRT_POLL_OPT(UBXU1_t portId)
- {
- int payloadSize = sizeof(struct UBXCFG_PRT_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_PRT);
- msg->payload.CFG_PRT_POLL_OPT.portId = portId;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_PRT(){}
- struct UBXMsgBuffer getCFG_RATE_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_RATE_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_RATE);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_RATE(){}
- struct UBXMsgBuffer getCFG_RINV(){}
- struct UBXMsgBuffer getCFG_RINV_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_RINV_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_RINV);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_RXM(){}
- struct UBXMsgBuffer getCFG_RXM_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_RXM_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_RXM);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_SBAS(){}
- struct UBXMsgBuffer getCFG_SBAS_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_SBAS_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_SBAS);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_TP5_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_TP5_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_TP5);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_USB_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_USB_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_USB);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getCFG_USB(){}
- struct UBXMsgBuffer getLOG_CREATE(){}
- struct UBXMsgBuffer getLOG_ERASE(){}
- struct UBXMsgBuffer getLOG_FINDTIME_IN(){}
- struct UBXMsgBuffer getLOG_INFO_POLL()
- {
- int payloadSize = sizeof(struct UBXCFG_INF_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassCFG, UBXMsgIdCFG_INF);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getLOG_RETRIEVE(){}
- struct UBXMsgBuffer getLOG_STRING(){}
- struct UBXMsgBuffer getMON_VER_POLL()
- {
- int payloadSize = sizeof(struct UBXMON_VER_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassMON, UBXMsgIdMON_VER);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getRXM_ALM_POLL()
- {
- int payloadSize = sizeof(struct UBXRXM_ALM_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassRXM, UBXMsgIdRXM_ALM);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getRXM_ALM_POLL_OPT(UBXU1_t svid)
- {
- int payloadSize = sizeof(struct UBXRXM_ALM_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassRXM, UBXMsgIdRXM_ALM);
- msg->payload.RXM_ALM_POLL_OPT.svid = svid;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getRXM_EPH_POLL()
- {
- int payloadSize = sizeof(struct UBXRXM_EPH_POLL);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassRXM, UBXMsgIdRXM_EPH);
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getRXM_EPH_POLL_OPT(UBXU1_t svid)
- {
- int payloadSize = sizeof(struct UBXRXM_EPH_POLL_OPT);
- struct UBXMsgBuffer buffer = createBuffer(payloadSize);
- struct UBXMsg* msg = (struct UBXMsg*)buffer.data;
- initMsg(msg, payloadSize, UBXMsgClassRXM, UBXMsgIdRXM_ALM);
- msg->payload.RXM_ALM_POLL_OPT.svid = svid;
- completeMsg(&buffer, payloadSize);
- return buffer;
- }
- struct UBXMsgBuffer getRXM_PMREQ(){}
- struct UBXMsgBuffer getRXM_SVSI(){}
|