136 lines
4.0 KiB
C
136 lines
4.0 KiB
C
//
|
||
// Created by zemon on 22.03.23.
|
||
//
|
||
|
||
#include <stdio.h>
|
||
#include <AsciiStringParsingUtils.h>
|
||
#include <AtGsmSms_Utils.h>
|
||
//#include "ArrayPrint.h"
|
||
#include "EraGlonassUveos.h"
|
||
|
||
void dummyGetNavData(void *env, EraGlonassUveosNavData *navData) {
|
||
|
||
}
|
||
|
||
void dummyGetTime(void *env, uint32_t *time) {
|
||
|
||
}
|
||
|
||
bool dummySendDataPdu(void *env, char *phone, uint8_t phoneSize, uint8_t *data, uint16_t dataSize) {
|
||
return true;
|
||
}
|
||
|
||
void dummyEraGlonassForceDumpCall(void *env) {
|
||
|
||
}
|
||
|
||
bool wcomp = true;
|
||
|
||
void printfLoggerGenericMethod(
|
||
void *env,
|
||
char *authorStatic,
|
||
uint8_t authorLen,
|
||
eLoggerLevel loglevel,
|
||
char *msg,
|
||
uint16_t msgLen,
|
||
bool complete
|
||
) {
|
||
if (wcomp) {
|
||
printf("[%.*s]\t\t", authorLen, authorStatic);
|
||
printf(" ");
|
||
}
|
||
printf("%.*s", msgLen, msg);
|
||
if (complete) {
|
||
printf("\n");
|
||
}
|
||
wcomp = complete;
|
||
}
|
||
|
||
|
||
////--------------------------------------- Примеры sms-pdu ------------------------------------------------------------
|
||
//пример полученый с ivs.aoglonass
|
||
char hexPdu[] = "07919714180010F3040B919714111190F7000432302231033221350100000B0028000A00013D1D000A00010A0000000404331A00500A000000A9010000000100420D0237393431383130303032357D82";
|
||
|
||
//пример из лога с полинома, послано с rohde-schwartz
|
||
// char hexPdu[] = "04804523F1040A808051563412000432404131303240270100000B001A000600015513000600400404331000500600000000000000000000022302302FAE";
|
||
// char hexPdu[] = "04804523F1040A8080515634120004324041318175402A0100000B001D000A00017516000A00400404331300500A0000000000000000000002230235353535852C";
|
||
////--------------------------------------------------------------------------------------------------------------------
|
||
|
||
////--------------------------------------- Примеры sms-pdu ------------------------------------------------------------
|
||
|
||
|
||
|
||
|
||
void test_pdu_and_egts_parser(tEraGlonassUveos *uveos) {
|
||
LoggerInfoStatic(uveos->logger, "тест", "")
|
||
LoggerInfoStatic(uveos->logger, "тест", "Тест парсера sms-pdu и егтс парсера")
|
||
|
||
char hexPduData[140];
|
||
uint16_t hexPduDataSize = 0;
|
||
|
||
uint8_t binaryData[255];
|
||
uint16_t binaryDataSize;
|
||
|
||
|
||
AtGsmSms_BildPduData((char *) hexPdu, sizeof(hexPdu) - 1, hexPduData, &hexPduDataSize);
|
||
|
||
binaryDataSize = (uint16_t) iAsciiStringParseHexBytes(binaryData, hexPduData, hexPduDataSize);
|
||
|
||
EraGlonassUveos_ProcessEgtsPacket(uveos, binaryData, binaryDataSize);
|
||
}
|
||
|
||
void test_egts_parser_only(tEraGlonassUveos *uveos) {
|
||
LoggerInfoStatic(uveos->logger, "тест", "")
|
||
LoggerInfoStatic(uveos->logger, "тест", "Тест только егтс парсера по готовому егтс пакету")
|
||
|
||
printf("TEST BEGIN\n");
|
||
//пример егтс пакета с коммандой (вырезан из sms-pdu)
|
||
BIN_FROM_HEX(binData, binDataLen, "0100000B001A000600015513000600400404331000500600000000000000000000022302302FAE");
|
||
|
||
// ArrayPrint_Hex(binData, binDataLen);
|
||
|
||
EraGlonassUveos_ProcessEgtsPacket(uveos, binData, binDataLen);
|
||
|
||
}
|
||
|
||
|
||
int main() {
|
||
//инициализация всего необходимого для УВЭОС
|
||
tEraGlonassMsdTable table;
|
||
tUveosGostSettings settings;
|
||
tEraGlonassUveos uveos;
|
||
tNavDataProvider navDataProvider = {
|
||
.getTime = dummyGetTime,
|
||
.getNavData = dummyGetNavData
|
||
};
|
||
tEraGlonassSmsProvider smsProvider = {
|
||
.sendDataPdu = dummySendDataPdu
|
||
};
|
||
|
||
tEraGlonassUveosDumperInterface dumper = {
|
||
.forceDump = dummyEraGlonassForceDumpCall
|
||
};
|
||
tLoggerInterface logger = {
|
||
.logging =printfLoggerGenericMethod
|
||
};
|
||
|
||
// EraGlonassUveos_Init(
|
||
// &uveos,
|
||
// &logger,
|
||
// &table,
|
||
// &settings,
|
||
// &dumper,
|
||
// &navDataProvider,
|
||
// NULL,
|
||
// &smsProvider,
|
||
// NULL,
|
||
// NULL,
|
||
// NULL,
|
||
// NULL,
|
||
// NULL
|
||
// );
|
||
|
||
test_pdu_and_egts_parser(&uveos);
|
||
|
||
test_egts_parser_only(&uveos);
|
||
} |