Suche Software oder Programmierer

OP #1193847
Lesenswert?

Moin aus Hamburg,

ich bin auf der Suche nach einer Software für meine LED Laufschrift.
Ich möchte meine Anzeige mit Texten aus einem Windows Programm per 
Parameterübergabe (%1 %2 %3) versorgen.

Meine Laufschrift arbeitet mit der Software "NewSign 03127 / 03128)"

Das Protokoll davon habe ich hier als PDF vorliegen. Hat zufällig einer 
von euch solch eine Software, oder ist in der Lage diese zu 
Programmieren?

Es hat sich bereits einer versucht, leider scheint es dort einen Fehler 
mit der "Checksumme" zu geben. Leider kann derjenige aus Zeitgründen 
dieses Fehler nicht beseitigen.

Deshalb meine Frage hier. Bin auch bereit denjenigen dafür zu entlohnen!

Danke

Gruß Andi
Gast #1193863
Lesenswert?

Sowas hier, über die serielle Schnittstelle?

 3C 49 44 30 30 3E 3C 42 45 3E 30 35 3C 45 3E 3C   <ID00><BE>05<E><
 49 44 30 30 3E 3C 4C 31 3E 3C 50 41 3E 3C 46 41   ID00><L1><PA><FA
 3E 3C 4D 41 3E 3C 57 43 3E 3C 46 4B 3E 3C 47 47   ><MA><WC><FK><GG
 31 3E 3C 47 47 32 3E 3C 47 47 33 3E 3C 47 47 34   1><GG2><GG3><GG4
 3E 37 41 3C 45 3E 3C 49 44 30 30 3E 3C 47 47 31   >7A<E><ID00><GG1
*
*
*
 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 00   .UUUUUUUUUUUUUU.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 33 36 3C 45 3E 3C 49 44 30 30 3E 3C 42 46 3E   .36<E><ID00><BF>
 30 36 3C 45 3E                                    06<E>

Das hinter dem <BF> scheint ja wohl die Prüfsumme zu sein.
Steht in Protokollbeschreibung die Berechnungsvorschrift?

Ansonsten kein Problem.

Was darfs denn kosten?
OP #1193938
Lesenswert?

Peter wrote:
> Stell doch einfach mal das PDF Online, eventuell noch den Quelltext des
> ersten versuches. Es sollte schneller gehen ihn zu ändern als komplett
> bei 0 unzufangen.

