<< zurück | Zur Übersicht | weiter >> |
Das Gurkoskop
|
||
|
||
|
1. Warum? |
||
Ganz einfach: Weil es das nicht zu kaufen gibt!
Deswegen muss man entweder a.) Kompromisse machen oder b.) es
selber bauen.
|
2. Erste Anforderungen und Lösungen |
||
Das soll also
Am drängendsten war natürlich die Displayfrage. Nun bin ich ja als 'Displayman' bekannt, und so schlummern in
meinem Museum verschiedenste Anzeigeteile aller Art, die auf eine
nützliche Wiederverwendung hoffen. Ich erinnerte mich bei diesen
Überlegungen schnell an eine besondere Art der Anzeige, die ich, dank
der aufopfernden Sammeltätigkeit einiger
wohlwollender&verständnisvoller Kollegen, in rauhen Mengen
vorrätig habe, und mit der ich immer schon mal was machen wollte. |
3. Die Displaylösung |
||
Heißt: hp 5082-73xxMan möge mir diesen Exkurs verzeihen, aber das ist wirklich Technik, die begeistert. Zumindest für die damalige Zeit. Aber lasst euch von folgender Animation verzaubern:
Nein, das ist keine billige 7-Segmentanzeige! Die Ecken der Ziffern werden hübsch abgerundet, damit es nicht so doof aussieht! 20 kleine Leuchtdioden sind auf ein Keramiksubstrat gebondet, dazu ein kleiner Steuerchip, der sich um alles kümmert! Man braucht nur 4 Bit an Daten reintun, mit der 'Latch' Leitung zu wackeln, dann speichert dieser kleine Kerl die Daten und macht daraus schöne Ziffern. Die Teile die ich habe, machen sogar aus den Tetraden (vulgo: Nibbles) A bis F tatsächlich A bis F! (Muss ich nochmal in die Animation aufnehmen...) Die 5082-7359, von der das Bild oben stammt, hat ein klares Gehäuse. Sieht cool aus, ist aber schwer abzulesen. Deswegen habe ich die 5082-7340 für das Gurkoskop genommen, die gleiche megageile 'Technologie' (vulgo: Technik), aber in einem durchgefärbtem Gehäuse, um den Kontrast zu erhöhen: (Das folgende Bild wurde am Oregenool-Gurkoskop aufgenommen und durch wundersame Tricks der Fotoanimationsbearbeitung zu einem kleinen animierten GIF zusammengefrickelt. Ein Stativ ist dabei eine unabdingbare Voraussetzung, ebenso eine rein manuelle Einstellmöglichkeit an der Kamera)
Das früheste Datenblatt von diesen Prachtstücken, das ich besitze, datiert auf das Jahr 1976.
|
4. Verwegenes Systemdesign |
||
So weit war der Plan also schon ganz gut, allerdings... Bin ich ja auch oft auf Reisen... Und da könnte ich natürlich meine Liebste daheim anrufen, damit sie mir die Zahlen vom Gurkoskop voläse. Na, die würde mir schön was husten, hat sie doch insgesamt nur ein mäßiges Interesse an meinen Zahlenspielereien! Ich könnte natürlich auch einen VNC-Zugang auf den Gurki konfigurieren, aber VNC aus dem Internet zugänglich??? Ich kenne da zwar keine Lücken, aber jemand anderes höchstwahrscheinlich schon... Außerdem sollte man niemals mehr Einfall(t)store öffnen als unbedingt nötig. Und ich will Gurki ja garnicht 'remoteadministrieren', sondern will nur wissen, wie die Dinge stehen, um meiner Liebsten im allergrößten Notfall zu sagen: "Zieh' mal den Stecker aus der Drahtkiste unter dem Schreibtisch!!!" und die absehbare Gegenfrage "Welchen?" mit "ALLE!" beantworten können. Und nebenbei sind in Saudi-Barbarien sowieso alle Ports außer 80 schon mal grundsätzlich gesperrt. Eine Art 'wirtuelles Gurkoskop' wäre nicht schlecht. So eine Art Webcam vor dem Gurkoskop, über das Internet abrufbar... Könnte man alles fertig kaufen! Was für ne blöde Idee!!! Einen Videostream um genau 9 Bytes (pro Sekunde, wenn es hoch kommt) an Daten anzuzeigen. Es wäre zwar unglaublich modern, und man könnte sicher noch einen Button 'Gefällt mir', wo dann jeder Hirni auf der ganzen Welt seine überaus irrelevante Meinung zu Gurkis Wohlbefinden abgeben könnte, einbauen! Wow! Voll cool krass modern, Web 2.1! Was für eine Scheiße... Ich will doch nur das Gurkoskop sehen. Der Gurkoserver, in der mir vertrauten zeitlosen Programmiersprache C++ (und komme mir keiner mit Plattformabhängigkeit! Ich will den sehen, der in Java eine plattformunabhängige CPU-Temperaturanzeige realisiert... siehe dazu Kapitel 5.) sammelt die Daten und schiebt sie über eine möglichst einfache Schnittstelle an das zu bastelnde Gurkoskop. Ausserdem werden die Daten in Echtzeit 'irgendwie' in den Apache
getan, von wo sie dann an irgendeinen Browser 'geservt' werden, der dann
dem interessiertem Betrachter eine (weitgehend) naturgetreue Emulation
des Gurkoskopes anzeigt. Am besten natürlich auch mit den jeweils
aktuellen Daten...
|
5. Vor den Test haben die Götter die Testumgebung gesetztOder: Wie Baku nach vielen Jahren mal wieder auf I/O-Ports am PC zugriff...
|
||
Da ich einige Basteltage Zeit hatte, bevor das Gurkoskop begonnen
werden konnte (Ich musste auf ein Teil warten, das ich *kaufen* musste!
Buäh! Weil der Bestand dieses genialen kleinen Käfers, von dem ich
normalerweise immer einige in meinen Bastelschachteln habe, bei einem
vorigen Projekt auf 0 gesunken war) beschloss ich, als erstes mal mit
dem Gurkoserver anzufangen, weil ich den ohnehin bräuchte, und er
könnte schon mal Testdaten liefern. Also keine Testumgebung, sondern
das Oregenool, in einer für die Testdatengenerierung abgespeckten
Version. Die Schnittstelle zum Gurkoskop ließ ich erstmal beiseite, denn von einer Windoofs-Applikation über die serielle Schnittstelle mit einem ATMega zu kommunizieren habe ich schon gefühlte tausendmal gemacht, und dort erwartete ich nichts, was vorab zu testen wäre. Die anzuzeigenden Daten zu erheben war ein Klacks, alles schon mal irgendwie irgendwo gemacht. Als einzige wirkliche Überraschung blieb: - TADAA - Die CPU-Temperatur!Wie lustig ist das denn? Normalerweise findet man zu solch banalen
Dingen Informationen im Internet zuhauf. Bei der Temperatur scheint das
allerdings anders zu sein... Manche sagen, man könne sie manchmal vom
BIOS bekommen, andere verweisen auf die 'Windows Management
Instrumentation WMI', das geht aber alles nur manchmal und von Mainboard
zu Mainboard unterschiedlich, und um mit dem WMI zu arbeiten, muß man
sich erst das entsprechende SDK runterladen und installieren. Nächte
voller Arbeit, dabei will ich doch nur die Temperatur anzeigen! Höhö! Interessant ist an dieser Stelle, daß man beim alten VC6
noch Inline-Assembler bemühen musste, um auf Ports zuzugreifen, seit
VS2005 aber die Funktionen 'inX' und 'outX' wieder eingeführt wurden,
die mich in ihrer Syntax sehr schwer an das gute alte 'inportX' von
TurboC unter DOS erinnern. So wurde dann aus all dem Gehühner: //ITE (Gurki )__outbyte(0xa15,0x29); //Select Register SYSTIN in Bank 0 b = __inbyte( 0xa16 ); m_DataCPUTemp = b; Und: //Winbond CPU temperature__outbyte(0x295,0x4e); //Select BANKSEL banksel = __inbyte( 0x296 ); //Read Bankselect b = banksel &= 0xf8; b |= 0x01; //Select bank 1 __outbyte(0x295,0x4e); //Select BANKSEL __outbyte(0x296,b); //Select Bank 1 //Read CPUTIN __outbyte(0x295,0x50); //Select CPUTIN in Bank 1 b = __inbyte( 0x296 ); //Read CPUTIN m_DataCPUTemp = b; Und der Gurkoserver zeigte die richtigen Werte an, bei beiden Rechnern. Oder zumindest die selben, die auch SpeedFan und das Herstellertool anzeigen: Die Anzahl der Files stimmt auch (Unterverzeichnisse werden als 1
File gezählt, Systemdateien nicht). Das sind dann sogenannte 'Change Requests', wenn man während
eines Designs Ideen hat, was man NOCH alles damit machen könnte. Aber
das ist ja reine Bastelei! Völlig unprofessionell! Geht ja gar nicht!
Wer soll denn das bezahlen! Und nein, ich habe NICHT das große Rätsel der CPU-Temperaturmessung gelöst. Aber ich kann Gurkis Temperatur messen. DAS war die Aufgabe, und sie zu lösen hat einen Abend gedauert. OK, die Dokumentation kostet mich jetzt noch einen Abend, aber funktionieren täte es auch ohne...
|
6. Ajax der Große oder ein Scheuermittel |
||
So weit war der Plan also schon ganz gut, die weitere Wartezeit habe
ich mir mit Internetspielereien vertrieben. Ziel war es, die vom
Gurkoserver ermittelten Werte anzuzeigen. Kein Thema, PHP und variable
Bildchen anzuzeigen habe ich schon mal gemacht. Weiterhin sollten diese
Bildchen auch einigermassen, d.h. der Aufgabe entsprechend, aktuell sein
und automatisch aktualisiert werden. Und da ging das los...
AJAX erlaubt es JavaScript, irgendwann eine Datei vom Server zu holen. Wenn der Benutzer was gemacht hat, oder wenn z.B. eine Sekunde rum ist. Bevorzugt wird eine XML-Datei vom Server gezogen, weil es für XML 1A-Parser in Javascript gibt. Der Gurkoserver schreibt in ein XML-File, das dann jede Sekunde von den Clients angezeigt wird. und in das XML-File geschrieben wird: <gurki>
|
7.Genug der Theorie! Wirf an das Brateisen! |
||
Platz ist auf einer Europakarte, also erstmal die Infrastruktur
löten. Ach so... Den Schaltplan hatte ich natürlich schon weitestgehend vorher gemalt, aber nachdem die Eckdaten gesetzt waren, war das auch kein Thema mehr. Beim Zusammendröseln der ganzen Drähte und kleinen Käfer (von denen einige sogar auf dem Rücken liegen) ist ein Schaltplan eine große Hilfe, erspart viel Verdruss und Grübelei. In meinem Alter weiß man auch zu schätzen, wenn man irgendwo was nachkucken kann und sich nicht alle Verbindungen merken muss... Der Schaltplan also: Der ATMega im TSOP war kein Thema, ich habe zwar auch noch welche
im DIP rumliegen, aber weil der FT232 sowieso die Dead-Bug-Technology (DBT)
erfordert, kann die Vorderseite den Displays und allem anderen
vorbehalten bleiben, was nach vorne muss. Ein Taster z.B., um das
Gurkoskop auszuschalten, wenn man schlafen möchte. Und ein LDR, der die
Helligkeit der Anzeigen an die Umgebungshelligkeit anpasst. Da zwang
sich die beim DisplayTester entwickelte Technik förmlich auf.
Lochraster mit schwarzer Pappe. Sieht auch nicht so schlecht aus. Die
schwarzen Fassungsstreifen habe ich gleich mitbestellt. Was ich nicht wusste, habe ich erstmal offen gelassen. Dann zuerst die einfachen Sachen aufgebraten und getestet: Und löppt, dat Mopped Den Mega8 mit 6-Pin Baku-ISP noch drauf: Erstes Testprogramm geflasht et voila:
Hinten schon mal vorverdrahten: Und dann die Schieberegister (man unendliche Porterweiterung) und den Rest reinhauen: Löt, Löt, Brat, Brat!
Manch einer wird sich fragen, wie man scheißnormale SO16-Gehäuse mit 50mil (1,27mm) Raster auf 100mil (2,54mm) Lochrasterplatten löten kann. Ist ganz einfach! Man muss nur die Lötaugen mit der kleinen Proxxon-Kreissägescheibe in der Mitte durchsägen, dann passt das wunderbar: Ein Taster wollte noch gefunden werden, aber nachdem das Thema Stromversorgung (siehe Kapitel 8) ausreichend gelöst war, konnte der vorsorglich für einen Schaltregler freigehaltene Platinenplatz auch verbraten werden: Endlich konnte ich mal den schwarzen Schurter-Knackfrosch zum Aufkleben benutzen, der schon seit vielen Jahren (samt passender Printbuchse!) in meiner Tasterkiste schlummerte: Keine Ahnung, wo ich den jemals herbekommen habe, aber die Anschlussbuchse passt aufs Lochraster und die Kabeldurchführung lässt sich mit Kalmring sein Enkel sein Zahnarztwerkzeug auch nach Mitternacht ganz ruhig ins Lochraster fräsen: Und auf der rechten Seite bildet er, zusammen mit den LEDs, ein hübsches optisches Gleichgewicht zur USB-Buchse und dem Kabel. Ja toll! Da sollte eigentlich ein richtiger Schalter hin! Ich
hatte den schon ausgesucht, mit einem roten Knebel! Aber der war SO
kacke auf Lochraster zu montieren, und sah an keiner Stelle auch nur
annähernd gut aus. So eine blöde Knackfroschtaste hat aber auch
Folgen: Selbst wenn sie den ganzen Displaystrom schalten könnte, dann
wäre das Display nur an, solange ich draufdrücke. Deswegen habe ich einen PMOS High-Side-Schalter eingebaut. Und den Schalter/Taster über einen Portpin abgefragt, der Rest
ist dann Software, man könnte sogar einen Bewegungsmelder anschliessen.
|
8. Stromversorgung |
||
1,2A nehmen die Anzeigen, gemessen unter Normalbedingungen. Das hatte
ich befürchtet. (Um ehrlich zu sein: Nach Lektüre des Datenblattes
hatte ich kaum anderes erwartet, aber die Hoffnung stirbt bekanntlich
zuletzt...)
Mein erster Entwurf hatte ja auch eine Hohlsteckerbuchse
für die Stromversorgung, und eine Standard-RS232 auf 9Pin-DSub. Ich
hatte extra viel Platz für einen Schaltregler freigelassen,
Glättungskondensatoren und Gleichrichter sogar! Cool ist obendrein, daß aus dem FT232R (bei richtiger Programmierung) auch noch 6MHz
rauskommen, da kann man den Quarz vom Prozessor sparen, nebst den
Bürdekapazitäten. Und dann liefert USB auch noch 5Volt! Bis zu 500mA! Ich mach das so: Hinten auf dem Gurki-Board ist ein USB-Anschluss.
Da zwacke ich eine USB-Verlängerung dran, die hinten aus dem Gurki ca.
50cm lang ist. Den USB-Pluspol löte ich direkt über eine 2A-Sicherung
an die +5V von Gurkis Netzteil. Das ist eh nicht ausgelastet. Über die
offenen Lötstellen schrumpfe ich Schlauch! Aber das ist ja auch mal wieder das schöne am Basteln: Wenn man
die Spezifikationen _genau_ kennt, kann man die Normen ignorieren. Zum
Glück ist das Gurkoskop ja nicht für den Massenmarkt gedacht,
ansonsten hätte ich da wohl ein Wandwarzennetzteil samt
Hohlsteckerbuchse und Schaltregler reindesignen müssen um die
USB-Spezifikationen zu erfüllen, oder 3 FT232R, die mit 3 USB Kabeln an
einem Rechner hängen und jeweils 500mA Stromaufnahme proklamieren. Dann
hätte ich den einsamen Schurter-Knackfrosch aus meiner Tasterschachtel
nicht verbauen können... Stattdessen aber besser schon mal gleich einen
Anwalt beauftragen... Aus Gründen, die im folgenden Kapitel näher erläutert werden, habe ich dieses Thema um einige Tage zurückgestellt... |
9. Das Rätsel der Uptime |
||
Eine der herausragenden Eigenschaften von Gurki soll ja seine Verfügbarkeit sein. 'Hochverfügbarkeit' ist das erste Serververkaufsargument, es gibt ganze Seiten im Internet, die sich mit nichts anderem beschäftigen als: Wer hat den längsten laufenden Rechner. Natürlich bin ich da mit meiner einsamen Wahl von Windoofs XP als Gurkibetriebssystem völlig raus, weil ein anständiger Mensch sowas schon garnicht tut. Auf einen richtigen Hochverfügbarkeitsserver muss irgendein -ix, -ux oder wenn man richtig Heldenhardcore will, ein VMS! DAS sind die wahren Betriebssysteme! Einführung für Laien: 'Die 'Uptime' (groß geschrieben, weil es
dafür keinen adäquates deutsches Wort gibt) ist die Zeit seit
dem letzten Start des Rechners, genauer gesagt, seines Betriebssystems.
Naiv, wie ich manchmal bin, dachte ich mir, das wäre ja schön, die 'Uptime'
auch anzuzeigen, so quasi -ja, ich gebe es zu- als Penislängenanzeige.
Ja schön. Nun möchte ich aber nicht die Systembetriebszeit
(germanischer Übersetzungsversuch für 'Uptime') auf dem DOS-Prompt (höhö)
oder der Konsole angezeigt bekommen, sondern sie per C++-Programm im
Gurkoserver auslesen, um sie auf dem Gurkoskop anzuzeigen. Fortgeschrittenere Menschen (sind im Internet dann schon weniger)
raten zur Verwendung des 'Performance counters'. Der zählt zwar mit der
'Performance Frequency' hoch, ist dafür aber auch 64Bit breit, so dass
ein Überlauf auf meinem Hauptrechner erst in etwas mehr als 100 Jahren
zu erwarten ist, und das finde ich persönlich durchaus tolerabel. Auf
Gurki sind es einige 1000 Jahre, weil die 'Performance Frequency' nur
bei einigen Megahertz liegt. Klingt aber, summa summarum, schon
einladender. Als letzte Möglichkeit fand ich noch den letzten Schreibzeitpunkt
von 'pagefile.sys'. Mich dünkt an dieser Stelle, dass niemand in dieser ganzen verkackten Welt ein Windows XP länger als 49,7 Tage laufen lässt. Und die Uptime von UX-Systemen gemessen wird, indem man sich aus einem Konsolenprogramm die passenden Ausgaben rausfischt. Aber WIE die Zeit wirklich gemessen wird, weiß kein Schwein. Und wenn SpeedFan morgen bei der Uptime weniger als 49 Tage
anzeigt, dann weiss ich auch, warum.
Seufz... Der Beweis ist mittlerweile erbracht: Comparettis Zähler bricht
nach 49,7 Tagen auf 0 zusammen, ganz wie ich es erwartet habe, kannste
knicken, Deppen am Werk... Den Performance-Counter und die
Echtzeituhr von Gurki trennen mittlerweile ca. 5 Minuten. Ist schon
nicht schlecht nach 50 Tagen. Und, um mal ganz ehrlich zu sein, auch
nicht wirklich relevant, wenn man die Uptime nur in Stunden anzeigt. Das
ergibt den ersten wirklich spürbaren Fehler nach zappazappazapparrrring...
600 Tagen. Da unterscheiden sie sich dann im letzten Digit. Das macht
aber nichts, weil die Uptimeanzeige am Gurkoskop sowieso nach 9999h
(->416 Tagen) überläuft. Nachklapp: Als ich neulich in der Raucherecke einem 1000schlauen
'Datenbankexperten' von diesem Problem (und Gurkis Uptime von 49 Tagen)
erzählte, lächelte er nur milde und meinte herablassend: Das ist ja
nicht lang! Da ich persönlich Herablassung überhaupt nicht abkann,
insbesondere nicht von wenigdimensionalen Kohlenstoffeinheiten, tröstete ich mich
(rein innerlich, weil ich so voll professionell bin während der
Arbeitszeit) damit, daß er, obwohl er manchmal mit seiner
Harley-Davidson, die ein verchromtes Bierfass auf dem Gepäckträger hat
(in dem selbstredend kein Bier ist), in der Firma vorfährt, einer der
langweiligsten Organismen in unserer Biosphäre ist. Worin mir jeder,
der ihn kennt, zustimmt. "Da logge ich mich als root ein und gebe 'Uptime ?' in die shell(*) ein..." lautet seine allumfassende Antwort... Oder so ähnlich. Ich weiß das ja auch nicht, irgendwie möchte ich eben bei Meßwerten wissen, was ich von ihnen zu halten habe, da kann ich meine Kinderstube wohl nicht verleugnen. Fazit: Kleiner Haken: Das File lässt sich ums verrecken nicht öffnen, um die Zeit abzulesen (Nein, auch nicht, wenn man das Flag setzt, daß man nur die Attribute ansehen will...). 'FindFile' hilft da, muß man aber auch erstmal drauf kommen und sich vorher eine halbe Stunde wundern, warum das andere nicht geht... Zum Schluss: |
10. Währenddessen |
||
ich noch so vor mich hin grübelte, beschloss ich, das nur die Tat
der Rede Wert sei. Und bratzelte und codete schon mal weiter: (Coden ist ja wie löten, nur dass es a.) nicht so stinkt, und man sich b.) seine Bauteile selber schreinern kann. Oder schustern. Oder basteln. Und man einfach alles löschen kann) Zuerst codete ich also das Gurkoskop in C für den ATMega8 im Gurkoskop. Dann codete ich weiter am GurkoServer in C++, der ja schon die Temperatur und alles andere erfolgreich auslas, damit er das auch zum Gurkoskop schickt, über die COM-Schnittstelle, den der FTDI-Treiber für das Gurkoskop aufmacht. Auf Gurki und auf meinem richtigen Rechner natürlich. Dann noch das AJAX-Teil auf dem Webserver in JavaScript. Dazu noch einen dyndns-free-account eingerichtet und den dyndns-updater runtergeladen und installiert. Ein Release vom Gurkoserver gebaut und auf Gurki installiert, et voilá! Der Watz kann in seinem Büro das (rudimentäre) Gurkoskop ansehen! (Wenn er Javascript einschaltet, die statische PHP-Version fange ich erst an, wenn die dynamische rundläuft...) Exkurs: Der
Prozess ist der verzweifelte Versuch der Nichtskönner, die
Verhaltensweisen der Könner nachzuahmen. Da sie aber nichts können,
geht das in die Hose. Da sie aber niemals zugeben können, dass sie
nichts können (weil sie sich sonst auch besser im Interesse der
überlebensfähigen Menschen baldmöglichst selbst töten sollten),
glauben sie an den Prozess. Hallelujah! Und
während man in Villa Riba noch den Prozessen folgt, Scheiß auf den Prozess. |
11.Gurki down! |
||
Nachdem also die ersten 49,7 Tage um und meine Uptime-Betrachtungen
abgeschlossen waren, (ich hatte kurzerhand die drei naheliegenden
Möglichkeiten der Laufzeitmessung implementiert und deren Ergebnisse
verglichen. Wie unprofessionell! Aber Versuch macht kluch!) konnte ich
Gurki endlich runterfahren, um den Baku-Power-USB zu basteln. Das ging
so flink, daß ich dabei sogar vergaß, Fotos zu machen. Der geneigte Leser, der wirklich bis hier durchgehalten hat, kann es sich aber ohnehin selbst vorstellen: Ein USB-Kabel mit einer Typ-A-Kupplung, die direkt auf Gurki geht, hinten abgeschnitten und in Gurki direkt auf einen der Frontside-USB-Anschlüsse geklemmt. Bis auf die +5V, die gehen über eine ins Kabel eingeschrumpfte SMD-Sicherung (Die habe ich von einer alten Festplattenelektronik abgelötet) direkt ans Netzteil. Alles schön isoliergeschrumpft und mit oregenool TyWrap an tragenden Teilen festgestrapst. Wie erwartet lief der ganze Quargel sofort, allein das Gurkoskop stürzte manchmal beim Ein- und Ausschalten der Anzeige über den Taster ab. Kein Wunder, 1,2A bei diesen dünnen Drähtchen, das gibt beim Schalten böse Spikes, da kann der arme Professor schon mal aus dem Tritt kommen. 1 Mikrofarad in teuer Tantal zur Stützung der Prozessorversorgung schufen verlässliche Abhilfe. Hatte ich auch noch von der BACU9600 über. Seit diesem letzten Einschalten läuft Gurki also durch. Und das Gurkoskop kann man ein- und ausschalten, wie man will. Man kann es auch jederzeit abziehen und wieder anstechen, nach 4 Sekunden ist es da. Höhö, das war ja auch noch so'n Ding: FTDI rultz! Der Treiber übersteht das abziehen und wiederaufstecken des USB-Steckers im laufenden Betrieb bravourös. Natürlich muss der Gurkoserver damit klar kommen, und nicht etwa modale Dialoge oder unbehandelte Exceptions werfen, wenn die Schnittstelle nicht da ist... Prolific trägt es da reproduzierbar aus der Kurve, so mit 'schwerer Ausnahmefehler' und so, mit Scilabs habe ich es noch nicht ausprobiert. |
12.Es gibt nix Gutes, ausser man macht es! |
||
So ward dann am Ende Gurki nebst Gurkoserver und Gurkoskop. Ein agiler Prozess! HÖHÖ! Also das Gurkoskop:
(Das Feld 'Test' habe ich eingebaut, um an das Gurkoskop spezielle
Steuerbefehle zu senden, die die LEDs ein- und ausschalten sowie auf den
Displays die Zeichen von 0-F darstellen, zwangsweise und unabhängig vom
Rest der ganze Geschichte. Das war nötig, um die Fotos für das
wirrtuelle Gurkoskop zu machen. Und JA! dieses Feature ist in der
Schnittstellendokumentation beschrieben. Sonst weiss ich in einem Jahr
ja selber nicht mehr, wie ich das gemacht habe. Das hat allerdings
weniger als eine Minute gedauert...) Und das wirrtuelle Gurkoskop: Und sogar CSS habe ich noch lernen müssen. Damit die Anzeigen
hübsch nebeneinader sitzen und alles am rechten Fleck ist. Heute Abend habe ich noch die PHP-Version der wirtuellen Gurkoskopes gebastelt und dabei wieder einmal festgestellt, wie bekloppt die Welt ist... PHP und Javascript sind eine Qual für jemanden, der zumindest einigermassen versteht (und verstehen will!) was die Maschinen tun. Besonders angekotzt hat mich die überaus schwache Typisierung in diesen Webdesignerdeppensprachen. Das ist wie BASIC für Waschweiber, die nicht wissen, was der unterschied zwischen 123 und "123" ist. <An dieser Stelle folgt kein Bild der PHP-Version, weil es GENAU
so aussieht wie die html/Javascript/AJAX-Version, sich nur nicht
automatisch updated. Und die Leuchtdioden blinken nicht, ist eben
statisch...> |
13.Gurki weltweit |
||
Am Ende habe ich noch ein wenig dengeln müssen, weil die vielen
Reisen bevor standen, und 'Kompromisse machen' z.B. die
Helligkeitsregelung nicht implementieren, für die der große LDR ja
eigentlich eingebaut wurde samt ADC-Routinen. Aber was solls. Kann ich
ja nachholen, sollte es jemals wieder an Relevanz gewinnen. Automatische
Helligkeitsregelung ist für eine Uhr zwar ganz gut, für das Gurkoskop
aber ziemlich schwul. Wenn man es nicht sehen will, kann man es ja auch
ausschalten. Oder abziehen. Oder aus dem Fenster werfen, ganz nach
belieben. Immerhin habe ich dem feisten LDR als hübschen Designelement
noch zu einem Leben ausserhalb meiner Bastelschachteln verholfen.
Aber dafür geht das Gurkoskop in Tabuk: Und in Bangkok: Und sieht überall auf der Welt (in diesem Falle Paris) auch auf
dem Blackberry geil aus:
Und funktioniert. Warum habe ich das eigentlich alles gemacht? Wahrscheinlich aus dem gleichen Grund, aus dem Männer im stehen pinkeln... Anmerkung: Anhand der Anzeige kann man auch ablesen, in welcher Reihenfolge die Aufnahmen gemacht wurden... |
<< zurück | Zur Übersicht | weiter >> |