On Wed, 20 Nov 2013 23:36:13 +0100
Reinhard Wilzeck <reinh...@wilzeck.de> wrote:
> erfreulicherweise kann man nun für das Protokoll D0 parity und baud rate 
> über die vzlogger.conf konfigurieren.
> (Nötig z.B. für Landis+Gyr E350 EDL21 .)
>       "protocol" : "d0", 
>      "parity": "7e1",
>      "baudrate":300,
> Leider hat sich ein Fehler beim Setzen der einzelnen bits eingeschlichen.
> (Ich weiss nicht, ob es schon jemand gesehen hat)
> Dadurch wird unbeabsichtigt u.a. CRTSCTS gesetzt.
> Damit sendet Udos USB IR Schreiblesekopf nicht.  (macht er richtig, denn 
> ohne den vzlogger arbeitet er einwandfrei.)
> 
> falsch ist z.B.
>      case parity_7e1:
>          tio.c_cflag |= ~ PARENB;
> Damit werden alle bits gesetzt (außer PARENB)
> Richtig ist:
>      switch(_parity) {
>      case parity_8n1:
>          tio.c_cflag &= ~ PARENB;

das koennte die probleme erklaeren die andere user schon mit porteinstellungen
bei vzlogger hatten...
(finde den thread gerade nicht)

> An dem Acknowledge, das der Zähler braucht arbeite ich noch. Außerdem 
> kann man die Schnittstelle auch mit einem Timeout versehen, so das der
> read nicht für immer hängen bleibt.
> /* Set return rules for read to prevent endless waiting*/
>       tio.c_cc[VTIME]    = 50;     /* inter-character timer 50*0.1s*/
>       tio.c_cc[VMIN]     = 0;     /* VTIME is timeout counter */
>
> Der praktische Beweis der Funktion steht aber noch aus.

ich kann das leider mangels zaehlern wenig testen.
schickst du uns einen patch, sobald du eine version hast die laeuft?
danke!

> Gruß
>      Reinhard

- Thorben

Antwort per Email an