Denn Quelltext gibt es leider nicht mehr, habe nur noch die Datei. . . 
;-(

Es handelt sich um:

AM004 -03127 LED Display

PDF folgt.

Danke Euch, das Ihr versucht mir zu helfen.

Gruß Andi
OP #1194174
Lesenswert?

Ich möchte gerne als "Nebenwunsch", das im "stand by" die Uhrzeit und 
datum angezeigt wird.

Hauptwunsch: Es soll ein Text, der als Parameter von einem Windows 
Programm (FMS32pro) gesendet wird, auf der Laufschrift angezeigt werden.

FMS32pro kann Aktionen ausführen, das soll passieren und der Text (%1 %2 
%3) soll an die Laufschrift gesendet werden.

Wenn´s geht ca. 30 sec, danach wieder in Standby. Das aber erstmal nicht 
so wichtig.

Gruß Andi
Gast #1194195
Lesenswert?

Irgendwie versteht ich noch nicht ganz.

Was ist das Programm "FMS32pro"?

Du Brauchst also ein Programm was 3Parameter aufnimmt (oder ist die 
anzahl immer anders?) und jeder Parameter enthält Text. Soll der Text 
dann auf verschiende Zeilen (Laut pdf kann das ding mehre Zeilen 
ansteuern) oder einfach zusamen gehangen werden?

Woher weiss das Programm welche ID das Display hat, muss das nicht auch 
per Parameter übergeben werden?
OP #1194208
Lesenswert?

Peter wrote:
> Irgendwie versteht ich noch nicht ganz.
>
> Was ist das Programm "FMS32pro"?
>
> Du Brauchst also ein Programm was 3Parameter aufnimmt (oder ist die
> anzahl immer anders?) und jeder Parameter enthält Text. Soll der Text
> dann auf verschiende Zeilen (Laut pdf kann das ding mehre Zeilen
> ansteuern) oder einfach zusamen gehangen werden?
>
> Woher weiss das Programm welche ID das Display hat, muss das nicht auch
> per Parameter übergeben werden?

FMS32pro ist ein Pocsag Programm, damit werden Meldungen von Digitalen 
Meldeempfängern (z.B Feuerwehr, Rettungsdienst usw.)empfangen und 
ausgewertet.

Es sind bis zu 4 Parameter:

%1 --> RIC (immer 7 Stellig, Numerisch) [Adresse]
%2 --> Funktion [0,1,2,3]
%3 --> Textmeldung [bis zu 80 Zeichen]
%4 --> Textzuweisung (Name)

Die Parameter sollen nur auf einer Zeile laufen.
Es soll immer an die ID 01 und "Page" A gesendet werden.

Hier eine Beispielmeldung:

[%1] 0611111 [%2]0 [%3]A 17:35 FEUER Musterstrasse 1; bei Hernn Muster 
[%4] Feuerwehr Musterhausen

Wichtig sind mir nur die Parameter %3 und %4, wobei ich die gerne so 
angezeigt hätte:

%4 %3

Hoffe es ist verständlich.

Gruß Andi
OP #1194926
Lesenswert?

Peter wrote:
> Hallo,
> hier mal ein kleines Testprogramm - ist aber wirklich erstmal bloss ein
> Test.
>
> Es senden ein Text an das Display. Es wird Com1 verwendet.

Hi Peter,

ich habe es grad getestet. Leider erscheint bei mir kein Text auf dem 
Display.


http://www.bildercache.de/anzeige.html?dateiname=20090316-124903-141.jpg

Dann schließt sich das Fenster und das war es.

Gruß Andi
OP #1194993
Lesenswert?

Ich habe grad einmal ein RS232 Abhörpogramm installiert.

Diese Daten sendet der PC an die Anzeige, wenn ich das dazugehörige 
Laufschrift Programm starte und folgenden Text sende "test"

<ID01><L1><PA><FE><MA><WC><FE>test62<E>

Leider habe ich keine Möglichkeit abzuhören, was das Display antwortet.

Gruß Andi

P.S: Merkwürdigerweise kann ich auch an ID00 senden, und das Display 
zeigt den Text an. Ich kann das Display selber aber nicht auf ID00 
programmieren.
Gast #1195014
Lesenswert?

die ID00 ist die Broadcastadresse, das ist erstmal normal das das 
Display darauf reagiert.

Scheinbar ist der Fehler wie ich die Checksumme anhänge, ich dachte sie 
muss auch mit <CS??> angehangen werden, aber scheinbar muss sie nur 
einfach so hinten dran.

In der Doku steht leider nicht drin wie das Display antwortet, da steht 
bloss was von AKT/NAKT aber nicht welche zeichen es sind.

Ich mache heute Abend mal eine neue Version mit der andere Checksumme.
OP #1195029
Lesenswert?

Hier noch zwei Texte:

[Probe]

<ID01><L1><PA><FE><MA><WC><FE>Probe3E<E>

[<25Sec>  <Display Time>   <Display Date>]

<ID01><L1><PA><FE><MA><WZ><FE>  <KT>   <KD>5D<E>

Gruß Andi

@Peter: Schon jetzt einmal vielen Dank für deine Bemühungen!

P.S: Wenn ich aus der Software an ID00 sende, bekomme ich keine 
Fehlermeldung (Display error)

P.P.S:

Wenn ich sende sieht es so aus:

<ID01><L1><PA><FE><MA><WC><FE>Probe3E<E> [len=40]

<20090316135628.421 RX>

Funktioniert auch!

ACK
Gast #1272360
Lesenswert?

Ich stellt es einfach mal hier rein.

Dazu noch eine ini datei mit dem namen rs232display.ini und dem inhalt

[Konfig]
ID=1
Port=COM1
Text=<L1><PA><FE><MA><WC><FE>%1 %2 %4 %3

anlegen, wenn man jetzt die exe startet wird der Text aus der ini datei 
auf dem Display ausgegeben. Die Parameter %1 usw werden durch die 
Kommandozeilenparameter der exe ersetzt
Angehängte Dateien:
OP #1287009
Lesenswert?

Darf ich noch einmal auf Dich zurück kommen?

Ist es möglich das nach einer Zeit=X zusätzlich folgender Befehl an die 
Anzeige gesendet wird?

<ID01><L1><PA><FE><MA><WC><FE>  <KT>   <KD>44<E>

Super wäre es,wenn man die Zeit in Minuten in der INI einstellen könnte, 
reicht aber auch völlig aus, wenn eine feste Zeit eingegeben wird = 20 
min.

Da das Fenster ja bestimmt die ganze Zeit geöffnet bleiben muss, wäre es 
super, wenn es immer "minimiert" starten würde.

Würde mich über eine Rückmeldung freuen.

Gruß Andi
Gast #1385467
Lesenswert?

Hi, habe das Programm auch mal an meiner LED-Laufschrift ausprobiert...
Leider ohne Erfolg.

Gut, folgendes Problem bei mir:
Ich möchte SMS aus einem Handy auslesen und an die LED auf Page-O 
ausgeben.
Ich lasse mein Programm folgendes an den RS232 senden:
<ID00><L1><PO><FE><MA><WA><FE><GA>{die SMS}??<E>

Bei den '??' steht immer die "Checksumme" der Nachricht...
Ich selbst scheitere daran, das ich die Checksumme nicht errechnen kann.

Wie bekomme ich die herraus? Mir ist bekannt, das diese irgendwie über 
XOR errechnet wird.

Kann mir jemand dabei helfen und sagen, wie ich die errechnen lassen 
kann?

Vielen Dank schnon mal!
Gruß,
Riiko
Gast #1387061
Lesenswert?

Hast Du das oben verlinkte PDF gelesen? Dort sollte es eigentlich drin 
stehen. Beim überfliegen schein es tatsächlich nur ein einfaches XOR 
über die Nachricht zu sein, das heist Du fänst beim ersten 
Byte(Buchstaben) an und rechnest das "XOR" mit dem zweiten. Diesen dann 
per XOR mit den zweiten Byte/Buchtaben, dann mit dem dritten usw.

Wie "XOR" in der von Dir benutzten Programmiersprache funktioniert must 
Du wissen.
Gast #1389619
Lesenswert?

ok, das PDF welches ich hatte war nicht so schön detailiert wie dieses 
hier!
Hab das irgendwie übersehen, sorry.
Ich nutze Delphi7 (ja, ich weiss, wird von guten Programmierern 
gemieden. Hab abder darauf gelernt ^^; ). XOR-Berechnungen sind da 
relativ einfach.

Riesen lieben Dank für die Hilfe, nun kann ich endlich den letzten 
Schritt fertigstellen! Danke!
Gast #1389880
Lesenswert?

Dann etwa so:

Function SimpleCheckSum (const MyMessage : String) : byte;
Var res : byte;
    i   : integer;
Begin
  res := MyMessage[1];
  for i:=2 to length(MyMessage) do
     res := res XOR MyMessage[i];
  SimpleCheckSum := res;
End;

;-) Pascal ist schon wieder etwas her (? stimmt das "do"), aber immer 
noch eine der für mich schönsten Sprachen...
Gast #1392197
Lesenswert?

