Brauche Hilfe zur seriellen Ausgabe auf den PC

Hallo zusammen, ich brauche mal Hilfe, um eine Ausgabefunktion zu konstruieren.
Also folgendes ich habe einen Microkontroller (Coordinator) und dazu 4 weitere sogenannter Sensor Boards.
Jedes dieser Dinger hat 3 Sensoren (Licht, Temp, Luftfeuchtigkeit). diese werden alle über die Funktion vProcessIncomingData gesteuert.
Wobei soweit ich dann gesehen habe die u8Node für die einzelnen SensorBoards sind und die u8Count für die jeweiligen Sensoren.
Und wenn ich das richtig verstanden habe speichert die Funktion psNodeData->asNodeElementData[u8Count].u8NowValue die genauen Werte.
Ich habe jetzt schon eine Ausgabefuktion geschrieben die auch so weit funktionert mit dem Aufruf und alles: vUtils_DisplayMsg("The value is: ", u32Value);
Die ist für die Ausgabe an dem seriellen Port gedacht. Und mein Problem ist jetzt wie bekomme ich das hin, dass die Funktion mir die
richtigen Werte ausgibt für die einzelnen Boards irgendwie hänge ich da gerade oder habe nen Brett vor dem Kopf :smile:

Hat einer von euch einen Tip für mich?

Vielen Dank!

Hier die Funktion:
****************************************************************************
*
* NAME: vProcessIncomingData
*
* DESCRIPTION:
* Deals with any incoming MCPS data events. If the event is an indication
* from a device with a short address matching a demo endpoint, the data in
* the payload is stored for display the next time that the LCD is updated.
*
* PARAMETERS: Name RW Usage
* psMcpsInd R Pointer to structure containing MCPS event
*
* RETURNS:
* void
*
****************************************************************************/
PRIVATE void vProcessIncomingData(MAC_McpsDcfmInd_s *psMcpsInd)
{
MAC_RxFrameData_s *psFrame;
MAC_Addr_s *psAddr;
tsNodeData *psNodeData;
uint16 u16NodeAddr;
uint8 u8Node;
uint8 u8Count;

psFrame = &psMcpsInd->uParam.sIndData.sFrame;

/* Check that MCPS frame is a valid sensor one */
if ((psMcpsInd->u8Type != MAC_MCPS_IND_DATA)
|| (psFrame->u8SduLength != 8)
|| (psFrame->au8Sdu[0] != DEMO_ENDPOINT_IDENTIFIER))
{
return;
}

/* Use address to determine node */
psAddr = &psFrame->sSrcAddr;
if (psAddr->u8AddrMode != 2)
{
return;
}

u16NodeAddr = psAddr->uAddr.u16Short;
if ((u16NodeAddr = (DEMO_ENDPOINT_ADDR_BASE + DEMO_ENDPOINTS)))
{
return;
}

/* Store data for node */
u8Node = (uint8)(u16NodeAddr - DEMO_ENDPOINT_ADDR_BASE);
psNodeData = &sDemoData.sNode.asNodeData[u8Node];

psNodeData->u8FramesMissed = 0;
psNodeData->u8SwitchOn = psFrame->au8Sdu[2];
vLedControl(u8Node, psNodeData->u8SwitchOn);

for (u8Count = 0; u8Count asNodeElementData[u8Count].u8NowValue = psFrame->au8Sdu[u8Count + 3];
}

psNodeData->u8Rssi = psFrame->u8LinkQuality;
}

Hallo,

da sollte man schon mal wissen, was du eigentlich wohin ausgeben willst - aus der Namensgebung vUtils_DisplayMsg könnte man zwar schliessen, dass irgendwo ein Display existiert, darüber steht aber nirgends was.

Ganz grundsätzlich: die Aufgabenstellung logisch und verständlich zu formulieren, ist eine unverzichtbare Voraussetzung zum Programmieren.

Gruss Reinhard

Hallo zusammen, ich brauche mal Hilfe, um eine Ausgabefunktion
zu konstruieren.
Also folgendes ich habe einen Microkontroller (Coordinator)
und dazu 4 weitere sogenannter Sensor Boards.
Jedes dieser Dinger hat 3 Sensoren (Licht, Temp,
Luftfeuchtigkeit). diese werden alle über die Funktion
vProcessIncomingData gesteuert.
Wobei soweit ich dann gesehen habe die u8Node für die
einzelnen SensorBoards sind und die u8Count für die jeweiligen
Sensoren.
Und wenn ich das richtig verstanden habe speichert die
Funktion psNodeData->asNodeElementData[u8Count].u8NowValue
die genauen Werte.
Ich habe jetzt schon eine Ausgabefuktion geschrieben die auch
so weit funktionert mit dem Aufruf und alles:
vUtils_DisplayMsg("The value is: ", u32Value);
Die ist für die Ausgabe an dem seriellen Port gedacht. Und
mein Problem ist jetzt wie bekomme ich das hin, dass die
Funktion mir die
richtigen Werte ausgibt für die einzelnen Boards irgendwie
hänge ich da gerade oder habe nen Brett vor dem Kopf :smile:

Hat einer von euch einen Tip für mich?

Vielen Dank!

Hier die Funktion:…