@@Mx Wx (mxwx) und Michael, ich habe den OpenMCP um die Sachen teilweise schon erweitert über die ihr da diskutiert habt. SOAP wollte ich auch mal machen, ist aber wie oben schon gesagt, viel zu aufwändig. Ich habe mich für REST WebServices entschieden, also simples HTTP GET/POST. POST habe ich nachgerüstet, das konnte O-MCP noch nicht. Darin ist auch ein HTTP Client enthalten, der sich OnEvent (i.e. Umfallen eines dig. IOs) per TCP an einen Server verbindet und diesen Event sofort dort abliefert. Per cron Daten irgendwo abliefern dürfte nicht das Problem sein. Übertragungsprotokoll ist ein eigen definiertes XML (JSON ist gerade in Arbeit) mit dem sich der gesamte NETIO steuern und abfragen lässt - eine Art Fernwirkprotokoll für den gesamten NETIO nach diesem Muster: http://.../netio?PORTA1=1&PORTB1=2&PIN2&ANO="123"... . Dann kommt XML/JSON zurück. Eine Spezifikation ist vorhanden. (Ja, es überschneidet sich mit den Fähigkeiten des OpenMCP). Als Übertragung wird - wie gesagt - REST Service als HTTP- GET verwendet. Die ganzen HTML Pages sind abgeschaltet, denn Darstellung ist m.E. keine Aufgabe eines uC. Wer mitmachen möchte oder auch nur meinen Code verbessern möchte, ist herzlich eingeladen. Mail reicht. Im Moment ruht allerdings diese Arbeit wg. anderer, höher priorer Dinge. Den Client aus dem zitierten Thread http://son.ffdf-clan.de/include.php?path=forumsthr... habe ich auch untersucht und verworfen. OpenMCP ist um Klassen besser. Gruß Gerd
Hi zusammen, ich benutze den OpenMCP schon etwas länger und bin auch begeistert von dem Projekt. Einige Dinge sind mir aufgefallen, die ich mal in den Raum werfen wollte und die u.U. auch die Probleme Anderer in dem Thread hier u.U. erklären könnten. Mir fiel auf, das der TCP Stack m.E. recht langsam ist und, wenn man sich mit Wireshark den Trace gegen einen Windows Client betrachtet, auch voller Merkwürdigkeiten. Ich glaube auch nicht, das man für Windows auf dem TCP Stack eine Extrawurst drehen muss wie oben in dem Thread (und im Quellcode) behauptet wurde. Ich habe einfach mal einen TCP/HTTP Trace eines Firefox/Windows gegen einen TOMCAT untersucht und doch einige Unterschiede festgestellt. (Ja, man kann einen uC nicht gegen ein TOMCAT vergleichen, aber es ging hier nur um das was auf dem Draht geschieht) - OpenMcp benutzt niemals ein TCP- PUSH Flag. Warum eigentlich nicht? TOMCAT benutzt das immer. Könnte das die Ursache für die eigenartigen Effekte unter windows sein ? - HTTP GET wird immer erst mit "HTTP ... 200 Document follows" beantwortet, bevor der eigentilche Inhalt kommt. Das ist doch gar nicht nötig. - Der Ethernetbuffer ist sehr klein. Nur irgendwas um 70 byte. Warum so wenig ? Solange genug RAM da ist, kann man es doch nutzen. (Simples verdoppeln oder verdreifachen ging voll daneben, der Stack startet gar nicht mehr) Was meint ihr ? Gruß Gerd
- Nachtrag : Ausgehende TCP Verbindungen funktionieren auch nicht. Es gibt dafür eine Funktion "Connect2IP()", die aber leider gegen ein 'netcat' (auf Windows) nicht funktioniert.
Hi Gerd, also ich meine... ich finds super daß Du Verbesserungsvorschläge bringst, aber ausser Dir wird sie vermutlich niemand einarbeiten... also wenn Du den Code verbessern könntest/würdest (und so wie es sich anhört hast Du dafür schonmal gute Voraussetzungen) wären Dir alle MCP-Nutzer dankbar! Mir ist auch schon aufgefallen (siehe oben) daß der HTTP Server bei mir oft (mehrmals pro Tag) abschmiert (leider habe ich kaum konkrete Anhaltspunkte woran es liegen könnte, außer daß bei einem anderen ähnlichen Webserver-Ansatz dieses Problem nicht besteht) - ich kann nicht ausschließen daß es ein eigenes Problem ist wegen Hardware oder eigenen SW-Änderungen (wobei diese minimal sind). Viele Grüße, Ethan
Ich habe auch schon versucht, mit dem Autor Dirk Broßwick Kontakt aufzunehmen, um mit ihm die Probleme zu diskutieren. Denn i.A. hat sich der Autor einer Software sich ja was dabei gedacht, das er es so macht und nicht anders. Aber nach einem Erstkontakt im Januar meldet er sich seit 8 Wochen nicht mehr ... Mindestens einen potentiellen Pufferüberlauffehler im TCP- Stack meine ich entdeckt zu haben, der für sporadische Fehler die Ursache sein könnte, aber wie gesagt, das würde ich gerne mit Dirk erst selbst besprechen, bevor ich hier "auf die Tonne haue". Gruß Gerd
Ethan Arnold schrieb: > Mir ist auch schon aufgefallen (siehe oben) daß der HTTP Server bei mir > oft (mehrmals pro Tag) abschmiert das hatte ich sporadisch auch bei einigen Aufbauten. Ich habe das mal angefangen zu tracen und zunächst mal noch unspezifisch auf defekte IP-Pakete zurück geführt. Jedenfalls hatte ich in der Simulation beim Verschicken von defekten IP-Paketen schnell "Erfolg" beim abschießen :-). Das kann aber noch nicht die ganze Lösung sein. Damals habe ich das Problem schnell lösen wollen und habe erstmal einfach einen Cron-Job eingerichtet der das MCP jeweils nach 15 Minuten resettet. Und wie das halt mit solchen schnellen Fixes ist, das läuft seitdem mit dem "Fix" problemlos und wird wohl deshalb in nächster Zukunft auch nicht mehr angepackt. Mal sehen vielleicht ja doch :-). Beste Grüße MxWx
Gibt es eigentlich auch einen passwordschutz für das openmcp? das ganze so ohne ins internet zu lassen wäre nicht so schön. H.
Hallo! Würde gerne mal das Board in Betrieb nehmen. Dazu müsste ich den richten µC besorgen. Weiß jemand, welche die aktuellste Version ist? Wo ich sie finde? Und für welchen Controller sie geschrieben ist? Danke für Antwort.
Hallo Timo, schau mal hier. http://wiki.neo-guerillaz.de/mediawiki/index.php/Hauptseite http://wiki.neo-guerillaz.de/mediawiki/index.php/Selber_Kompilieren http://wiki.neo-guerillaz.de/mediawiki/index.php/Microwebserver http://wiki.neo-guerillaz.de/html/index.html Gruß Karl Albert
Hallo! Ich habe mir die Hardware besorgt, den code kann ich kompilieren und aufspielen. Die Debugausgabe stoppt nach ADC initialisiert. Dann würde nach Programm die Initialisierung vom Ethernet kommen. Einzelne funktionen, die aufgerufen werden, habe ich per eig. debug Ausgabe gekennzeichnet. Der Code hängt beim Aufruf von enc28j60Init(); Hat jemand Erfahrungen bzw. Ideen, woran es liegen kann? Die HW haben ich als Fertigsatz besorgt. Danke für Antwort!
Dirk Broßwick schrieb: > Ich habe das Problem auch schon festgestellt, allerdings nur in > Verbindung mit 1GE Switches, warum auch immer. Mglw. Autonegotiation? Fragend, Sheeva
Hallo! Ich habe das Pollin AVR-NET-IO als Fertigsatz hier 2 mal liegen. Ausprobiert habe ich die SW von neo.guerillaz und die von ulrich Radigs Seite. 1) neo.guerillaz: Für den Atmega 644 und AVR-Net-IO ohne ext. hardware modifiziert 2) ETH_M32_EX: Für den Mega32 ohne hardware modifiziert(Pin B4 in enc28.60.h) Bei beiden Softwares: Probleme mit der ENC-Initialisierung. Dort bleibt die jeweilige Debug-Ausgabe hängen. Egal, ob ich DHCP dis oder enabled habe. Ich weiß nicht mehr, wo ich noch suchen soll. Ich hatte mir schon Ausgben zum Start und Ende der enc init funktion geschrieben. In dieser Funktion bleibt der code hängen. Grundlegende Sachen, wie z.B. die Mächtigkeit der Spannungsquelle etc. habe ich schon gecheckt. Pollin-Board bekommt 7,5 600mA angeboten, ist also mehr als genug. Was soll ich tun? Fuses checken? Ich habe für den mega32 nur SPIEN an(klar, ich programmiere mit dem MK2) Die bootsz habe ich auf den größten Wert gestellt. Sonst nix an den Fuses. ENC hatte ich auch schon mal getauscht. Danke für eure Hilfe!
Problem gefunden: Netzteil: 600mA bei bis zu 9V Eingestellt auf 7,5V. Netzteil bringt lt. Mulitmeter 7,62V (belastet mit Pollinboard) Spannung scheint also nicht einzuknicken! Festspannungsregler beide gemessen und gesehen, die 3V3 waren nur 2V8. Zu wenig für den ENC. Netzteil scheint also bei angegebenen 600mA nicht mal die ca 180mA für das Board zu bringen. Netzteil auf 9V eingestellt, 8,66V gemessen, Board hat seine 5 und 3V3 und alles läuft. Komisch, ich dachte die lineraren Festspannungsregler brauchen 2V über der Output-Voltage. Diese Dropoutvoltage lag bei mir bei 2,62-Diodenspannung am gleichrichter.
Hallo, mit dem Net-IO-Board hatte ich mal vor langer Zeit angefangen. Dann verschwand es wieder in der Versenkung. Ich hatte ein bisschen mit der Software von Ulrich Radig herumgespielt, bin dann aber sehr schnell an meine Grenzen gestoßen. Ich habe in meinem Haus eine C-Control-II-Steuerung (Solar, Heizung ...). Dort hatte ich schon immer mal vor einen Webserver anzubinden. Am Besten über I2C. Dann könnte ich sämtliche Temperaturen und Schaltzustände anzeigen und gleich noch auf einer SD-Karte speichern. Dazu hatte ich mir das Net-IO-Board und das Add-On-Board von Pollin geholt. Doch dann blieb alles liegen.
> Dort hatte ich schon immer mal vor einen Webserver anzubinden. Am Besten > über I2C Das klann doch http://ethersex.de
Jörg Zinke schrieb: > Dort hatte ich schon immer mal vor einen Webserver anzubinden. Am Besten > über I2C. Dann könnte ich sämtliche Temperaturen und Schaltzustände > anzeigen und gleich noch auf einer SD-Karte speichern. Das habe ich grade auch realisiert, für Daten vom VBus (RESOL) der Solarregler. Die Firmware ist ETH_M32_EX von Ulrich Radig und die SD/MMC-Lib von Daniel R. Beitrag "MMC SD library FAT16 FAT32 read write" Beides sehr übersichtlich und leicht anzupassen, Dank dafür! Hat jemand schon mal die Hardware genauer angesehen? Ich hatte massive Probleme mit der Spannungsversorgung. Die Siebung ist viel zu klein, keine HF-Filterung, der Elko nach dem 5V-Spannungsregler ist viel zu klein, die Isolationsabstände Leiterbahn->Massefläche sind viel zu klein. Der Webserver hat ständig Neustarts durchgeführt, bei jedem Fliegenschiss auf der Versorgungsspannung. Als µC habe ich den mega1284P benutzt, schafft mehr Platz. ;-) Warum gibt's den eigentlich nur bei Pollin?
Moin allerseits, erstmal vielen Dank für die Super-Arbeit. Selbst als "Maschinenbauer" hab ich das alles hinbekommen :-) Ein Problem hab ich aber schon noch: Ich hab ein Netzwerk mit einem Router und einem Switch drinne. (Scheint aber weder an dem Switch noch dem Router zu liegen. Ich hab beide probeweise rausgenommen.) Im Netz befinden sich jetzt zwei Pollin-Boards mit OpenMcp, die ich auch ansprechen kann. Allerdings ist die Verarbeitungszeit sehr langsam. Um eine Seite per CGI aufzubauen, vergehen schon mal 3-5 Sekunden. Angesichts der paar Bytes, die da übertragen werden, scheint mir das sehr langsam zu sein. Als "Frontend" hab ich schon verschiedene Geräte getestet: Ubuntu mit Firefox, iPod touch, IPhone 3, Tablet mit Android. Alle verhalten sich ähnlich träge. Oder ist das normal ? Als Anregung für Erweiterungen hab ich zwei Punkte: 1. Die Ausgabe von PWM-Signalen für den LED-Betrieb wäre echt cool. 2. Bei Elektro-Strom-Zählern wird eine S0-Signal generiert. Das Signal in den OpenMCP über den Impulszähler reinzubekommen, wäre cool. (Hat da jemand Erfahrung ??) Nochmals vielen Dank Mike
...> vergehen schon mal 3-5 Sekunden. Angesichts > der paar Bytes, die da übertragen werden, scheint mir das sehr langsam > zu sein. Das ist in der Tat eine der Schwächen in der derzeitigen OpenMCP- Implementierung. Wenn man sich die Pakete "auf dem Draht" ansieht, erkennt man das die Nachrichten in sehr viele kleine Pakete aufgeteilt werden. Der Grund liegt in zu kleinen Buffern für den Netzwerkstack. Ich habe die Implementierung von Dirk vor einigen Monaten überarbeitet und bin von 10kb/sec auf 16Mb/sec gekommen. (Gemessen mit wget) Ganz fixe Abhilfe: TCPBuffer von 70 auf 200 - 300 hochsetzen, soviel wie geht. Ein ATmega644P- Chip ist allerdings dann allerdings nötig. In der Auslieferungsversion von Pollin ist das so nicht möglich. Impulszähler ist kein Problem: Dirk hat das schon vorgesehen. PWM- Signale sind m.W. nicht drin. HTH/ Gruß Gerd
Moin, ich hab mal geschaut, aber "TCPBuffer" finde ich nur in der MP3-Streamclient-Gegend. Das hat, glaub ich, mit meiner Problematik nichts zu tun. Oder ?? Nach welcher Variablen bzw. Konstanten muß ich suchen ? Oder kann ich das in der Main.c einfach definieren. Mit dem Impulszähler meinte ich mehr, wie die Schaltung dazu aussieht. Da muß doch bestimmt irgendeine galvanische Trennung ö.ä. her. Vielen Dank Michael
ganz tief unten: system/net/TCP.h so hab ich es stehen: #define MAX_TCP_CONNECTIONS 1 // maximale gleichzeitige verbindungen die von 3 auf 1 runtersetzen. #define MAX_RECIVEBUFFER_LENGHT 96 // was: 48 "RECIVEBUFFER_" ist kein Schreibfehler von mir ;-) #define MAX_TCP_Datalenght 512 // was: 64 Wie gesagt, bei mir ging das nur mit massivem Abspecken des Codes in einen MEGA32. Abspecken heisst, die gesamte HTML- Chose ist raus. Musst etwas probieren. Das Projekt wird übrigens hier im Details behandelt: http://son.ffdf-clan.de/?path=forumscategory&catid=34 Viel Glück ! Gruß Gerd
Hallo Dirk und alle anderen openMCP Experten, großes Lob und Dank an Dirk für die viele gute Arbeit. Ich habe zwei Polin AVR-NET-IO Platinen, bei denen ich den ATmega32 durch einen 644P austauschne werde und ich bräuchte zur DMX Lichtsteuerung das Artnet + DMX Protocol. ich weiss, dass es dazu eine Version gibt die Artnet + DMX kann, nur die erste Version bekomme ich nur mit dem ATmeag32 zu laufen und die hat auch sonst nur geringe Funktionen und die V2 bekomme ich auf meinem 644P nicht komplett zum laufen (meldet sich im Art-net abef die Lampe bleibt dunkel). Deshalb eine große Bitte - ich bin kein AVR Experte: Wäre es mögich, dass jemand die Artnet + DMX Module, die auch im Ethersex Projekt verfügbar sind in openMCP einzubinden? Das wäre ein schönes nachträgliches Weihnachtsgeschenk? VG Heinz
Gerd S. schrieb: > Impulszähler ist kein Problem: Dirk hat das schon vorgesehen. > PWM- Signale sind m.W. nicht drin. Hallo, bin am überlegen, ob/wie ich eine PWM-Anwendung mit OpenMCP realisieren kann, auf einem NET-IO mit ADD-on. Wegen schon beanspruchter Ressoucen im OpenMCP-Projekt kommt nur wohl nur Hardware-PWM in Frage. PD6 hat OC2B, ist auf Ext-Anschluß Pin5 herausgeführt und wird sonst nur von LED3 benutzt. Der Timer2 ist von OpenMCP auch nicht benutzt. Sollte als gehen, oder? Was ich nicht abschätzen kann ist, inwieweit die Benutzung eines bisher nicht benutzen Timers die Performance von OpenMCP beeinträchtigen könnte, wenn OC2B als Hardware-PWM genutzt wird. Hat jemand Erfahrung damit?
Guten Morgen zusammen! Ich bin bei der Internetrecherche auf diesen Thread gestossen. Vielleicht könnt Ihr mir eine kleine Rückmeldung geben, ob ich mit der hier diskutierten Firmware und dem AVR-Net-IO folgende Nummer realisieren könnte: Es geht um die Steuerung einer Audio-Matrix. Diese kann via UDP kommunizieren. Über Endlos-Drehgeber (5 Stück, z.B. Alps STEC11B03, Datenblatt: http://docs-europe.electrocomponents.com/webdocs/02b6/0900766b802b66fe.pdf ) würde ich gerne Pakte verschicken, um Gain-Einstellungen in der Matrix zu erhöhen oder zu verringern. Parallel dazu würde ich gerne über die Rückmeldung der Matrix (auch via UDP) auf einem kleinen Display Klartext-Werte über die Einstellungen ausgeben. Die Ausgabe der Datenwerte erst über die Rückmeldung der Matrix ist nötig, weil die hier kurz skizzierte Fernsteuerung an zwei verschiedenen Orten installiert werden soll. Wäre ich hier grundsätzlich auf dem richtigen Kurs oder eher nicht? Kann der Baustein mit der hier gezeigten Firmware auch UDP empfangen? Ist das mit den 5 Drehgebern (mit eben je zwei Pins) ein Probelm, da die AVR-NET-IO ja auf eine spezielle Input/Output-Konfiguration festgelegt zu sein scheint? Platz für die LCD-Ausgabe brauch ich ja auch noch... Über alle sachdienlichen Hinweise bin ich sehr dankbar, natürlich auch wenn jemand eine Idee hat, womit sich das noch eleganter lösen lassen würde. Vielen Dank und Gruß UWE
Hi Uwe, sorry die Details habe ich nicht ganz verstanden, aber einige Aussagen kann ich machen. UDP geht sowohl rein (Server) als auch raus. Nutze dies um Debug Ausgaben auf einen SYSLOG -Server zu feuern. Die IO- Konfiguratin des AVR NETIO ist m.W. nur in der Originalfirmware von Pollin festgelegt. Mit dieser Firmware kannst du die IO- Konfiguration festlegen wie du willst. Compilieren ist allerdings nötig. LCD geht immer. HTH Gerd
... na das hört sich doch mal ganz gut an. Ich hab mal so ein Ding von Pollin bestellt und schau mal ob ich damit irgendwas zu Stande bring... Vielen Dank schonmal. UWE
Hallo zusammen, ich muß sagen ich bin begeistert von diesem Projekt. Ich möchte das Board wie folgt nutzen. Das Board soll im 10 Sekunden-Takt nachschauen, ob bestimmte IP-Adressen im Netz zu erreichen sind und in Abhängigkeit davon IO-Ports schalten. Meine Idee: Ping vom AVR-Netio auf die Zieladressen. M. E. ist ping bisher nicht realisiert, nur die icmp.c findet man in älteren Version von openmcp.zip; hier aber ohne Type 8 (Ping) und deshalb ohne das echo abzuwarten. Gibt es schon eine Realisierung des Pings oder kann ich mein Vorhaben auch über UDP-Funktionen realisieren, Danke und Gruß Andre
ping ist drin. Schau in cmd.c -> cmd_ping(). Allerdings konnte ich auf die Schnelle keine Empfangsroutine für die Rückantworten finden. Da musst du dir u.U. was basteln. Gruß Gerd
Hallo Gerd, Danke für die schnelle Antwort, vielleicht kannst Du mir noch schreiben, welche Version Du verwendest. Ich habe die aktuellen Sourcen vom SVN verwendet, bzw. auch mal in die letzte OpenMCP.zip in diesem Forum nachgeschaut. Da finde ich kein cmd_ping() bzw. auch keine cmd.c. Danke und Gruß Andre.
Sorry, du hast recht ... Ich bin mit meiner Suche im falschen Projekt gelandet nämlich bei Ulrich Radigs Implementierung für den NETIO. Asche auf mein Haupt ... Aber, man kann sich ja da den Code ansehen und schauen wie er's gemacht hat. Die Grundlagen für ICMP und UDP- messages sind da, der Rest kann nicht so schwer sein. Um den Thread nicht abschweifen zu lassen, schick mir eine PM. U.U. kann ich helfen, aber ohne Gewähr. Gruß Gerd
OpenPWM schrieb: > PD6 hat OC2B, ist auf Ext-Anschluß Pin5 herausgeführt und wird sonst nur > von LED3 benutzt. Der Timer2 ist von OpenMCP auch nicht benutzt. > > Sollte als gehen, oder? Was ich nicht abschätzen kann ist, inwieweit die > Benutzung eines bisher nicht benutzen Timers die Performance von OpenMCP > beeinträchtigen könnte, wenn OC2B als Hardware-PWM genutzt wird. Hat > jemand Erfahrung damit? Das Thema interessiert mich auch. Kann jemand was dazu sagen?
Schau mal im Board http://son.ffdf-clan.de/ nach. Da ist der Richtung etwas mehr los. Aber es könnte durchaus mehr sein, da hast du Recht. Gruß Gerd
Dort ist nix zu finden. Es scheint so, als ob das Projekt nicht mehr gepflegt wird.
Hi ! Der SVN Server ist leider schon geraume Zeit tot, leider, war/ist ein tolles Projekt. Ich habe mein Pollin Net-IO Board mit dem Addon Board erweitert und würde gerne auf eine neue Version von openMCP mit Html Dateien auf der SD Karte wechseln. Kann mir jemand das passende Archiv mit dem Quellcode schicken oder einen Link, wo man es noch runterladen kann. Danke & Grüße D.E.
Danke für den Tipp, dort war ich schon. Leider habe ich nichts gefunden, geht es vielleicht etwas konkreter? Grüße D.E.
salut, hab den svn-server wieder aus den datenschrott zusammengebastelt. http://wiki.neo-guerillaz.de/usvn/svn/webserver2561/ user: anonymous pass: anonymous REV.:531 ist aktuell. am rest werde ich noch weiter basteln. CA sharandac
Hallo sharandac, ich bin mal wieder dran an OpenMCP ein wenig weiter zu machen. Gibt es eine Möglichkeit die oben genannte Revision als z.B. Archive zu erhalten? So sieht es bisher so aus, als wenn man sich jede Datei einzeln laden muss und auch die Verzeichnisstruktur dann per Hand wieder zusammenbauen muss. Grüße, Muetze1
Thomas K. schrieb: > So sieht es bisher so aus, als wenn man sich jede Datei > einzeln laden muss und auch die Verzeichnisstruktur dann per Hand wieder > zusammenbauen muss. Mit wget lässt sich die komplette Directorystruktur replizieren. Minimale Kommandozeile:
1 | wget -m -np --user=anonymous --password=anonymous http://wiki.neo-guerillaz.de/usvn/svn/webserver2561/ |
Ressourcenschonend wäre dies:
1 | wget -m -np -w2 --user=anonymous --password=anonymous http://wiki.neo-guerillaz.de/usvn/svn/webserver2561/ |
(-w2 fügt 2 Sekunden Wartezeit zwischen auf einander folgende Zugriffe ein.) Grüße Stefan
Danke, mit
1 | wget -m -np -w2 --http-user=anonymous --http-passwd=anonymous http://wiki.neo-guerillaz.de/usvn/svn/webserver2561/ |
klappte es auch bei mir.
Hallo, kann es sein, das der Server überlastet ist? Habe gerade versucht ihn zu erreichen. Bekomme Fehler: Netzwerk-Zeitüberschreitung. Gruß Karl Albert
Dirk Broßwick schrieb: > hab den svn-server wieder aus den datenschrott zusammengebastelt was spricht eigentlich dagegen, public server wie github o.ä. zu verwenden? Durch die Panne war das irgendwie ein verlorenes Jahr für da Projekt. Hoffentlich geht es bald weiter.
Hallo, ich möchte nur Teile des Projektes benutzen, habe dort aber ein paar 'Ungereimtheiten'. Wo wäre denn der richtige Platz, Fragen an die Autoren und/oder 'Mitwissende' zu stellen? Hier? Der Thread hier ist aber schon sehr lang und das was ich fragen würde sind nicht unbedingt bahnbrechende Erkenntnisse. Gibt es ne ML? Gruß, Marco
Hallo, seine Website ist immernoch down und am besten ihn direkt per e-mail fragen oder einfach mal hier reinstellen. Ich bin auch gerade dabei das OpenMCP umzubauen (SMTP Versand eingebaut, etc) und habe auch schon viel aufgeräumt. Ich denke die Änderungen werden ihm eh nicht passen/schmecken, von daher werde ich die wohl nicht veröffentlichen. Aber ein paar Fragen kann ich bestimmt auch beantworten. Von daher probiere es doch einfach erst einmal hier. Grüße, Muetze1
Na gut, dann hier meine ersten Punkte: Ich brauche eigentlich nur UDP. Da ist mir in der system/net/ip.h aufgefallen, dass das Makro IS_ADDR_IN_MY_SUBNET anscheinend falsch ist. Original:
1 | #define IS_ADDR_IN_MY_SUBNET( ip, mask ) ( ( ip & ~mask ) == ( myIP & ~mask ) )
|
M. E. macht es aber wenig sinn, die Maske zu invertieren, da ich dann nur Nullen habe, die mir die interessante Information löschen. Meine Version:
1 | #define IS_ADDR_IN_MY_SUBNET( ip, mask ) ( ( ip & mask ) == ( myIP & mask ) )
|
Damit lande ich in system/net/udp.c dann in der Funktion UDP_RegisterSocket auch im richtigen 'if then elseif' Zweig. In der gleichen Funktion wird dann aber GetIP2MAC aus system/net/arp.c aufgerufen, in der hängen bleibt. Und hier habe ich noch nicht herausgefunden wo. Ich weiß, dass der Countdown bei 100 stehen bleibt, oder die Schleife nicht weiter durchlaufen wird. Und, ich bin ziemlich sicher, dass er in keiner If Schleife stecken bleibt. µC ist n 1284P und ich verwende Eclipse unter Linux mit dem avr-gcc. Meine Befürchtung ist, dass die Interruptbearbeitung aus ist, und deswegen der Countdown nicht zählen kann. Aber, das muss ich noch verifizieren. Eine durch den timer getriggerte Funktion, die was ganz anderes macht, hängt nämlich auch. Es tut sich gar nichts mehr. Vielleicht hat ja jemand von Euch ne Idee. Vielen Dank, Marco PS: Was wäre denn tatsächlich mal mit der Idee, das ganze in Github o.a. zu halten? Dort gibt es Bug-Tracker etc.
Marco K. schrieb: > M. E. macht es aber wenig sinn, die Maske zu invertieren, da ich dann > nur Nullen habe, die mir die interessante Information löschen. Sehe ich auch so. 255.255.255.0 wird durch das Makro IPDOT zu 0xFFFFFF00. Zum Isolieren des Netzanteils ist (ip & mask) also richtig. Grüße Stefan
Hallo nochmal, OK, an dem Hänger war ich schuld. Ich habe das Senden des UDP aus einer Funktion aufgerufen, die von einer Interruptroutine aufgerufen wird. Damit ist natürlich die Interruptbearbeitung nicht aktiv. Viele Grüße, Marco
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.