RS232 ansprechen (mal was anderes ;-)

Per Programm Hardware ansprechen

RS232 ansprechen (mal was anderes ;-)

Beitragvon roemi » Di 21. Aug 2007, 19:27

Ich verwende zum steuern der Modellbahn von junior unter anderem ein Programm Namens "dtcltiny".

Dieses sendet Befehle an ein Progi namens "SRCP bzw srcpd". Hier wird die Verbindung zur eigentlichen Schnittstelle realisiert und die Befehle umgesetzt.

Ausschnitt hieraus als Beispiel (Ansprache Schnittstelle):

void CommandPort::set(QString args)
{
QString *command = new QString;
command->sprintf("SET %d ",iBus);
command->append(args);
command->append("\n");
if (socketisopen)
::write(sockDescr, *command, command->length());
}


und

void CommandPort::reset()
{
if (socketisopen)
::write(sockDescr, "RESET 0 SERVER\n", sizeof("RESET 0 SERVER\n"));
}


und

QString *CommandPort::init( QString args )
{
QString *command = new QString;
command->sprintf("INIT %d ",iBus);
command->append(args);
command->append("\n");
if (socketisopen)
::write(sockDescr, *command, command->length());
QString *message = readLine(); // get the reply
return message;
}


Das sagt erstmal nicht viel aus.

Aber auf Gambas umgesetzt sieht es so aus

Der Init- Befehl (der funktioniert auch in gambas)

Code: Alles auswählen
  v_text = "SET PROTOCOL SRCP 0.8.2\n"
  v_text = v_text & "SET CONNECTIONMODE SRCP COMMAND\n"
  v_text = v_text & "GO"
  send_order(v_text)
  WAIT 1
 
  v_text = "INIT GL 1\n"
  v_text = v_text & "GO"
  send_order(v_text)


das gleiche gilt auch für den Fahrbefehl der so in einer Textarea steht

INIT 1 GL 2 P
SET 1 GL 2 0 100 180 0 0 0 0 0
GO


und mit
Code: Alles auswählen
  IF MySock.Status = Net.Connected THEN
    WRITE #MySock, TextArea2.Text, Len(TextArea2.Text)
  END IF


abgeschickt wird.

Das klappt alles.

Wenn ich aber
zb.

INIT 1 POWER
bzw.
SET 1 POWER ON


einsetze funzt von Gambas aus nichts.

Und ich verstehe es nicht! Warum funktioniert in Gambas das eine und das andere nicht. Beides funktioniert aber problemlos von andere Programmen aus.

Hat jemand meine Ausführungen verstanden?
Braucht Ihr mehr Info's?

Das Einfahrprogramm funktioniert z.B. tadellos solange ich die Zentrale per Hand ein- und ausschalten kann.
Römi (seit 1989 bekennender Bergradfahrer und professioneller Biertrinker)
http://www.roemi.de
roemi
Site Admin
 
Beiträge: 389
Registriert: So 11. Dez 2005, 20:05
Wohnort: Hanau / Germany

Zurück zu Hardware

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron