prepare to change integer to string payload type
This commit is contained in:
parent
b861881061
commit
32c8a42b89
|
|
@ -58,6 +58,7 @@ typedef enum
|
||||||
SYS_ERROR_PARSE_VARIABLES,
|
SYS_ERROR_PARSE_VARIABLES,
|
||||||
|
|
||||||
SYS_ERROR_NO_MEMORY = 300,
|
SYS_ERROR_NO_MEMORY = 300,
|
||||||
|
SYS_ERROR_HANDLER_NOT_SET,
|
||||||
SYS_ERROR_UNKNOWN,
|
SYS_ERROR_UNKNOWN,
|
||||||
|
|
||||||
} sys_error_code;
|
} sys_error_code;
|
||||||
|
|
@ -94,6 +95,7 @@ typedef struct
|
||||||
time_t time;
|
time_t time;
|
||||||
int msgType;
|
int msgType;
|
||||||
int payloadType;
|
int payloadType;
|
||||||
|
char payloadTypeStr[16];
|
||||||
void *payload;
|
void *payload;
|
||||||
unsigned char sha256[32];
|
unsigned char sha256[32];
|
||||||
} parsedData;
|
} parsedData;
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,20 @@ void regCustomSaveConf(void (*custom_saveconf)(void))
|
||||||
CustomSaveConf = custom_saveconf;
|
CustomSaveConf = custom_saveconf;
|
||||||
}
|
}
|
||||||
|
|
||||||
static sys_error_code PayloadType_1_Handler(data_message_t *MSG)
|
static sys_error_code PayloadType1000Handler(data_message_t *MSG)
|
||||||
|
{
|
||||||
|
return SYS_ERROR_HANDLER_NOT_SET;
|
||||||
|
}
|
||||||
|
static sys_error_code PayloadType1001Handler(data_message_t *MSG)
|
||||||
|
{
|
||||||
|
return SYS_ERROR_HANDLER_NOT_SET;
|
||||||
|
}
|
||||||
|
static sys_error_code PayloadType1002Handler(data_message_t *MSG)
|
||||||
|
{
|
||||||
|
return SYS_ERROR_HANDLER_NOT_SET;
|
||||||
|
}
|
||||||
|
|
||||||
|
static sys_error_code PayloadDefaultTypeHandler(data_message_t *MSG)
|
||||||
{
|
{
|
||||||
struct jReadElement result;
|
struct jReadElement result;
|
||||||
const char *err_br;
|
const char *err_br;
|
||||||
|
|
@ -245,7 +258,6 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
||||||
else
|
else
|
||||||
return SYS_ERROR_PARSE_MESSAGEID;
|
return SYS_ERROR_PARSE_MESSAGEID;
|
||||||
|
|
||||||
|
|
||||||
jRead(MSG->inputDataBuffer, "{'data'{'srcid'", &result);
|
jRead(MSG->inputDataBuffer, "{'data'{'srcid'", &result);
|
||||||
if (result.elements == 1)
|
if (result.elements == 1)
|
||||||
{
|
{
|
||||||
|
|
@ -254,7 +266,6 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
||||||
else
|
else
|
||||||
strcpy(MSG->parsedData.srcID, "FFFFFFFF");
|
strcpy(MSG->parsedData.srcID, "FFFFFFFF");
|
||||||
|
|
||||||
|
|
||||||
jRead(MSG->inputDataBuffer, "{'data'{'dstid'", &result);
|
jRead(MSG->inputDataBuffer, "{'data'{'dstid'", &result);
|
||||||
if (result.elements == 1)
|
if (result.elements == 1)
|
||||||
{
|
{
|
||||||
|
|
@ -263,7 +274,6 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
||||||
else
|
else
|
||||||
strcpy(MSG->parsedData.dstID, "FFFFFFFF");
|
strcpy(MSG->parsedData.dstID, "FFFFFFFF");
|
||||||
|
|
||||||
|
|
||||||
//Extract 'msgtype' or throw exception
|
//Extract 'msgtype' or throw exception
|
||||||
jRead(MSG->inputDataBuffer, "{'data'{'msgtype'", &result);
|
jRead(MSG->inputDataBuffer, "{'data'{'msgtype'", &result);
|
||||||
if (result.elements == 1)
|
if (result.elements == 1)
|
||||||
|
|
@ -282,26 +292,39 @@ static sys_error_code DataHeaderParser(data_message_t *MSG)
|
||||||
if (result.elements == 1)
|
if (result.elements == 1)
|
||||||
{
|
{
|
||||||
MSG->parsedData.payloadType = atoi((char*) result.pValue);
|
MSG->parsedData.payloadType = atoi((char*) result.pValue);
|
||||||
if (MSG->parsedData.payloadType < 1 && MSG->parsedData.payloadType > 100)
|
jRead_string(MSG->inputDataBuffer, "{'data'{'payloadtype'", MSG->parsedData.payloadTypeStr, 16, 0);
|
||||||
return SYS_ERROR_PARSE_PAYLOADTYPE;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return SYS_ERROR_PARSE_PAYLOADTYPE;
|
return SYS_ERROR_PARSE_PAYLOADTYPE;
|
||||||
|
|
||||||
|
sys_error_code err = SYS_ERROR_HANDLER_NOT_SET;
|
||||||
|
|
||||||
|
//ToDo move payload type from integer to string
|
||||||
switch (MSG->parsedData.payloadType)
|
switch (MSG->parsedData.payloadType)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1000:
|
||||||
return PayloadType_1_Handler(MSG);
|
err = PayloadType1000Handler(MSG);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case 1001:
|
||||||
if (CustomPayloadTypeHandler)
|
err = PayloadType1001Handler(MSG);
|
||||||
CustomPayloadTypeHandler(MSG);
|
break;
|
||||||
else
|
|
||||||
return SYS_ERROR_PARSE_PAYLOADTYPE;
|
case 1002:
|
||||||
}
|
err = PayloadType1002Handler(MSG);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (err != SYS_ERROR_HANDLER_NOT_SET)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
if (CustomPayloadTypeHandler)
|
||||||
|
err = CustomPayloadTypeHandler(MSG);
|
||||||
|
|
||||||
|
if (err != SYS_ERROR_HANDLER_NOT_SET)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
return PayloadDefaultTypeHandler(MSG);
|
||||||
|
|
||||||
return SYS_ERROR_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t ServiceDataHandler(data_message_t *MSG)
|
esp_err_t ServiceDataHandler(data_message_t *MSG)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user