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
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?
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.
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
>Denn Quelltext gibt es leider nicht mehr, habe nur noch die Datei. . . >;-( Verstehe wer will.
Das sieht ja recht einfach aus, schreib mal was das Programm alles machen soll. Denn das Display hat ja viele möglichkeiten (Echtzeituhr, Verzögerte anzeige, usw).
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
was-willst-du wrote: >>Denn Quelltext gibt es leider nicht mehr, habe nur noch die Datei. . . >>;-( > > > Verstehe wer will. Ich hab das Programm nicht geschrieben, und der User hat den Text leider gelöscht. . . .
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?
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
Hallo, hier mal ein kleines Testprogramm - ist aber wirklich erstmal bloss ein Test. Es senden ein Text an das Display. Es wird Com1 verwendet.
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
Schade, wäre ja auch zu einfach gewesen. Hängt das gerät wirklich an Com1? Kannst du das alte Programm mal hochladen, dann kann ich mir mal anschauen was er verschickt.
Hi Peter, ja er hängt an COM1. Wenn ich das Prog starte verschwindet auch für ne kurze Zeit der (bisher) angezeigte Text kurz, erscheint dann aber wieder. Das Programm welches Angehängt ist, muß man so starten: C:system32.exe [COM] [TEXT] (COM1 oder 2 möglich) Gruß Andi
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.
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.
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
>In der Doku steht leider nicht drin wie das Display antwortet, da steht >bloss was von AKT/NAKT aber nicht welche zeichen es sind. Eventuell ASCII: ACK = 0x06, NACK = 0x15h
so hier mal ein 2.Versuch. jetzt mal bitte als Parameter test,Probe oder anderen Text angeben. Das Programm bitte über die eine Befehlzeile starten, dann bleiben die Ausgaben am ende erhalten.
Hi Peter, bitte melde mich bei mir per e-Mail! Es ist genau das was ich gesucht habe, und es FUNKTIONIERT!!! ;-) Danke, Danke, Danke!!! Gruß Andi
Peter, hallo, ich bin gerade an der Verwirklichung eines selbigen Projektes mit LED Laufschrift und Pocsag Melder oder alternativ mit FMS32 pro. Könntest Du mir evtl. das Programm auch zukommen lassen, bzw. mir Details zu der Verwirklichung nennen. mfg
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
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
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
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.
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!
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...
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.
Hi Riiko, Was man nicht sieht ist das Timing zwischen den Zeichen bzw. den Telegrammen. Probier doch mal: <ID00><BE>05<E> 350ms delay ID00><L1><PO><FE><MA><WA><FE>HiHo!!! Ein Test Text!37<E> 350ms delay <ID00><BF>06<E> Gruß Elsi
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 ^^;
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
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
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
Moin, ich hab noch einmal eine frage an Euch. Kennt einer den Befehl,damit die Uhrzeit nicht ständig alle 20sek verschwindet,sondern so lange angezeigt wird,bis das Display eine neue Meldung bekommt? Danke Gruß Andi
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 !
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.
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!
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.
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!
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>"; |
Hello! I have tried to get Swedish characters to work with the LED-panel. I thought it might be usefull for you too: http://www.sundh.com/blog/2012/04/arduino-library-for-led-message-display/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.