[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
DD(F), Re: [DDL-ML] ACK-Schaltung bei NMRA-Programmierung
In article <ifado.list.ddl/3A6F02C8.E2D9B86E@ecselling.de>,
Torsten Vogt <ddl-mailing-list@der-moba.de> wrote:
>
>Aha. Ich habe mir ehrlich gesagt nicht allzuviel Gedanken drueber
>gemacht, fuer was die Leitungen des COM-Ports eigentlich gedacht
>sind und einfach die Loesung implementiert, die ich verstanden habe.
Also liege ich mit meiner Vermutung, daß es zufällig so ist, richtig.
Ich habe also für meine Zwecke einen 1-Transistor-Inverter angehängt,
und: es klappt jetzt einwandfrei (zusammen mit Patches für den FreeBSD sio
handler, die ich dort als Bug-Report eingereicht habe.)
Ich würde daher folgende Version für erddcd vorschlagen:
#ifdef __FreeBSD__
int scanACK() {
int result, arg;
result = ioctl(COM_DEVICE, TIOCMGET, &arg);
if ((result>=0)&&((arg&TIOCM_RI))) return 1;
return 0;
}
int waitUARTempty_scanACK() {
ioctl(COM_DEVICE, TIOCDRAIN );
return scanACK();
}
#else
...
#endif
Evtl. besser wäre es, eine Option für die Polarität des RI-Signals
einzuführen. Weitere Patches für die Anpassung an FreeBSD würde ich gerne
noch angeben. Soll ich das gegen erddcd-1.3.3 machen, oder kommt in Kürze
noch eine neue Version?
--
Dipl.-Math. Wilhelm Bernhard Kloke
Institut fuer Arbeitsphysiologie an der Universitaet Dortmund
Ardeystrasse 67, D-44139 Dortmund, Tel. 0231-1084-257