Hey super riesen Dank!!!
Die Checksumme wird endlich richtig errechnet!
Musste wegen Delphi-Meckerei (inkompatible Typen 'Byte' und 'Char') 
deinen Quellcode etwas abändern, aber er funktioniert tadelos:

Function SimpleCheckSum (const MyMessage : String) : byte;
Var res : byte;
    i   : integer;
Begin
  res := ord(MyMessage[1]);
  for i:=2 to length(MyMessage) do
     res := res XOR ord(MyMessage[i]);
  result := res;
End;

Jetzt stehe ich schon mit dem Fuß auf der Ziellinie und schepper prommt 
in die nächste Glaswand, die mir den Weg ins Ziel versaut...
Zwar ist der Output am Serial-Port der selbe, jedoch nimmt das 
LED-Display keinen Befehl mehr an, wenn ich mit meinem Programm versucht 
habe etwas zu senden.

Aber egal, was ich sende... Es sieht mit dem Original-Programm genauso 
aus wie in meinem... Hoffe das wird nun richtig dargestellt:
Port geöffnet durch Vorgang "NewSign 03127 or 03128.exe" (PID: 3436)

 3C 49 44 30 30 3E 3C 42 45 3E 30 35 3C 45 3E 3C   <ID00><BE>05<E><
 49 44 30 30 3E 3C 4C 31 3E 3C 50 4F 3E 3C 46 45   ID00><L1><PO><FE
 3E 3C 4D 41 3E 3C 57 41 3E 3C 46 45 3E 48 69 20   ><MA><WA><FE>Hi
 48 6F 21 21 21 20 45 69 6E 20 54 65 73 74 20 54   Ho!!! Ein Test T
 65 78 74 21 33 37 3C 45 3E 3C 49 44 30 30 3E 3C   ext!37<E><ID00><
 42 46 3E 30 36 3C 45 3E                           BF>06<E>

