Forum: Projekte & Code IgorPlug UDP modifizieren?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Hallo,

wäre hier jemand in der Lage für einen "Bascom-Fuzzi" das Programm ein 
wenig zu modifizieren und als HEX-File bereitzustellen?

Im Original ist das Projekt dafür gemacht, die Daten aus einem 
TSOPx-IR-Empfänger per UDP ins LAN zu blasen. Für viele auch anders 
nutzbar wäre das Projekt, wenn man folgende Änderungen vornehmen würde:

- Dateneingang für "gewöhnliche" RS232 (TTL)-Daten mit z.B. 9600 baud

- die IP-Adresse entweder per Kommando setzen, z.B. wenn im 
Empfangspuffer
ein String mit einem bestimmten Format ankommt 
"+++<192168003xxx:12345>+++" dann ist das eben keine Nachricht zum 
Senden, sondern die IP-Adresse nebst Port

- oder wenigstens die Segmentadresse (vorletztes Oktett) per Lötbrücke, 
DIP-Schalter oder BCD-Schalter setzen, es scheinen ja genügend Pins frei 
zu sein ...

Frank

http://www.cesko.host.sk/IgorPlugUDP/IgorPlug-UDP%20(AVR)_eng.htm

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Der sendet das doch eh per Broadcast, warum sollte man da ne andere IP 
setzen wollen?

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Hallo,

> Der sendet das doch eh per Broadcast, warum sollte man da ne andere IP
> setzen wollen?

    * destination IP=192.168.1.255 (broadcast to 192.168.1.xxx adresses)
    * destination port=6668, source port=6668
    * destination MAC=FF-FF-FF-FF-FF-FF (broadcast)

Weil die Adresse wenigstens zum Zielnetz (hier 192.168.1.0) passen muss.
UDP bsiert auf IP. Was machst du, wenn dein LAN auf 192.168.2.0 oder gar 
10.10.10.0 lautet? Jedesmal neu flashen?

Wie gesagt, ein Kompromiss wäre es, wenigstens das vorletzte Oktett 
variabel zu gestalten, weil wohl die meisten (Klasse-C-) Netze mit 
192.168. anfangen, aber eben längst nicht alle.

Der Port 6668 dürfte auch meistens frei sein, garantiert aber nicht 
immer.

Frank

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Okay das stimmt natürlich.
Also leider hab ich kein Eagle installiert, deshalb weiß ich nicht was 
an Pins noch Frei ist am ATMEGA aber auf dem Schematic siehts aus als 
sei noch PC0-5 frei zusammen mit PB0-1 hätte man da noch "Platz" für ein 
8fach Dipschalter.
Hab auch mal im Source nachgesehen, das scheint machbar zu sein das als 
init einzulesen. Bin leider erstmal nen paar Tage weg, aber danach könnt 
ichs mal versuchen zu modifizieren. Wegen Searialinput hast du das mal 
versucht ob sich da was tut? So wie es aussieht wird auf jedenfall die 
Serielle Schnittstelle inistialisiert und gesendet wird auch was. Was 
mit empfangenen Daten passiert konnt ich so auf die schnelle nicht 
sehen.
Wegen des Ports: Wenn man den ISP Stecker "mißbraucht" + ein paar freie 
Pins (z.B: wenn man Infrarot raustreicht) könnte man das auch zumindest 
in nem kleinen Bereich einstellen.

Das einzige Problem dabei ist die CRC32 Checksum. Die wird nämlich in 
den defines berechnet und ist dann natürlich falsch. Im Internen LAN 
könnte es aber trozdem sein das das Paket ankommt müßte man 
ausprobieren.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ok, ich werde erst mal sehen, ob ich es auf dem Steckbrett überhaupt zum 
Laufen bringe.
Keine Ahnung, auf welche Rate der Input-Port eingestellt ist. Aus dem 
IR-Empfänger kommen die Bits, so, wie sie die Fernbedienung sendet, nur 
eben um die Trägerfrequenz bereinigt, geregelt und gesäubert. Evtl. kann 
die Software auch die Baudrate selber finden?

Frank

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

>> .equ  BaudRate    =20000000/16/57600-0.5  ;set UART baudrate to 57600
>> (for 20MHz=20 000 000Hz)
Naja... gehen tut das schon --> Siehe bootloader von PeDa oder 
ähnliches...
Aber da müßtest du dan vieleicht doch selber einsteigen in die Materie, 
weil das dann doch etwas mehr änderungen am Code benötigt.
Auf der Website steht zumindest das auch über die Serielle gesendet 
wird.

von Roger S. (edge)


Lesenswert?

Frank Esselbach wrote:
> Weil die Adresse wenigstens zum Zielnetz (hier 192.168.1.0) passen muss.
> UDP bsiert auf IP. Was machst du, wenn dein LAN auf 192.168.2.0 oder gar
> 10.10.10.0 lautet? Jedesmal neu flashen?

Wenn das Ding im selben LAN ist dann nimm einfach 255.255.255.255

Cheers, Roger

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
Noch kein Account? Hier anmelden.