[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DDL-ML] Release Candidate verfügbar



Ich tüftle noch etwas am reinen NMRA Signal herum. Hier geht es um

      case QNBLOCOPKT:
      case QNBACCPKT:
         if (setSerialMode(COM_DEVICE,SDM_NMRA)<0) return;
         write(COM_DEVICE,packet,packet_size);
         waitUARTempty(); 
         nanosleep(&rqtp_btw38K, &rmtp);   
         write(COM_DEVICE,packet,packet_size);
         // waitUARTempty();
         break;

in send_packet(). Ich bin der Meinung, daß für das NMRA signal der
waitUARTempty() am Anfang von send_packet() reicht und daß die
waitUARTempty() und nanosleep hier nicht am richtigen Platz sind.

Aus ein paar gewechselten Emails mit Torsten:

vogt> AFAIR habe ich es "ohne" probiert und es ging nicht.
haba> Komisch. Mit welchen Flags wurde erddcd gestartet?
vogt> M und N on.

Verstehe ich das richtig: Der nanosleep() und waitUARTempty() zwischen
zwei NMRA Paketen wird für die Märklindecoder gebraucht? Meine NMRA
Decoderchen brauchen den nicht. Die Frage ist: Wo brauchen die
Märklindecoder eigentlich die Pausen? D.h wie sieht eigentlich die
erzeugte Paketkette aus (inkl Pausen) und wie sollte sie aussehen.
Wenn das nicht bekannt ist werde ich mich an etwas Printf-debugging
machen.

Dann habe ich auch noch einen wahrscheinlich nicht beabsichtigten Effekt
entdeckt. Wenn man beim Übersetzen von nmra.c _DEBUG_ definiert, so
bekommt man die Protokollgenerierungsrutinen Version 1 und nicht wie
sonst Version 3. Siehe nmra.c:557.

Schöne Weihnachten, allerseits, hier gibt es dieses Jahr weiße
Weihnachten! Das ist durchaus nicht selbstverständlich, da es auch
erst im Januar schneien kann. Heute aber 10cm Schnee und -14°C
Höchsttemperatur.

Harald.