C++Guns – RoboBlog blogging the bot

31.03.2009

TCP Verbindung beenden

Filed under: Allgemein — Thomas @ 22:03

Es sollte eigentlich nicht vorkommen, aber dennoch passiert es, dass sich TCP Verbindungen nicht abbauen, wenn die Verbindung eigentlich beendet wurde. Das passiert z.B. wenn man den Drucker ausschaltet, wenn er gerade Daten empfängt. Diese tote TCP Verbindung kann man sich mit netstat -ntpa anzeigen lassen

tcp 0 0 192.168.0.103:33419 192.168.0.200:631 VERBUNDEN -

Im letzten Feld steht normal die PID und der Name des Programmes. Die Verbindung würde sich beenden, wenn Daten durch sie geschickt werden. Da der Remote Rechner aber nicht läuft, würde kein Antwortpaket zurück kommen welches die Verbindung beendet.

Nun möchte man die Verbindung aber beenden, ohne neu zu starten. Unter BSD gibt es das Programm tcpdrop, welches Verbindungen ganz einfach beendet. Aber anscheinend hat es niemand nach Linux portiert. Also behelfen wir uns anders. Mit netstat -nptae kann man sich die inode der Verbindung anzeigen lassen

tcp 0 0 192.168.0.103:33419 192.168.0.200:ipp VERBUNDEN root 252919 -

Die inode ist im vorletzten Feld gelistet. Ein einfaches lsof | grep 252919 liefert auch endlich die passende PID

ipp 27904 root 6u IPv4 252919 0t0 TCP 192.168.0.103:33419->192.168.0.200:ipp (ESTABLISHED)

Die PID steht an zweiter Stelle. Nun kann man den Process auch mit kill 27904 beenden. netstat bestätigt dies mit einem FIN_WAIT1

tcp 0 1 192.168.0.103:33419 192.168.0.200:631 FIN_WAIT1 0 0 -

Und nach ein paar Minuten ist sie dann auch ganz weg.

07.03.2009

PIV Tag 14

Filed under: Allgemein — Thomas @ 14:03

Heute hab ich mich nur diesem Wasserradprojekt gewindmet. Am Morgen noch schnell die Platine zusammen gelötet und das erste Testprogramm aufgespielt. Natürlich funktionierte erst einmal garnichts. Am meisten Probleme hatte ich mit dem USART. Die Werkseinstellung des Mikrocontrollers ist ein 8MHz int. RC OSzi mit einem Teiler von 8, ergibt 1MHz. So hatte ich es eingestellt, es kamen dennoch nur wilde Zeichen in der Konsole an.

Die Fusebits konnte ich auch nicht umstellen. Irgendwann kam ich dann mal auf die Idee, ein Update für meinem Programmer zu besorgen. Danach konnt ich die Fusebits auch einstellen. Und schon funktionierte USART.

Das zweite Problem war, dass ich vergessen hatte den Pin "Test" des FD232 Chips an Minus anzulöten. Ist er nämlich unbeschaltet, reagiert der Chip kein Stück. Wie schnell man doch solche Kleinigkeiten übersieht. :(

01.03.2009

Digitale Video Kamera und wie sie nicht funktioniert

Filed under: Allgemein — Thomas @ 14:03

Im Museum gibt es derzeit eine Sonderausstellung über meinen Ur-Opa zu bewundern. Gestern, bei der Eröffnung habe ich versucht alles zu filmen. Zugegeben, ich habe etwas gebraucht um alle Knöpfe an der Kamera zu finden und wie man was wo tun muss, damit auch das ext. Micro funktioniert, aber letztendlich ist wohl die neue Kasette kaputt. Beim Abspielen kommen dicke Streifen in das Bild und sie gehen auch nicht wieder weg. Auch wenn ich es auf den PC per Firewire überspiele, sind sie noch da. Nehme ich hingehen direkt von Kamera auf PC auf, sind sie nicht da.

Das wäre nur halb so schlimm, wenn der Sound da wäre. Aber kaum hält mein Vater seine Rede, ist die Klimaanlage an und man versteht garnichts mehr. Noch dazu ist der Sound total abgehackt. Nun, daran kann man leider nichts mehr ändern.

Aber ich wolte in diesem Aktikel wieder etwas über Windows lästern. Letzte Nacht bin ich auf die Idee gekommen, dass der DV Ausgang an der Kamera gleich der Firewire Eingang am PC ist. Und nachdem ich es auch nach ein paar Minuten geschafft hatte, dieses doofe Kabel in die Buchse zu stecken, viel mir auf, dass irgendwie der Treiber für die Kamera nicht im Kernel ist. Nun, das ist bei einer abgespecken Kernel auch zu erwarten. Ich hab mir gedacht, es ist Mitternacht, ich habe keine Lust auf Bastelleien, bootest doch mal schnell in Windows und ziehst das Video rüber.

Mit dem Moviemaker kann man ja Videos von einer Kamera überspielen. Aber da ich keine Lus auf dieses WMV Format hatte, speicherte ich alle im RAW Format ab. Platz ist auf der ext. Festplatte ja genug. Leider überspielt er das Video in Realzeit. Das heisst eine Stunde Film, eine Stunde Überspielzeit.

Als die ersten zwei GB überspielt waren, viel mir ein, dass FAT32 ja doch irgendwie eine Dategrößenbeschränkung hat. (Warum nehm ich nicht NTFS? Weils stinkt. Basta!). Und beim vierten GB brach er auch ab. Ok halb so wild. Speichere ich es eben komprimiert ab. Nach weitern 15min war auf einmal der Akku leer. DANACH hab ich auch herausgefunden, dass man die Kamera an das Ladegerät anschliessen kann, so dass sie auch gleichzeitig im Betrieb ist.

Der dritte Versuch gestartet. Und mir war soooo langweilig. Da zockt man doch gerne mal ein kleines Spielchen. Spiel gestartet, bam Fehler. Die Aufnahme brach ab, weil die Bildschirmauflösung geändert wurde. Ich habe zwar keine Ahung was Firewire mit der Auflösung zu tun hat, aber bitte.

Der vierte Versuch. Nach einer elend langen Stunde war das Video endlich auf der Platte. Im Movie Maker sah die Vorschau des Bildes gut aus, spielte ich es aber im Mediaplayer ab, stimmen die Farben nicht mehr. Autsch ich geh pennen.

Am nächsten Morgen das Video nochmal irgendwie mit einem anderen Format codiert und sieht da, nach 40min geht es auch endlich. Mal ehrlich, ich wäre lieber meinen Linux treu geblieben und hätte die Zeit investiert den Treiber zu installieren. Dann hätte ich das komplette Video einmal im RAW Format rüber gezogen. Hätte keine Probleme mit Dateigrößenbeschränkungen gehabt, hatte keinen leeren Akku gehabt. Auch das ändern der Auflösung hätte keinen Fehler verursacht. Ich hätte kein beschränktes Windows Media Format gehabt und auch keine falschen Farben im Film.

Hätte, hätte, hätte...

Powered by WordPress