AtGsmSms_Utils/Tst/test_module.c

136 lines
4.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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);
}