Jump to content

Recommended Posts

Geschrieben

Also, ne Fehlermeldung bekomme ich bei ihm nicht, aber Folgendes kommt in der Konsole: 

"CPP-Konsole-TF.exe": "C:\Users\Daniel\Desktop\CPP-Konsole-TF\Debug\CPP-Konsole-TF.exe" geladen, Symbole wurden geladen.
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\ws2_32.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen.
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\rpcrt4.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\nsi.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\sspicli.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\cryptbase.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\sechost.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\bcryptprimitives.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\mswsock.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\nlaapi.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\msvcrt.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\NapiNSP.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\pnrpnsp.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\dnsapi.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\winrnr.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Program Files (x86)\Bonjour\mdnsNSP.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\IPHLPAPI.DLL" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\winnsi.dll" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\FWPUCLNT.DLL" geladen, Cannot find or open the PDB file
"CPP-Konsole-TF.exe": "C:\Windows\SysWOW64\rasadhlp.dll" geladen, Cannot find or open the PDB file
Der Thread 'Win32-Thread' (0x878) hat mit Code 1 (0x1) geendet.
Der Thread 'Win32-Thread' (0x1118) hat mit Code 1 (0x1) geendet.
Der Thread 'Win32-Thread' (0x1060) hat mit Code 1 (0x1) geendet.
Das Programm "[372] CPP-Konsole-TF.exe: Systemeigen" wurde mit Code 1 (0x1) beendet.

 

Was soll das Programm eigentlich machen?

Geschrieben

Das Programm verbindet sich mit einem Master per IP-Adresse und schaltet dann ein Dual-Relay einfach mehrfach hin und her.

 

Welches Betriebssystem hast du eigentlich? Die Meldungen kannst du getrost ignorieren, das sind nur Warnungen, da du natürlich die System-DLL's nicht debuggen kannst, da dir dafür ein paar Dateien fehlen (die Microsoft sicherlich auch nicht unbedingt einfach so rasurückt).

 

Das Programm sollte dann also eigentlich korrekt ausgeführt werden. Hast du mal versucht einen Breakpoint zu setzen und dann einfach Schritt für Schritt durch das Programm zu gehen?

 

Kannst du deine TF-Sachen eigentlich über den Brickviewer sehen und ansprechen?

 

Schreib mal bitte, wie dein TF-Aufbau aussieht, wie willst du die Verbindung zu TF machen, verbindest du den Rechner per USB zum Master oder hast du ne WIFI-Extension? Welches Bricklet hast du am Master angeschlossen und welche ID hat das Bricklet? Wenn du mir die Infos geben kannst, schreibe ich dir ein Programm, was genau darauf abgestimmt ist und auch funktionieren sollte.

 

Gruß

rif

Geschrieben

Aaaalso:

 

Ich benutze Windows 8 64-Bit

Ich habe nur den Masterbrick (UID: ayURipYr5od) mit dem USB Kabel angeschlossen

Im Brickviewer wird er erkannt, jedoch wird keine Stack Voltage oder Stack Current angezeigt, auch wenn ich noch z.B. nen anderen Masterbrick oder nen Servobrick anschließe.

 

Brauchst du mehr infos??

Und noch ne Bitte: Wenn is möglich ist, kannst du die example_stack_status einbinden?

Wäre echt nett...

 

Und was ist ein Dual-Relay

Geschrieben

Das hier ist ein Dual-Relay Bricklet:

https://shop.tinkerforge.com/bricklets/dual-relay-bricklet.html

 

Hast du nur den Master oder auch Bricklets, die du daran anschließen kannst?

 

Das die Stack-Voltage und Current nicht angezeigt werden, liegt daran, dass du das USB-Kabel angeschlossen hast. Dort werden meines Wissens nur Werte angezeigt, wenn es ein Stack ist (mehrere Bricks) und dieser per Step-Down-Powersupply versorgt wird.

 

Wenn du ein Bricklet hast, dann schließe das mal an und gib mir den Namen und die UID des Bricklets. Ich mach dir dann ein Programm fertig, das läuft. Falls du kein Bricklet hast, bekomme ich auch irgendwas vom Master ausgelesen. Ein Bricklet wäre aber wesentlich interessanter.

