modiallen wrote on Sunday, September 30, 2012:
Hi everyone,
i have the following problem:
i dont receive the same data with xQueueReceive, that i sent it with the xQueueSend.
here is the code, maybe someone can help me solving the problem:
void privateMenuCreateRefreshEvent(unsigned char pattern, unsigned char field, unsigned int sensor, unsigned char value)
{
struct Display_Message SendMessage;
struct DataFieldUpdate *pointer = malloc(sizeof(struct DataFieldUpdate));
pointer->fieldNumber = 0;
pointer->patternType = 0;
pointer->valueID = 0;
pointer->valuetype = 0;
SendMessage.DataFieldObject = pointer;
SendMessage.Msg_Type = ProtocolData_Object;
xQueueSend(xDisplayQueue,&SendMessage,0);
free(pointer);
}
and the receiving task:
void dplTask(void *pvParameters)
{
for (;
{
struct Display_Message *ReceivedMessage = malloc(sizeof(struct Display_Message));;
xQueueReceive(xDisplayQueue,ReceivedMessage,portMAX_DELAY);
if ( ReceivedMessage->Msg_Type == ProtocolData_Object )
{
dplUpdateDisplayExecuteFunction(ReceivedMessage->DataFieldObject);
free(ReceivedMessage);
}
}
}
the ReceivedMessage->DataFieldObject dont have the same values that are sent in the example above.
what could be the problem here.
Best Regards.