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