diff --git a/EgtsOutputCommands.c b/EgtsOutputCommands.c index 18a6ac9..f19b88e 100644 --- a/EgtsOutputCommands.c +++ b/EgtsOutputCommands.c @@ -22,15 +22,18 @@ //начало ---------------------------------Аутентификация--------------------------------------------------------------- //начало ---------------------------------Аутентификация--------------------------------------------------------------- +char imei[] = "860384060946040"; + uint16_t vEgtsPackAuth(uint8_t *out, tEgtsIdentityDataArgs *args, uint16_t step) { uint16_t offset = 0; - uint16_t TermIdentityBS = 256;//1400; + uint16_t TermIdentityBS = 1400; uint8_t TermIdentityFlags = 0b01000010; ADD_TO_RESULT(args->TerminalID, 4); ADD_TO_RESULT(TermIdentityFlags, 1); - ADD_TO_RESULT((*args->IMEI), args->IMEI_len); + //ADD_TO_RESULT((*args->IMEI), args->IMEI_len); + ADD_TO_RESULT((imei), 15); ADD_TO_RESULT(TermIdentityBS, 2); return offset; @@ -64,12 +67,26 @@ uint16_t vEgtsPackModuleData(uint8_t *out, tEgtsIdentityModuleDataArgs *args, ui uint8_t Delimiter = 0; + char TAG_VIN[] = "VIN:"; + char TAG_ICCID[] = "ICCID:"; + char TAG_EICCID[] = "EICCID:"; + ADD_TO_RESULT(MT, 1); ADD_TO_RESULT(VID, 4); ADD_TO_RESULT(FWV, 2); ADD_TO_RESULT(SWV, 2); ADD_TO_RESULT(MD, 1); ADD_TO_RESULT(ST, 1); + ADD_TO_RESULT(args->deviceStorage->nvm.device.serialNumber.value.data, args->deviceStorage->nvm.device.serialNumber.value.length); + ADD_TO_RESULT(Delimiter, 1); + ADD_TO_RESULT(TAG_VIN, sizeof(TAG_VIN) - 1); + ADD_TO_RESULT(args->deviceStorage->nvm.gost.VIN.data, args->deviceStorage->nvm.gost.VIN.length); + ADD_TO_RESULT(Delimiter, 1); + ADD_TO_RESULT(TAG_ICCID, sizeof(TAG_ICCID) - 1); + ADD_TO_RESULT(args->deviceStorage->nvm.device.ccid.data, args->deviceStorage->nvm.device.ccid.length); + ADD_TO_RESULT(Delimiter, 1); + ADD_TO_RESULT(TAG_EICCID, sizeof(TAG_EICCID) - 1); + ADD_TO_RESULT(args->deviceStorage->nvm.device.ccid.data, args->deviceStorage->nvm.device.ccid.length); ADD_TO_RESULT(Delimiter, 1); return offset; @@ -99,6 +116,10 @@ bool EgtsProcessing_SendAuth(tEgtsProcessing *env) { env->egtsIdentityDataArgs.IMEI_len = IMEI_len; env->egtsIdentityDataArgs.TerminalID = env->deviceTeledataStorageData->telematica.EGTS_UNIT_ID; + + env->egtsModuleDataArgs.deviceStorage = env->store; + + ++env->egtsPacketId; env->egtsIdentityAdditionalData.idPacked = env->egtsPacketId; env->egtsIdentityAdditionalData.isReceivedResponse = false; diff --git a/EgtsProcessing.c b/EgtsProcessing.c index 3c74632..b44f18d 100644 --- a/EgtsProcessing.c +++ b/EgtsProcessing.c @@ -198,7 +198,7 @@ void EgtsProcessing_Start(tEgtsProcessing *env) { ThreadBlock_Start(env->T_processing_teledata, env, EgtsProcessing_TransmitterTaskTeledata); ThreadBlock_Start(env->T_processing_main, env, EgtsProcessing_TransmitterTaskMain); ThreadBlock_Start(env->T_listener, env, EgtsProcessing_ListenerTask); -// ThreadBlock_Start(env->T_processing_urc, env, Processing_URC); + ThreadBlock_Start(env->T_processing_urc, env, Processing_URC); } void EgtsProcessingCloseConnection(tEgtsProcessing *env) { @@ -417,7 +417,7 @@ bool NetworkRequire(tEgtsProcessing *env) { bool Gsm_ActivatePdp(tEgtsProcessing *env) { AtCommandResult res = AT_ERROR; - if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) { + if (osMutexAcquire(env->gsm->gsmAt.access, 5000) == osOK) { res = AtGsmTelitLe910_PdpActivate(&env->gsm->gsmAt, 1); @@ -430,7 +430,7 @@ bool Gsm_ActivatePdp(tEgtsProcessing *env) { bool Gsm_ActivateApn(tEgtsProcessing *env) { AtCommandResult res = AT_ERROR; - if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) { + if (osMutexAcquire(env->gsm->gsmAt.access, 5000) == osOK) { res = AtGsmTelitLe910_DefinePdpContext(&env->gsm->gsmAt, 1, AtGsmTelitLe910_PdpType_IP, env->deviceTeledataStorageData->telematica.EGTS_GPRS_APN.data, @@ -446,7 +446,7 @@ bool Gsm_ActivateApn(tEgtsProcessing *env) { bool Gsm_SetProfileERA(tEgtsProcessing *env) { AtCommandResult res = AT_ERROR; - if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) { + if (osMutexAcquire(env->gsm->gsmAt.access, 5000) == osOK) { AtGsmTelitLe910_SimProfileSelect(&env->gsm->gsmAt, &env->store->nvm.deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_ERA); @@ -465,7 +465,7 @@ bool Gsm_SetProfileERA(tEgtsProcessing *env) { bool Gsm_SetProfileINTERNET(tEgtsProcessing *env) { AtCommandResult res = AT_ERROR; - if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) { + if (osMutexAcquire(env->gsm->gsmAt.access, 5000) == osOK) { AtGsmTelitLe910_SimProfileSelect(&env->gsm->gsmAt, &env->store->nvm.deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_INTERNET); diff --git a/EgtsProcessing.h b/EgtsProcessing.h index c7083bc..bb045fa 100644 --- a/EgtsProcessing.h +++ b/EgtsProcessing.h @@ -193,6 +193,7 @@ typedef struct { } tEgtsIdentityDataArgs; typedef struct { + tDeviceStorage *deviceStorage; } tEgtsIdentityModuleDataArgs; typedef struct { @@ -340,7 +341,7 @@ typedef struct { tStaticThreadBlock(512) T_processing_main; tStaticThreadBlock(512) T_listener; - tStaticThreadBlock(256) T_processing_urc; + tStaticThreadBlock(768) T_processing_urc; // uint8_t wb[1024 * 10]; uint8_t wb[1024];