Geschrieben

Falls das noch hilft: Die Fehlermeldungen aus deinem Log (nicht aufgelöstes externes Symbol) deuten für mich darauf hin, dass die *.c Dateien der IPConnection nicht mit kompiliert wurden, sondern nur die *.h Dateien. Dann kennt er die Methoden (weil die in den h-Dateien deklariert wurden), kennt aber keine Implementierung (die normalerweise in den zugehörigen c-Dateien liegt).

Geschrieben

So,

jetzt ein Projekt, was genau mit deinen UID's erstellt ist. Sollte also theoretisch auf Anhieb funktionieren.

 

Als erstes werden die USB-Voltage und Temperatur vom Master gelesen, danach wird einmal die Entfernung des Distance_IR gelesen. Als letztes wird ein Callback registriert, der die die Werte des Distance_IR ausspucken sollte, bis du eine Eingabe an der Konsole machst, dann wird das Programm beendet.

 

CPP-Konsole-TF.zip

Geschrieben

Hm... bei mir öffnet sich nur das Konsolenfenster, welches sich nach ein paar Sekunden wieder schließt...

 

In der Konsole von Visual C++ steht dann (Glaube ich) "Das Programm wurde mit 0x100 beendet". Bin mir grad nich sicher, kann aber grade nicht an den richtigen PC ^^

Geschrieben

Setz mal im Programm einen Breakpoint ganz am Anfang und geh dann das Programm Schritt für Schritt durch. Dann siehst du wenigstens an welcher Stelle das Programm einen Abgang macht. Schreib dann mal hier rein, an welcher Stelle der Fehler genau auftaucht.

Geschrieben

Ok,

du hast noch eine Menge Arbeit vor dir ;)

 

Einen Breakpoint setzt du mit F9. Du musst nur an die entsprechende Stelle im Quelltext klicken und dann F9 drücken.

Wenn du das Programm dann startest, hält es an der Stelle an und du kannst mit F10 Schritt für Schritt weitergehen.

Wenn du den Mauszeiger über die Variablen hältst, wird dir auch noch angezeigt, wie der Inhalt der Variablen ist.

 

Hier nochmal ein Youtube Video bezgl. Debugging. Ist zwar auf Englisch, aber meiner Meinung nach recht verständlich.

 

Den Breakpoint in dem Projekt setzt du auf dieser Zeile:

IPConnection ipcon;

 

Von da aus gehst du dann mit F10 weiter, bis das Programm mit dem Fehler beendet. Du solltest dabei erkennen können, bei welchem Aufruf der Fehler kommt.

 

Ich empfehle dir dringend, dich über Visual Studio zu informieren, wie es generell funktioniert, wie man Projekte richtig anlegt, wie man richtig debugged etc.

Ich würde dir evtl. auch raten mit einer etwas einfacheren Sprache anzufangen (z.B. C#). C++ ist als Newbie nicht so einfach zu händeln, da man eine Menge berücksichtigen muss. C# nimmt einem diese Sachen relativ gut ab und man kann sich erstmal darum kümmern, das eigentliche Programmieren zu verstehen und zu lernen. Wenn du erstmal eine Sprache kannst, ist es nicht mehr schwer, sich in andere einzuarbeiten. Nur mal so als Hinweis.

 

Ich hoffe, dass du jetzt langsam mit dem Projekt zum Erfolg kommst und ein erstes lauffähiges Programm bekommst!

 

Gruß

rif

 

Geschrieben

Hm... offenbar ist der IR Sensor defekt...

In der sich nur kurz öffnenden Konsole lese ich "Could not connect to Bricklet"

Im Brickviewer, wird der IR-Sensor allerdings erkannt...

Ich habe jetzt den zweiten ausprobiert, auch die ID brav korrigiert, und siehe da, es funktioniert.

 

Ein dickes danke an alle, die mir so wunderbar geholfen haben, bzw. es versucht haben.

 

DANKE

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...