Hallo, ich habe es geschafft den TCP/IP Stack von Microchip in Betrieb zu nehmen. Um eine Verbindung zwischen LAbview und dem PIC32 aufbauen brauche ich eine feste IP und einen festen PORT. Die feste IP habe ich aber der PORT ist mir nicht bekannt. Hat jemand schonmal in irgendeiner Weise eine Verbindung aufgebaut von Labview zum PIC32? Ich will einfach nur einen String an eine feste IP+Port verschicken. Diese will ich mit dem PIC aus dem Buffer lesen. Jemand Erfahrungen?? Ich brauche eine kleine Starthilfe....
Hat keiner einen Tipp...stehe gerade auf dem Schlauch
Suche Dir einen beliebigen Port aus, der auf Deinem PIC32 noch frei ist. Die Portnummer ist eine 16 Bit Zahl, die lokal auf dem Host einzigartig sein muss, dh keine zwei Sockets können einen gemeinsamen Port benutzten. Weitere Bedingungen gibts nicht. fchk
Ich komme nicht weiter mit meinem Problem. Ich habe es nicht geschafft eine einfache Kommunikation Zwischen Labview und dem PIC32 herzustellen. Ich bin in der Lage auf eine Bestimmte IP und Portnummer Strings zu schicken. Ich weiß aber nicht wo ich im PIC sehen kann ob die Daten angekommen sind. Ich weiß nicht in welchen Buffer es geschrieben wird. Ich benutzte MPLAB 8.63 den neusten C32-Compiler und den Microchip Solutions v2010-10-19 TCP Stack der Code ist für mich als Anfänger zu kompliziert und ich habe da noch nicht den richtigen Faden an dem ich mich orientieren kann. Habe die Webseminare von Microchip mitgemacht bezüglich Ethernet. Diese erklären nur, wie man eine Website aufbauen kann und diese verändert. Das bekomme ich hin, aber ich soll/muss ohne Webserver arbeiten.. Freue mich über jede HILFE
Ich möchte einfach einen Beliebigen String verschicken. Diesen möchte ich mit dem PIC32 abfragen über TCP...
Rüdiger schrieb:
Schau Dir in der Demp App GenericTCPServer.c an - oder wenn Du damit
nicht klar kommst, BerkeleyTCPServer.c. Das ist das passende Gerüst für
Deine Anwendung. Natürlich musst Du den in der TCPConfig.h per #define
aktivieren.
fchk
Falls Du vom uP zum Computer einen String übertragen willst, musst Du am uC einen Server starten. Schau einmal in LabVIEW zwei Dateien an: C:\Program Files\National Instruments\LabVIEW 2009\examples\comm\TCP und da Simple Data Server.vi Simple Data Client.vi Damit kannst Du am eigenen Rechner der Server starten und mit dem Client empfangen. Besonderheit: Die ersten 4 Bytes stellen die Stringlänge dar. Das musst Du am Mikrochip auch so machen.
Ich finde das ist echt super nett von euch:-) Danke für die Antworten Jakob schrieb: > Schau einmal in LabVIEW zwei Dateien an: > > C:\Program Files\National Instruments\LabVIEW 2009\examples\comm\TCP > > und da > > Simple Data Server.vi > Simple Data Client.vi Ich will von Labview aus Strings übertragen. Dazu muss ich dann auf Labview das Simple Data Server.vi starten. Und den PIC32 muss ich als Clienten einstellen. Labview seitig ist alles klar soweit.. Jetzt muss ich den PIC32 noch einrichten. Frank K. schrieb: > Schau Dir in der Demp App GenericTCPServer.c an - oder wenn Du damit > nicht klar kommst, BerkeleyTCPServer.c. Das ist das passende Gerüst für > Deine Anwendung. Natürlich musst Du den in der TCPConfig.h per #define > aktivieren. Ich schaue mir gerade den GenericTCPServer.c an und den BerkeleyTCPServer.c
Frank K. schrieb: > Natürlich musst Du den in der TCPConfig.h per #define > aktivieren. ich habe am Anfang von TCPConfig.h folgende Änderung vorgenommen: #define BerkeleyTCPServer.c ist das so richtig`?
Rüdiger schrieb: > Frank K. schrieb: >> Natürlich musst Du den in der TCPConfig.h per #define >> aktivieren. > > ich habe am Anfang von TCPConfig.h > folgende Änderung vorgenommen: > > #define BerkeleyTCPServer.c > > ist das so richtig`? Wo hast Du das gelesen? Hast Du Dir das GenericTCPServer.c KOMPLETT angeschaut? Hast Du verstanden, wofür diese Zeile ziemlich am Anfang des Codes da ist? #if defined(STACK_USE_GENERIC_TCP_SERVER_EXAMPLE) Kleiner Tipp: Schau mal, wo dieses Symbol noch verwendet wird... fchk
im MainDemo.c ist folgende Definition: #if defined(STACK_USE_GENERIC_TCP_SERVER_EXAMPLE) GenericTCPServer(); #endif und in der Datei TCPip.h ist die Definition nochmal #if defined(STACK_USE_GENERIC_TCP_SERVER_EXAMPLE) || auch hier habe ich die Definition nochmal gefunden. TCPIPConfig PIC32 Internal Ethernet.h Dann habe ich noch in der Bemerkung vom Stack Version gefunden: 28.Added GenericTCPServer.c example file to complement GenericTCPClient.c. The server is enabled by defining TCPIPConfig PIC32 Internal Ethernet.h in TCPIPConfig.h. Ich muss also in der TCPIPConfig.h TCPIPConfig PIC32 Internal Ethernet.h aktivieren..
OK also in der Demp App sind verschiedene Beispiele, wie BerkeleyTCPClientDemo, BerkeleyTCPServerDemo, GenericTCPServer, etc. Ich muss dem Pic32 sagen, welches von diesen Examples ich verwenden will. In meinem Fall muss ich GenericTCPServer aktivieren..
Rüdiger schrieb: > OK also in der Demp App sind verschiedene Beispiele, wie > BerkeleyTCPClientDemo, BerkeleyTCPServerDemo, GenericTCPServer, etc. > > Ich muss dem Pic32 sagen, welches von diesen Examples ich verwenden > will. In meinem Fall muss ich GenericTCPServer aktivieren.. genau
Ich glaube ich habe es gefunden.. in der Datei TCPIPConfig PIC32 Internal Ethernet.h mache ich die Definitionen. Alles, was ich für mein Projekt nicht brauche, schmeiße ich einfach aus der TCPIPConfig PIC32 Internal Ethernet.h raus (Kommentarzeile aus dem #define machen). Kann mich bitte jemand korrigieren, falls ich etwas vergesse!!?? Ich denke ich brauche nur: #define STACK_USE_ICMP_SERVER // Ping query and response capability #define STACK_USE_ICMP_CLIENT // Ping transmission capability #define STACK_USE_GENERIC_TCP_SERVER_EXAMPLE #define STACK_USE_DNS #define STACK_USE_NBNS OK. Es hat bisschen lange gedauert:-(( Frank kannst du mir bitte, sagen wie ich jetzt weiter vorgehe??
Der "Michrochip Ethernet Device Discoverer" findet den PIC32 nicht?! Muss ich meinem PC eine bestimmte IP vorgeben? Bisher hat sich der PIC die IP Adresse vom DHCP geholt. Muss ich den auch aktivieren? Habe #define STACK_USE_AUTO_IP // Dynamic link-layer IP address automatic configuration protocol aktiviert, aber das hat nicht geholfen..
Rüdiger schrieb: > Der "Michrochip Ethernet Device Discoverer" findet den PIC32 nicht?! > Muss ich meinem PC eine bestimmte IP vorgeben? > Bisher hat sich der PIC die IP Adresse vom DHCP geholt. Muss ich den > auch aktivieren? Wenn Du weiterhin DHCP nutzen willst, musst Du wohl oder übel auch das entsprechende Protokoll hineinnehmen. > > Habe > #define STACK_USE_AUTO_IP // Dynamic link-layer IP address automatic > configuration protocol > aktiviert, aber das hat nicht geholfen.. Klar. Das wars nicht. #define STACK_USE_ANNOUNCE // Microchip Embedded Ethernet Device Discoverer server/client ist das, was Du suchst. fchk
Hallo nochmal, ich habe das übersehen mit #define STACK_USE_ANNOUNCE // Microchip Embedded Ethernet Device Discoverer server/client Hatte mich gewundert, warum ich eine Verbindung aufbauen kann ohne, dass es im Discoverer gezeigt wird. Ich habe nun den GenericTCPServer eingebaut. Bin gerade am suchen wie ich einen einfachen String mit dem PIC verschicke..
Ich habe alles genauso gemacht wie in der Beschreibung "how to run the Demo" vom GenericTCPServer. Im Dos-Fenster gebe ich ein Telnet 169.254.1.1 9760 und es öffnet sich ein Telnet Fenster. Hier gebe ich Strings ein und empfange die Echos.. Die Übertragung funktioniert immer noch nicht:( Wie verschicke ich denn einen String? Ich nehme an im GenericTCOServer.c PORT ist bekannt: Default 9760 IP ist bekannt: Aber wie verschicke ich etwas??? Bitte um Hilfe
Florian Hinck schrieb: > Ich habe alles genauso gemacht wie in der Beschreibung "how to run the > Demo" vom GenericTCPServer. > > Im Dos-Fenster gebe ich ein Telnet 169.254.1.1 9760 und es öffnet sich > ein Telnet Fenster. > Hier gebe ich Strings ein und empfange die Echos.. genau. Funktioniert also. > Die Übertragung funktioniert immer noch nicht:( > > Wie verschicke ich denn einen String? > Ich nehme an im GenericTCOServer.c Genau. > Aber wie verschicke ich etwas??? Die API-Beschreibung befindet sich in der Datei TCP Stack Help.chm Selber lesen macht schlau. Versuche, die Vorgänge im Demo TCP Server zu verstehen und sie an Deine Bedürfnisse anzupassen. fchk
Ich danke dir Vielmals Frank!! Frank K. schrieb: > Die API-Beschreibung befindet sich in der Datei TCP Stack Help.chm Ich nutze das TCP Stack Help File. Unter Demo Information Available Demos Generic TCP Server steht genau das selbe wie auch in der Beschreibung von GenericTCPServer.c. Gibt es im Stack help noch mehr infos, die ich übersehen habe???
Florian Hinck schrieb: > Gibt es im Stack help noch mehr infos, die ich übersehen habe??? ja. z.B. die TCP-Funktionen (TCPPutArray(), TCPPutString() und Konsorten). Wie gesagt: versuche, anhand des Quellcodes und der API-Funktionen die Funktionsweise des Generic TCP Servers zu verstehen, notfalls auch mit Breakpoints und Debugausgaben auf die serielle Schnittstelle. Da musst Du jetzt in Eigenregie durch, sonst lernst Du nix. fchk
Das ist zwar gemein:-( Aber du hast recht. Ich lese mich gerade durch das Stack Help File. Hoffe ich bekomme es hin
Ich habe es geschafft per Labview einen String zu verschicken und mit dem PIC auszulesen:-)) Das ist schon erfreulich...Danke dir vielmals Frank Jedoch habe ich es bislang nicht hingebekommen einen String "Test" zu verschicken. Da muss ich heute Abend nochmal gucken. Ich habe mir mit den Breakpoints die einzelnen Variablen angesehen und weiß nun einigermaßen, wie das Programm aufgebaut ist. Jedoch ist mir noch nicht bekannt, woher MPLAB die Werte für die einzelnen Variablen hernimmt.
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.