Port geschlossen

Port geöffnet durch Vorgang "SMS2LED.exe" (PID: 4300)

 3C 49 44 30 30 3E 3C 42 45 3E 30 35 3C 45 3E 3C   <ID00><BE>05<E><
 49 44 30 30 3E 3C 4C 31 3E 3C 50 4F 3E 3C 46 45   ID00><L1><PO><FE
 3E 3C 4D 41 3E 3C 57 41 3E 3C 46 45 3E 48 69 20   ><MA><WA><FE>Hi
 48 6F 21 21 21 20 45 69 6E 20 54 65 73 74 20 54   Ho!!! Ein Test T
 65 78 74 21 33 37 3C 45 3E 3C 49 44 30 30 3E 3C   ext!37<E><ID00><
 42 46 3E 30 36 3C 45 3E                           BF>06<E>

Port geschlossen

Also wie gesagt. Der Output scheit identisch zu sein.
Nur macht die LED bei der Original Software was und bei meinem Programm 
streikt es... mist.
#1416145
Lesenswert?

Hey Super, auf die Idee bin ich gar nicht gekommen!
Ich war irgendwie so auf diese Checksumme und die Ansteuerung der 
Seriellschnittstelle fixiert, das ich über Faktor Zeit überhaupt nicht 
nach gedacht hatte ^^;
... irgendwie auch logisch, dass das LED-Panel nicht mehr reagieren 
kann, wenn ich den mit einem Klick derart mit Steuerbefehlen 
torpediere...

Ok, vielen heissen Dank!!! Ich werde in der nächsten Woche das mal 
ausprobieren.
Wenn mein Projekt endlich mal Erfolgreich ist, werde ich es hier auch 
mal online stellen (für alle, die auch derart verrückte Ideen wie ich 
haben).

Gruß,
Riiko ^^;
#1432657
Lesenswert?

Ja wunderbar!
Es klappt endlich, super vielen Dank!!!
Nicht nur das Timing hatte ich etwas verbaselt, auch die Art der 
Übertragung.
Das Original Programm hat jedes Zeichen einzeln gesendet.
Bsp: Test
Port geöffnet
>T
>e
>s
>t
Port geschlossen

