Do czego służy asterix (*) w Gcode?

10

Podczas monitorowania niskiego poziomu do drukarki wysyłana jest następująca sekwencja:

N0 M106*36 
N1 G28*18 
N2 M107*39

Ta sekwencja tylko włącza wentylator, umieszcza drukarkę w domu, a następnie wyłącza wentylator.

Pytanie: Do czego służy gwiazdka / gwiazda / (*) i dwie kolejne cyfry w każdej linii?

Mtl Dev
źródło
1
* gwiazdka - Asterix to postać z serii kreskówek.
Andrew Morton,
1
@AndrewMorton Więc to sprawiłoby, że wtedy gcode Rzymianie - a Asterix byłby ich sumą kontrolną, powstrzymując korupcję w jego okolicy?
Mtl Dev
Hmmm ... może. Rzymianie zbudowali wiele rzeczy, podobnie jak drukarka 3D.
Andrew Morton,

Odpowiedzi:

9

To jest suma kontrolna. Jest dodawany przez oprogramowanie hosta do kodu G, aby umożliwić podstawową weryfikację przez oprogramowanie układowe, czy kod G został przesłany bez zmian. Nie zmienia znaczenia kodu G, a to, co faktycznie reprezentuje twoja sekwencja, jest po prostu M106, G28, M107. Są N0,N1,N2,...to numery linii, a kombinacja numerów linii i sum kontrolnych służy do żądania ponownego wysłania wszystkich linii, które zostały uszkodzone podczas transmisji.

Tom van der Zanden
źródło
Czy znasz algorytm sumy kontrolnej tutaj zastosowany?
Carl Witthoft,
3
W Marlin wszystkie bajty dla poszczególnych znaków są razem edytowane XOR, a wynik powinien być taki sam jak suma kontrolna.
Tom van der Zanden,
1
Tylko XOR:byte checksum = 0; byte count = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];
Mtl Dev