Forum: Mikrocontroller und Digitale Elektronik Atmel LwMesh Codeverständnis (WSN)


von Spice (Gast)


Lesenswert?

Hallo Zusammen,

ich versuche den Atmel LW Mesh Stack ans laufen zu bekommen und zu 
verstehen was da passiert, aber eine Stelle macht mich stutzig, 
vielleicht kann mir jemand weiterhelfen.

1
/*************************************************************************//**
2
*****************************************************************************/
3
static void appSendMessage(uint8_t *data, uint8_t size)
4
{
5
  uint8_t cs = 0;
6
7
  HAL_UartWriteByte(0x10);
8
  HAL_UartWriteByte(0x02);
9
10
  for (uint8_t i = 0; i < size; i++)
11
  {
12
    if (data[i] == 0x10)
13
    {
14
      HAL_UartWriteByte(0x10);
15
      cs += 0x10;
16
    }
17
    HAL_UartWriteByte(data[i]);
18
    cs += data[i];
19
  }
20
21
  HAL_UartWriteByte(0x10);
22
  HAL_UartWriteByte(0x03);
23
  cs += 0x10 + 0x02 + 0x10 + 0x03;
24
25
  HAL_UartWriteByte(cs);
26
}
27
28
/*************************************************************************//**
29
*****************************************************************************/

die Frage wäre ob ichs richtig sehe, dass die 0x10 zweimal gesendet 
wird, wenn es im Array vorkommt? Und warum macht man das?
cs ist die Checksumme, wie auch immer da die Checksumme berechnet wird. 
XOR ists glaub ich nicht?! Ich versuche zu verstehen, warum die 0x10 
über UART zweimal gesendet wird. Ist das, damit der Parser auf der PC 
Seite die 0x10 auch als 0x10 deutet? Wäre plausibel, da 0x10 auch ein 
Synczeichen zu sein scheint?! Kann das jemand bestätigen?

Besten Dank
Gruß Spice

von Julian (Gast)


Lesenswert?

Hallo Spice,
wenn es um den Funkstack geht, solltest du dich bei AVR-Freaks 
umschauen.
Hier gibt es nur ein/zwei Leute, die sich damit auskennen.
Bei AVR-Freaks gibt es wesentlich mehr, die sich damit befassen und auch 
ziemlich fit sind (u.a. Alexru)
Schau dort mal vorbei

Gruß Julian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.