Mein Programm hatte immer den ganzen "Block" auf einmal senden wollen.
Bsp: Test
Port geöffnet
>Test
Port geschlossen

Ist mir erst aufgefallen, als ich den COM-Port-Scanner auf Listenansicht 
umgestellt hatte, um das Timing abzulesen.
Wie auch immer, nun weis ich endlich wie die LED-Anzeige gefüttert 
werden mag und kann endlich mein Prg weiterschreiben!

Nochmals vielen lieben Dank an alle für eure Hilfe!
Ohne Euch hätte ich das Projekt mit Sicherheit verworfen!

Gruß,
Riiko
Gast #1524602
Lesenswert?

Hallo Peter und Co!
Ich nutze deine rs232display.exe nun auch für meine Laufschrift, 
funktioniert echt super!
Ein Problem hab ich jedoch: Ich schaffe es nicht, Umlaute zu übergeben. 
In dem verlinkten PDF ist ja eine Tabelle der European characters 
aufgeführt. Wenn ich jedoch den entsprechenden Code in deine ini 
einfüge, wird dieser als Klartext übertragen.

Beispiel:

[Konfig]
ID=1
Port=COM1
Text=<L1><PA><FE><MA><WC><FE>Hier steht eine <U5C>berschrift.


Meine Laufschrift zeigt dann kein Ü sondern eben <U5C>. Woran kann das 
liegen? Hab schon alle möglichen Codes und Schreibweisen ausprobiert. 
Wenn ich den Code mit der NewSign-Software übertrage klappt es. :-(

Wäre klasse wenn du einen Rat hättest!

LG, Holger
#1525310
Lesenswert?

Hi Holger,

leite doch mal die Ausgabe der NewSign-Software über ein Nullmodem an 
einen anderen (oder den gleichen) PC mit Terminal Software und schau Dir 
das Ergebnis an. Meine Vermutung ist dass die NewSign Software die 
Zeichenfolge <U5C> in ein einziges anderes Zeichen umsetzt.

Mein Bastelkeller ist leider im Moment etwas zu kalt sonst würde ich das 
mal eben prüfen...

Viel Glück

Peter
Gast #1526242
Lesenswert?

Vielen Dank Peter, das war die richtige Spur!
Habe den Befehl per "Advanced Serial Port Monitor" abgehört und du 
hattest recht: Die Umlaute werden durch einzelne Sonderzeichen ersetzt 
(z. B. ä=£). Nun kann ich die Zeichen entsprechend an deine 
rs232display.exe übergeben. Top! :-)
D A N K E !
OP #1593104
Lesenswert?

Hi Leute,

da Ihr mir schon einmal so super geholfen habt, habe ich hier noch 
einmal eine frage. ;-)

Ich benötige ein kleines Programm, welches 2 Eingabefelder (1x7 Zahlen, 
1x Text max. 240 Zeichen) hat, und 4 Auswahlfelder ( 1x4, 1x3, 1x2, 
1x3).
Und einen "Enter" Knopf.

Nach dem drücken des "Enter" Knopfes soll ein Befehl an einen Com-Port 
gesendet werden, welcher sich aus den unterschiedlichen Möglichkeiten 
zusammensetzt.

In welcher Sprache es programmiert wird, ist mir erstmal egal.
Es soll am ende ein Datenpaket an einen COM-Port gesendet werden.

Ich sende im Moment die Befehle immer per TeraTerm an den COM-Port. Da 
der Befehl fast immer gleich ist, wollte ich es dennoch vereinfachen.

Folgende Felder sollen vorhanden sein:

1) [RIC] --> 7 stelliges frei Eingebbares Zahlenfeld
2) [Funktion] --> 4 Auswahlfelder (0,1,2,3)
3) [BAUD] --> 3 Auswahlfelder (512,1200,2400)
4) [Invert] --> 2 Auswahlfelder (Y,N)
5) [Typ] --> 3 Auswahlfelder (A,N,T)
6) [TEXT] --> Freier Text bis zu 240 Zeichen

Der Befehl der an den COM-Port gesendet wird, soll sich wie folgt 
zusammensetzen:

P,[RIC],[Funktion],[Baud],[Invert],[Typ],[Text]

Beispiel:

p,1234567,0,1200,n,a,Dies ist ein test Text

Verstehst Ihr was ich meine?

Danke

Gruß Andi

P.S: Ich kann gerne eine Übersicht senden, wie die Kommunikation 
zwischen PC und Gerät aussieht.
Gast #2077695
Lesenswert?

HAllo! Benötige Hilfe, ich würde gerne von einem Digitalen Empfänger 
Eingehende Meldungen, über RS 232, auf ein Laufschriftdisplay bringen!?? 
Leider bin ich nicht der Programmierkönig, das deißt fast keine Ahnung!
Also was muß ich in die betreffenden Zeilen eingebn damit eine Ausgabe 
funktioniert. Im Anhang ein Bild von der Progsoft des Herstellers!
Angehängte Dateien:
#2077816
Lesenswert?

Und warum machste diesen Uralt-Thread dann auf?
Bisschen wenig Informationen die du da angibst.
Wende dich doch an den Hersteller und frage den doch mal
was er dir anbieten kann. Evtl. kann er dir sogar ein paar
Programmierinformationen geben.
Wenn der sich allerdings verweigert dürfte es auch für einen
Programmierer nicht leicht werden da eine Lösung zu finden.
Vorteilhaft wäre wenn du angemeldet wärst, dann könnte man
weitere Details per PN austauschen, insbesonder was dir die
Lösung Wert wäre. Denn für Umsonst haben hier die wenigsten
Zeit.
Gast #2239174
Lesenswert?

Hi zusammen,

vielen Dank für den tollen Thread, hat mich schon enorm weiter gebracht. 
Ich strauchle leider an der Berechnung der checksum. Riiko hat weiter 
oben schon einen Lösungsvorschlag für Delphi angegeben:
1
Function SimpleCheckSum (const MyMessage : String) : byte;
2
Var res : byte;
3
    i   : integer;
4
Begin
5
  res := ord(MyMessage[1]);
6
  for i:=2 to length(MyMessage) do
7
     res := res XOR ord(MyMessage[i]);
8
  result := res;
9
End;

Ich programmiere in Processing (basiert auf der Java-Syntax). Leider 
bekomme ich es nicht hin, eine korrekte checksum zu berechnen. 
Vielleicht fällt Euch der Fehler auf!?
1
String myCommand = "<ID01><L1><PA><FE><MA><WC><FE>Probe"; // checksum müsste laut Beispiel 3E sein
2
byte res = byte(myCommand.charAt(0));
3
for(int i=1; i<myCommand.length(); i++){
4
  res = byte(res ^ myCommand.charAt(i));
5
}
6
String checksum = hex(res);
7
myCommand += res +"<E>";

Bin für jede Anregung dankbar!
Gast #2239503
Lesenswert?

Hallo nochmal,

in einem Spezial-Forum für Processing konnte mir der entscheidende Tipp 
gegeben werden. Dieser ist unabhängig von der verwendeten 
Programmiersprache, daher poste ich meinen persönlichen Stolperstrick 
hier nochmals:

Die checksum betrifft lt. Datenblatt AUSSCHLIESSLICH das Datenpaket, 
also nicht ID etc.

Der Vollständigkeit halber hier mein funktionierendes Codebeispiel:
1
String fullCommand ="<ID01>";
2
String data = "<L1><PA><FE><MA><WC><FE>Test dont test!";
3
byte res = 0;
4
for(int i=0; i<data.length(); i++){
5
  res ^= byte(data.charAt(i));
6
}
7
String checksum = hex(res);
8
fullCommand += data + checksum + "<E>";

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren