Das mit dem Gleichstrom ist sehr interessant, schade nur, daß es ganz anonym gesendet wurde
(also doch eine Ente?)
Bild hier
... sonst würde der Mower ja bei jedem verlorenem Magneten wenden.
Manfred
Druckbare Version
Das mit dem Gleichstrom ist sehr interessant, schade nur, daß es ganz anonym gesendet wurde
(also doch eine Ente?)
Bild hier
... sonst würde der Mower ja bei jedem verlorenem Magneten wenden.
Manfred
Hallo,
habe im Frühjahr ein 2003ér Modell günstig erstanden.
Top Gerät !!!!! Er wurde von unseren Kindern Lämmy getauft und hält problemlos 1300qm Rasen in schach. Zu dem Diebstahlthema hat unsere Hausratversicherung mit einem Anteil von x% den im Amtsdeutsch sogenannten "einfachen Diebstahl" (also ohne Einbruch) für alle auf dem eingefriedetem Grundstück befindlichen Gegenstände beitragsfrei mitversichert !! Vorherige Erkundigung ist hier sinnvoll.
Hallo,
es gibt so viele schlaue Köpfe und Denker in diesem Forum, aber keiner kann scheinbar sagen wie die Begrenzung funktioniert.
Ich glaube das einige und ich daran interesse hätten. Nicht nur für den Garten.
Bitte gibt mir mehr Imput !!!!
Hallo,
ich wollte noch dazu sagen das ich lieber anonym bleibe und praktisch von aussen die Information abgreifen möchte.
Bitte macht euch die Mühe und beschreibt mir die Funktion so das ich es auch verstehe. !!!!
Hi nur so mal mit Gleichstrom kann ich kein Magnetfeld generien, oder? Hab gelernt das ich dafuer ein Wechselfeld habe. Oder bin ich schon so draussen 8-[ .
Was mache ich wenn ich Blumen in meinen Rasen habe und diese als "nicht maeh Inseln " halten will? Wie lege ich dort eine Schleife?
Wenn das Ding nur das grass schneidet und dann liegen laesst, rottet das dann nicht vor sich hin?
Wie findet es die Heimatstation? Zaehlt es die schritte oder nutzt es Bakentechnik?
Waere doch ein Netter aufbausatz oder? Kaemare und dann nen Arlam und wenn jemand das Ding oder in euer Haus klauen will arlam los.
Hat jemand schon mal nachgesehen wie das Hirn aussieht?
Was sagen euere Frauen, Lebensgefaehrtinen ( e) dazu? Ich meine das ist doch unsere wirkliche letzte Hausarbeit? Naja wer dumm ist der Arbeitet wer die Intelegenz ( und das Geld :shock: ) laesst arbeiten.
Euer Backpacker
zum AutoMower von Electrolux gibt es ein eigenes Forum!
http://www.foren.de/system/user_corsatimo.html
Ich habe seit Herbst 2003 einen Rasenroboter der Firma friendlrobotic (RL500). Dieser hat ein ähnlichen Problem mit dem Akku. Da es sich um ein Vorführmodel mit Garanie handelt, wurden die Akku´s getauscht, als dieser sich nach ca. 0,45 Std. abstellte. Es handelt sich um Gel-Säure-Batterien, die Stück 50€ kosten (2 sind notwendig). Es sind 2 in Reihe geschaltete Akku´s a 6 V mit 18 AH. Diese müssen immer an der Ladestation bleiben, was ich auch immer gemacht habe. In diesem Frühjahr ist wieder das gleiche Problem augetreten. Diesmal baute ich eine Autobatterie ein 12 Volt 80 Ah, mit dem Ergebniss, das der Roboter alle 10 Sek. neu hochfährt. Warum macht er das? Das Problem mit den Gel-Säure-Batterien ist, das beide nie gleich geladen werden, da die eine voll angibt und die andere noch geladen wird, was zu einer Überladung führt. Sollte es noch Leute geben , die mir einen produktiven Tip geben können, meldet Euch unter klugermann@gmx.deZitat:
Zitat von Okay
Falls es euch interessiert:
Ich zerlege gerade so ein Ding hier an der Fachhochschule. Wir schreiben eine eigene Software dafür.
So ein paar Infos:
Hat bürstenlose Gleichstrommotoren (dunkermotoren)
Für die Leiterschleife, bzw. Rückholschleifenerkennung verwendet er Hallsensoren (Type noch unbekannt, hängen aber grad beim Hersteller dran...)
Und hat einen Motorolla DSP Prozessor...
Soweit erstmal,
Armin
@Armin
Ja tolle Sache, freut mich wirklich sehr.
Welche Hochschule ist das denn?
Ich bin sicher, dass man mit Teilen von fertigen Produkten eine gute Basis für eigene Experimente schaffen kann.
Eine Sache interessiert mich füher oder später noch: Das Begrenzungssignal für die Hall Sensoren aus der Leiterschleife. Es wurde mal geschrieben dass es ein Gleichfeld sein soll. Wenn es geht würde ich gerne mal erfahren, wie stark dieses Feld ist. (In mA und Abstand)
Ich hoffe und denke, es ist kein Betriebsgeheimnis.
Sonst wie gesagt, ein schönes Projekt ich hoffe wir hören mehr davon hier und können auch Ratschläge geben.
Manfred
Schau doch auch mal hier nach:
RoboterNetz.de Foren-Übersicht » Roboter-Foren » Allgemeines zum Thema Roboter » Wir bauen einen Rasenmäher Roboter
https://www.roboternetz.de/phpBB2/viewtopic.php?t=9442
Ich hab in den letzten tagen auch einiges zum Automower geschrieben.
Zur Drahtschleife habe ich diese Information hier gefunden. Wenn es auch Aussagen zum Signal gibt, habe ich sie übersehen.
Manfred
http://www.foren.de/system/thread-sc...7-1270215.html
Den meinte ich nicht - sondern hier bei roboternetz.de :arrow:
Das mit dem Gleichstrom funkt aber man kann dadurch keine Dynamos betreiben in der form von Drahtspulen. aber jetzt mal zur funktion des Magnetismus kennst du die Regel der Rechten hand die besagt Strom und bewegung ergibt Magnetfeld Magnetfeld und Bewegung lassen sich dann wieder mit verlusten in Strom umwandeln.
MfG
der aller dümmste Anfänger
Ich habe noch ein Forum gefunden:Zitat:
Zitat von niksch
http://groups-beta.google.com/group/automower/
Falls jemand Kontakt zu Besitzern sucht: zum Automower gibt es ein eigenes Forum unter http://groups-beta.google.com/group/automower
Lg
Baer
Hallo das sind im prenzip die gleichen links
Wie findet der neue automower 2004 eigentlich seine ladestation?
und gibt es eine möglichkeit den AM auf 2-3 rasenflächen mit einer ladestation zu betreiben?
und was sind die kosten für ersatzteile (motor, klingen,akku...)
wie oft muss/sollte er überhaupt fahren (in der woche)wenn das gras
durchschnittlich schnell wächst?
Schau mal hier: https://www.roboternetz.de/phpBB2/viewtopic.php?t=9442Zitat:
Zitat von zero1500
dort habe ich in mehreren Beiträgen mein Wissen über den Automover beschrieben.
habe seit einem Monat einen Elektrolux Automover. Das Problem: auf dem Rasen der Tiefgarage fährt er nicht "kein Schleifensignal". Wer kann helfen
Was sagt (blinkt) denn die LED an der Ladestation ?
oder schau mal hier: http://www.foren.de/system/morethrea...1262180-0.html
@der aller dümmste Anfänger:
Sorry, ich habe jetzt auch gesehen, dass der Link eines drüber steht. Bin wohl ein noch dümmerer Anfänger, ich habe nur die erste Seite gesehen und dort auf antworten gedrückt und somit die Unterseiten nicht gelesen.
Sorry,
dummer baer
... der Punkt Gartenform im Menue des Automower.
Welchen Einfluss hat diese Einstellung auf das Mähen, wendet er dann anders oder öfter oder ...?
Ich schreib da mal meine Beobachtungen.
(um mir das Schreiben und euch das Lesen zu erleichtern, RS:= Rand-Signal = Schleifensignal meldet auserhalb der Begrenzung oder einer der Kollision-Sensoren hat angesprochen)
Der Automower mäht außer im Viereckmodus immer geradeaus.
Wenn beim mähen RS auftritt, läuft folgende Prozedur ab:
Zunächst setzt der AM ein Stück zurück. Normalerweise sollte er jetzt freigekommen sein. Also kein RS mehr.
Dann dreht sich er sich in einem zufälligen Winkel in die aktuelle Drehrichtung.
Wenn es beim drehen zu RS kommt, dann wechselt der AM die aktuelle Drehrichtung und versucht es nach der anderen Seite.
Wenn beim drehen in die andere Richtung schon wieder RS kommt, ist der AM in eine Gasse gefahren.
Er dreht sich in die ursprüngliche Richtung zurück und setzt noch ein Stück zurück.
Sollte er jetzt immer noch nicht freigekommen sein, geht das Spiel noch weiter.
(die Prozedur um sich aus verzwickten Situationen zu befreien, ist recht gut gemacht und hier bei weitem nicht volständig beschrieben)
Der zufällige Drehwinkel ist aber nicht so richtig zufällig. Der AM kennt kleine und grosse Winkel.
Die kleinen Winkel liegen unter 90°, die grosse zwischen 90° und 180°.
Offen: Der AM beginnt mit den kleinen Winkeln und wechsel nach einiger Zeit zu den Grossen. Ab und zu wechselt er zu den Kleinen, aber überwiegend werde die grossen Winkel benutzt.
Er entwickelt dadurch eine Vorliebe für lange Strecken.
Komplex2: Der AM benutzt überwiegens kleine Winkel.
In diesem Modus versucht der AM es "gleich neben an" nochmal. Er mäht dadurch auch in den versteckten Bereichen hinter Gartenhäuschen, Blumeninseln und Strauchwerk.
Komplex1: Der AM wechselt von Zeit zu Zeit zwischen beiden Methoden hin und her.
Die Winkel werden auch kleiner, wenn kurze Zeit nach einer Wende gleich wider RS auftritt. Das spricht nähmlich auch für eine schmale Passage.
Schleifensignalen
Von der Ladestation werden vier Signale erzeugt:
A-Signal: zum Begrenzungskabel, Normalwert 70 bis 320. Af= vorderen Schleifensensor. Ar= hinteren Schleifensensor. (Ar wird angezeigt, wenn der Aufwärtspfeil gedrückt wird.)
S-Signal: zum Suchkabel. (Nur in Sonderfallen benötigt. Freier Anschluss an der Platine der Ladestation .)
Und zwei Signale zu den Spulen in der Bodenplatte.
F-Signal: Fernsignal, zum finden der Ladestation mit einer Reichweite von ca 6 bis 7 Meter.
Normalwert in Testposition über 300.
N-Signal: Nahsignal zum einparken mit einer Reichweite von ca 40 Zentimeter bis 1 Meter.
Normalwert in Testposition über 100.
Da man beim Fahren fast nichts durch die Abdeckscheibe sehen kann, benutze ich einen Trick:
Die Haube zur Mähwerksverstellung öffnen und die beiden Halter rechts und links der ROTEN Stop-Taste so drehen, das sie freigegeben wird. Der AM startet dann mit geöffnetem Fenster. Keine Angst, die ROTE Stop-Taste funktioniert.
Zum Testen der Schleifensignale N und F:
Die Ladestation mit Begrenzungskabel muss installiert sein.
Der Mäher muss sich in der Testposition befinden. Rechts neben der Mitte der Ladestation, so dass sich die Nase über der Kante der Platte befindet.
Die Messwerte prüfen:
Entweder zur Schnellkontrolle:
Im Hauptmenue die Ziffer "0" fünf Sekunden gedrückt halten.
Oder in der Betriebsart "Experte":
Erst in das Menue "Einstellungen" und dann auf die Tasten "Parken", "4" und "3" drücken, d.h. gleichzeitig, aber in der angegebenen Reihenfolge. ("Parken" gedrückt halten und dann "4" und "3" drücken)
Dann "Aktuelle Daten" und weiter auf "Schleife"
Qualität:
Eine Angabe der Gesamtfunktion der Schleife. Der Normalwert ist 100%. Ein abweichender Wert deutet daraufhin, dass eine Störung im System vorliegt.
Neustarten:
Eine Angabe der Neustarts des Schleifensystems. Inerhalb von 5-10 Sekunden muss sich der Wert stabilisiert haben. Wenn der Wert sich weiterhin ändert, deutet dies daraufhin, dass eine Störung im System vorliegt
Bild hier
Ich bin voller Bewunderung für deine Analyse, aber den zitierten Satz bitte ich für Beschränke näher zu erläutern :oops:Zitat:
Zitat von Vogon
In der Bedienungsanleitung wird gewarnt, man solle die Bodenplatte nicht betreten.
Der Gründe dafür:
In der Bodenplatte befinden sich die N-Schleife und die F-Schleife. Eine oder sogar beide können kaputt gehen.
Schon durch Druck auf die Platte können diese Schaden nehmen.
Auf keinen Fall die Bodenplatte verbiegen!
Beim lösen der angenagelten Bodenplatte vom Untergrund, sollte man sehr vorsichtig sein. Auf keinen Fall an der Platte ziehen um die Nägel zu lockern. Die Bodenplatte kann sich dadurch verformen.
Die ersten Bodenplatten des G2 Modell wurde vor dem verkleben nicht gründlich genüg vorbereitet. Die neuen Platten vom G2 2004 und vom G2 2005 Modell sollen diese Probleme nicht mehr haben. Die schlecht verarbeiteten Platte soll sogar durch die Ausdehnung bei starken Sonneneinfall ausfallen !
Das ist mein "auf die Schnelle" selbsgemachter Ladeanschluss.
Bild hier
Er besteht aus einer Blindabdeckung für ein Floppylaufwerk, aus der Kiste "Dinge zum wegwerfen zu schade".
Dann sieht man noch zwei Blechwinkel - Reste einer Blechdose.
(Ein Allzweckbaustoff den ich schon seit meiner Jugendzeit gerne benütze. Man kann in einfach mit der Schere zuschneiden (zum leidwesen meiner Mutter) mit den Fingern oder Zange zurecht biegen und auch mit einem Lötkolben verbinden.)
Dazu noch vier Schrauben, ein wenig Draht und den Trafo mit Kabel der zur Ladestation gehört.
Meine Konstruktion klemme ich dem AM auf die Nase. Die Drähte kommen in die Steckerbuchsen an der Leitung zum Trafo.
Wenn man den Strom zum Trafo einschaltet und nicht vergessen hat den Lack vom Dosenblech zu krazen, sollte jetzt der Ladestrom fliesen. Was der AutoMower mit einem kurzen zufriedenen Brummen bestätigt !
Das ganze war nach etwa 20 Minuten fertig.
Und warum das Ganze ?
Meine Ladestation ist in Reparatur ! Sie hat die Bodenplatten-Krankheit.
So kann ich wenigstens den Mäher laden und wenn auch ohne Begrenzungssignal, meinen Rasen doch ein wenig im Zaum halten.
Ich werde mal nach einem passenden Trafo suchen :
Primär: 240 Volt AC
Sekundär: 26 Volt AC, 2,5A
Dazu ein Gehäuse mit Sicherung und Temperaturschutz.
Mit diesem Zweitladegerät kann ich den AM auch an seinem sicheren Ort laden. Ich traue mich nicht, den Mäher Nachts oder bei längerer Abwesenheit so unbewacht im Garten zu lassen.
Da haben biologische Systeme (Schafe) also doch noch Vorteile.Zitat:
Zitat von Vogon
Oh, da gehst du aber in die Irre!Zitat:
Zitat von PicNick
Es finden sich unzählige Berichte, Legenden, Märchen auch in der Bibel, die das ganz anders schildern.
Der gute Hirte lässt seine Schafe nie ohne Schutz. Weder am Tag, schon garnicht in der Nacht.
Beim bösen Wolf kann man entwendete Schafe gegen ein paar Wackersteine aber wieder eintauschen.
Aber du hast recht. Wegen der Neigung, zuerstmal die Zierpflanzen zu recykeln, ist das gemeine Hausschaf (Ovis orientalis aries) eigentlich hundsgemein, der WAF ist dazu proportional niedrig.
Dann sind da noch ein paar olfaktorische Aspekte (die Viecher stinken) die einer Verwendung im extra-ruralen , also urbanen Bereich entgegenstehen.
Es kann von Vorteil sein, wenn man die Rasenfläche aufteilt.
Ich habe das so gemacht.
Bild hier
An den beiden Stellen mit rotem Pfeil habe ich einen Schalter. Mit diesen kann ich die Schleifen für die außeren Bereiche kurzschließen. Eigentlich sind es ja drei Bereiche. Einmal der Bereich in der Mitte. Hier steht die Ladestation. Dann gibt es noch den Rechten und den Linken.
Die Bodenbeschaffenheit der beide Außenflächen ist leider sehr unterschiedlich. Links ist der Rasen gut. Rechts ist das Gelände aber aufgefüllt. Hier wächst der Rasen wessentlich langsamer und in Trockenperioden wird er auch recht schnell braun. Die Strecken zum Schalter sind natürlich nicht wie in der Zeichnung nebeneinander, sondern gemeinsam, wie bei einer Insel verlegt.
Das funktioniert so schon recht lange und zu meiner vollen Zufriedenheit.
Allerdings gebe ich zu, die Schalter sind nur geplant, in wirklichkeit drehe ich als gelernter Elektriker bei Bedarf nur die losen Drahtenden zusammen. Irgendwann werde ich es auch mal ordentlich machen! Ich denke da an eine kleine AVR-Schaltung die ich an der Ladestation anbringe. Sie soll feststellen ob der AM gerade zu Hause ist, denn nur dann darf er die Relais zum Schleifen abschalten ansteuern. Eventuell sogar mit Uhr.
Achso, die einzelne Linie im linken Bereich ist die Suchschleife. Der Garten sieht in wirklichkeit nicht so kubistisch aus, es war aber einfacher es so zu Zeichnen. In Wahrheit habe ich fast keinen rechten Winkel.
Wenn der Automower nie im Viereckmodus fährt, dann kann das einen Grund haben - der Automower verfällt nur in den Viereckmodus, wenn folgendes gegeben ist:
1.) Der Automower ist in der Betriebsart AUTO (nicht MAN).
2.) Der Automower ist mindestens 8 Mähstunden ununterbrochen in Betrieb (d.h. gesamt mähen und laden 14+ Stunden). Anders ausgedrückt: der Hauptschalter ist die ganze Zeit auf ON! Wird der Hauptschalter ausgeschaltet, dann wird nach 4 Stunden der Zähler zurückgesetzt.
Oder in anderen Worten: wird ein Automower jeden Abend mit dem Hauptschalter ausgeschaltet, so wird er nie im Viereckmodus fahren!
Wer den Mäher jeden Abend wegen Klaugefahr in sicherheit bringt, braucht ein Zweitladegerät !
Es nützen nichts nur den Hauptschalter anzulassen, der AM muss auch in der Ladedestation stehen, denn der AM schaltet sich sonst nach einiger Zeit selber aus.
3.) Der momentane Kraftaufwand zur Beibehaltung der Drehzahl des Messertellers muss von der mittleren Kraft um den eingestellten Faktor (z.B. 50%) abweichen. Der Rasen muss also in einem Bereich länger/dichter sein als zuvor. Dieser Wert läßt sich im Expertenmenü ändern !
Für die Servicetechniker ist ein Diagnosekabel und Diagnosesoftware zum Automower lieferbar. (? €150.00 bis €200.00 auch für Kunden beim Händler ?)
Ob die Software von Electrolux zu bekommen ist, konnte ich nocht nicht in Erfahrung bringen.
Unterlagen zum Kabel sind aber vorhanden. Eigentlich ist es auch nichts anderes was man für einen AVR auch benutzt.
Bild hier
Bild hier
Bild hier
Die passenden Stecker zum Diagnoseanschluss am AM sehen so aus:
http://www.stecker-laden.de/ dort bei: mehrpolige Steckverbinder ->
AMP Universal MATE-N-LOK
Ob der aber wirklich passt ? Ausprobiert habe ich es noch nicht !
Edit: @Busli hat den richtigen Stecker gefunden !
Steckergehäuse JST ELP-04NV
Crimpkontakt JST SLF-01T-P1.3E
Hier sind einige Links zu anderen Roboter-Rasenmäher die ich im Internet gefunden habe.
Electrolux oder www.automower.de der Mäher über den wir hier reden.
Ambrogio kommt aus Italien.
MowBot aus England, ist anscheinend baugleich mit dem Ambrogio.
RoboMower eine Entwicklung aus Israel.
UDO 5 ein Selbstbau mit guter Nachbauanleitung aus Holland.
RCLM2006S ein Rasenmäher mit Fernsteuerung aus USA
Bigmow für sehr grosse Flächen mit über 1 Meter Mähbreite aus Belgien.
Hallo Vogon,
ist das auch die Schnittstelle für den älteren AM (Baujahr 2000)?
Hast du schon was wegen der Software in Erfahrung gebracht?
Gruß
Andreas
Den älteren AM, Baujahr 2000 kenne ich nicht. Da kann ich leider nichts dazu sagen.
Zur Software kenne ich nur die Angaben im automower.de Forum - €150.00 bzw €200.00 inklusive Kabel.
Hallo liebe Mower-Gemeinde-Mitglieder und jene, die es noch werden wollen!Zitat:
Zitat von Anonymous
Nach 4 Jahren treuen Diensten möchten wir unseren G1 verkaufen und uns den G2 zulegen.
Wenn Interesse am Kauf besteht, sind alle Infos unter folgendem Link zu ersehen:
http://www.inox-store.de/AutoMower/AutoMower.htm
Unser Auto Mower wurde im November gewartet und dabei wurden 1 Radmotor, die Hauptplatine und die Tastatur erneuert.
Viele Grüße
Peter Staps
mail@staps-arte.de
Außerdem verkaufe ich noch die alte Platine und die Tastatur - für einen findigen Bastler bestimmt noch zu gebrauchen.
Hallo zusammen,
der korrekte Steckertyp des Diagnosesteckers ist nicht wie weiter oben gepostet der AMP Universal MATE-N-LOK, sondern ein Stecker von der Firma JST.
Um ein Anschlusskabel zu bauen braucht ihr die folgenden 2 Bauteile :
Steckergehäuse JST ELP-04NV
Crimpkontakt JST SLF-01T-P1.3E
Danke!Zitat:
Zitat von Busli
Jetzt fehlt nur noch einer der die Stecker auch ohne Mindestmenge von 1000 liefern will!
Hi Vogon,
versuch einfach, diese Komponenten bei deiner Landesvertretung als Muster zu bekommen - 2-3 Stück inkl. Crimpcontakte sollten ja reichen. Ich hab das auch so gemacht und es hat geklappt.
Gruss
Jetzt möchte ich mal zeigen wie man sich mit dem AutoMower unterhalten kann.
Der AutoMower hat ja eine Diagschnittstelle. Das ist eine RS232 aber mit 3.3 Volt. Den Schaltplan für den Pegelwandler findet man Hier: https://www.roboternetz.de/phpBB2/vi...?p=97409#97409
Es geht aber auch anders. Die FM-Transceiver-Modul (RT868F4) von www.robotikhardware.de arbeiten ebenfalls mit 3.3 Volt. Es spricht nichts gegen eine direkten Anschluss. Auf der PC-Seit benutze ich das gleiche Transceiver-Modul auf der RN-FUNK Platine.
Das Protokoll des AutoMower ist:
Anfrage an den AM:
----------------------------
Byte 1: 0F Hex ; ist immer so.
Byte 2 und 3: die Adresse der AM-Variable.
Byte 4 und 5: sind normalerweise 0, bei einigen StringVariablen als Index.
----------------------------
Der AM antwortet dann:
Byte 1: 0F Hex
Byte 2 und 3: die angefragte Adresse.
Byte 4 und 5: Die gelesenen Daten.
----------------------------
Hier mal ein Beispiel:
-----------------------------------
Connected to "Kommunikationsanschluss (COM1)"
Request: 18.05.2006 10:52:04.46664
0F 46 50 00 00 .FP..
Answer: 18.05.2006 10:52:04.48264 (+0.0156 seconds)
0F 46 50 E8 03 .FPè.
Request: 18.05.2006 10:52:04.48264 (+0.0000 seconds)
0F 46 52 00 00 .FR..
Answer: 18.05.2006 10:52:04.49764 (+0.0156 seconds)
0F 46 52 29 5C .FR)\
Request: 18.05.2006 10:52:04.49764 (+0.0000 seconds)
0F 46 54 00 00 .FT..
Answer: 18.05.2006 10:52:04.51364 (+0.0000 seconds)
0F 46 54 00 00 .FT..
Request: 18.05.2006 10:52:04.51364 (+0.0000 seconds)
0F 46 56 00 00 .FV..
Answer: 18.05.2006 10:52:04.52964 (+0.0156 seconds)
0F 46 56 0B 00 .FV..
Request: 18.05.2006 10:52:04.52964 (+0.0000 seconds)
0F 46 58 00 00 .FX..
Answer: 18.05.2006 10:52:04.54464 (+0.0156 seconds)
0F 46 58 E1 10 .FXá.
-----------------------------------
Mein Test-Programm in Visual-Basic
Oder, für mich noch besser, ein Testprogramm in PocketC um mit dem Pocket-PC sich das anzuschauen.Code:Option Explicit
Dim a, b, dtr, rts, LogNum, PrStat, iEingabe As Integer
Dim iFileNumber As Integer
Dim sPath As String
Private Sub Ch_Bat_Click()
If Ch_Bat.Value Then
Bat_I.BackColor = vbWhite
Bat_U.BackColor = vbWhite
Else
Bat_I.BackColor = &H8000000F
Bat_U.BackColor = &H8000000F
End If
End Sub
Private Sub Ch_Cutt_Click()
If Ch_Cutt.Value Then
Cutt_Sp.BackColor = vbWhite
Cutt_I.BackColor = vbWhite
Else
Cutt_Sp.BackColor = &H8000000F
Cutt_I.BackColor = &H8000000F
End If
End Sub
Private Sub Ch_Logfile_Click()
If Ch_Logfile.Value Then
Ch_Logfile.ForeColor = vbRed
LogNum = LogNum + 1
sPath = App.path & "\" & "Log_" & Trim(Str(LogNum)) & ".txt"
Open sPath For Output As #iFileNumber
' Print #iFileNumber,
' Print #iFileNumber, "Text1.Text"
Else
Ch_Logfile.ForeColor = vbBlack
Close #iFileNumber
End If
End Sub
Private Sub Ch_Motor_Click()
If Ch_Motor.Value Then
Mot_Li.BackColor = vbWhite
Mot_Re.BackColor = vbWhite
Else
Mot_Li.BackColor = &H8000000F
Mot_Re.BackColor = &H8000000F
End If
End Sub
Private Sub Ch_Protokoll_Click()
If Ch_Protokoll.Value Then
Log_Dez.BackColor = vbWhite
Log_Hex.BackColor = vbWhite
Else
Log_Dez.BackColor = &H8000000F
Log_Hex.BackColor = &H8000000F
End If
' Debug.Print "bLog:="; bLog
End Sub
Private Sub Ch_Start_Click()
Timer1.Interval = 5000
If Ch_Start.Value Then
Ch_Start.ForeColor = vbRed
Ch_Start.Caption = "Stop"
Timer1.Enabled = True
Else
Ch_Start.ForeColor = vbBlack
Ch_Start.Caption = "Start"
Timer1.Enabled = False
End If
End Sub
Private Sub Ch_Uhr_Click()
If Ch_Uhr.Value Then
Ch_Uhr.ForeColor = vbRed
Ch_Uhr.Caption = "Uhr Stop"
Else
Ch_Uhr.Caption = "Uhr Start"
Ch_Uhr.ForeColor = vbBlack
End If
End Sub
Private Sub Eingabe_Click()
iEingabe = Val(Eingabe.Text)
Form1.Eingabe.Visible = True 'Antwortfeld anzeigen
Form1.Eingabe.SetFocus 'Cursor ins Textfeld setzen
Me.KeyPreview = True
End Sub
Private Sub Lehrmachen_Click()
Log_Dez.Text = ""
Log_Hex.Text = ""
End Sub
Private Sub Cmd_ComSetup_Click()
Load Form2
Form2.Show
End Sub
Private Sub Form_Load()
' Einstellungen aus der Datei laden
Me.Left = GetPrivateProfileInt("Fenster", "linkerRand", 200, App.path & "\" & "optionen.ini")
Me.Top = GetPrivateProfileInt("Fenster", "obererRand", 100, App.path & "\" & "optionen.ini")
LogNum = GetPrivateProfileInt("Log", "LogNum", 0, App.path & "\" & "optionen.ini")
a = GetPrivateProfileInt("Comm", "Settings", 9600, App.path & "\" & "optionen.ini")
b = GetPrivateProfileInt("Comm", "PortNr", 1, App.path & "\" & "optionen.ini")
Form2.Combo4.ListIndex = b
rts = GetPrivateProfileInt("Comm", "RTSEnable", 1, App.path & "\" & "optionen.ini")
dtr = GetPrivateProfileInt("Comm", "DTREnable", 1, App.path & "\" & "optionen.ini")
If b <> 0 Then
If MSComm1.PortOpen = False Then 'if comport is disabled....
' ComSetup.Caption = "COM " & b & " " & a
MSComm1.CommPort = b
MSComm1.Settings = a
MSComm1.RThreshold = 1
MSComm1.DTREnable = dtr
MSComm1.RTSEnable = rts
MSComm1.PortOpen = True ' enable it.
Form1.Cmd_ComSetup.Caption = "COM" & Trim(Str$(Form1.MSComm1.CommPort)) & ", " & Form1.MSComm1.Settings
End If
End If
iFileNumber = FreeFile
'sPath = App.path & "\" & "LogFile.txt"
End Sub
Private Sub Form_Unload(Cancel As Integer)
WritePrivateProfileString "Fenster", "linkerRand", Str$(Me.Left), App.path & "\" & "optionen.ini"
WritePrivateProfileString "Fenster", "obererRand", Str$(Me.Top), App.path & "\" & "optionen.ini"
WritePrivateProfileString "Log", "LogNum", Str$(LogNum), App.path & "\" & "optionen.ini"
'If MSComm1.PortOpen = True Then
WritePrivateProfileString "Comm", "Settings", MSComm1.Settings, App.path & "\" & "optionen.ini"
WritePrivateProfileString "Comm", "PortNr", Str$(MSComm1.CommPort), App.path & "\" & "optionen.ini"
WritePrivateProfileString "Comm", "DTREnable", Str$(dtr), App.path & "\" & "optionen.ini"
WritePrivateProfileString "Comm", "RTSEnable", Str$(rts), App.path & "\" & "optionen.ini"
If Form1.MSComm1.PortOpen Then Form1.MSComm1.PortOpen = False
'End If
If Ch_Logfile.Value Then Close #iFileNumber
Unload Form2
End Sub
Private Sub Timer1_Timer()
Dim iTemp As Integer
Dim sTemp As String
If Ch_Logfile.Value Then Print #iFileNumber, Date & " " & Time();
If iEingabe > 0 Or iEingabe > 50000 Then
If SendBefehl(iEingabe, 0, 3, iTemp) Then Ergebnis = Str$(iTemp) & " - " & Hex$(iTemp)
End If
If Ch_Uhr.Value Then
If SendBefehl(14013, 0, 1, iTemp) Then sTemp = Right$(Str$(100 + iTemp), 2) & "."
If SendBefehl(14009, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & "."
If SendBefehl(14007, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & " "
If SendBefehl(14005, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & ":"
If SendBefehl(14003, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2) & ":"
If SendBefehl(14001, 0, 1, iTemp) Then sTemp = sTemp & Right$(Str$(100 + iTemp), 2)
Uhrzeit = sTemp
End If
If Ch_Bat.Value Then
If SendBefehl(491, 0, 3, iTemp) Then Bat_I = Str$(iTemp)
If SendBefehl(12020, 0, 3, iTemp) Then Bat_U = Str$(iTemp)
If SendBefehl(12030, 0, 3, iTemp) Then Bat_U = Bat_U & " - " & Str$(iTemp)
If SendBefehl(12000, 0, 3, iTemp) Then Bat_AH = Str$(iTemp)
If SendBefehl(495, 0, 3, iTemp) Then Bat_AH = Bat_AH & " - " & Str$(iTemp)
If SendBefehl(563, 0, 3, iTemp) Then Bat_Temp = Str$(iTemp)
If SendBefehl(565, 0, 3, iTemp) Then Bat_TempL = Str$(iTemp)
End If
If Ch_Cutt.Value Then
If SendBefehl(12010, 0, 3, iTemp) Then Cutt_Sp = Str$(iTemp)
If SendBefehl(4750, 0, 1, iTemp) Then Cutt_I = Str$(iTemp)
If SendBefehl(557, 0, 1, iTemp) Then Cutt_I = Cutt_I & " - " & Str$(iTemp)
End If
If Ch_Motor.Value Then
If SendBefehl(9408, 0, 1, iTemp) Then Mot_Li = Str$(iTemp)
If SendBefehl(410, 0, 1, iTemp) Then Mot_Li = Mot_Li & " - " & Str$(iTemp)
If SendBefehl(9407, 0, 1, iTemp) Then Mot_Re = Str$(iTemp)
If SendBefehl(409, 0, 1, iTemp) Then Mot_Re = Mot_Re & " - " & Str$(iTemp)
End If
If SendBefehl(497, 0, 3, iTemp) Then Status = Right$("0000" & Hex$(iTemp), 8)
If Ch_Logfile.Value Then Print #iFileNumber,
End Sub
Public Function SendBefehl(Adresse As Integer, SubAdr As Integer, typ As Byte, ByRef Daten As Integer) As Boolean
Dim i, j, n As Long
Dim dat, adr As Long
Dim sData() As Byte
SendBefehl = False
For j = 1 To 10
PrStat = 0
adr = 0
dat = 0
MSComm1.Output = Chr$(&HF) _
& Chr$(HiByte(Adresse)) _
& Chr$(LoByte(Adresse)) _
& Chr$(HiByte(SubAdr)) _
& Chr$(LoByte(SubAdr))
DoEvents
n = 0
Do
n = n + 1
If n > 50000 Then
Exit Do
End If
sData = MSComm1.Input
For i = 0 To UBound(sData())
' Debug.Print "i:="; i; j; n; PrStat; sData(i); adr; dat
Select Case PrStat
Case 4
If (typ And &H2) Then dat = Bytes2Word(sData(i), dat)
PrStat = 5
Case 3
If (typ And &H1) Then dat = sData(i)
PrStat = 4
Case 2
adr = (adr * CLng(256)) + sData(i)
PrStat = 3
Case 1
adr = sData(i)
PrStat = 2
Case 0
If sData(i) = &HF Then PrStat = 1
Case Else
PrStat = 0
adr = 0
dat = 0
End Select
Next i
Loop Until PrStat = 5
If adr = Adresse Then
SendBefehl = True
Exit For
Else
Beep
End If
Next j
Daten = dat
' Debug.Print "n:="; n; Adresse; Daten; typ
If Ch_Protokoll.Value Then
Log_Dez.Text = Log_Dez.Text & Str$(Adresse) & "," & Str$(Daten) & Chr(13) & Chr(10)
Log_Hex.Text = Log_Hex.Text & Hex$(Adresse) & "," & Hex$(Daten) & Chr(13) & Chr(10)
End If
If Ch_Logfile.Value Then Print #iFileNumber, "," & Str$(Daten);
End Function
Code:#include "/pocketc/pcheader.h"
int wind_event, ret;
int Status, Rx_Stat = 0;
char zz, cc;
int SendBefehl(int a, int sa, char typ, int &d) {
int i,j;
int t;
int dat =0, adr =0;
t = (typ & 0x3);
//putsl("a :"+ (int)a +" hi:" + ((int)a>>8) + " lo:" + (int)(a & 0xff));
//putsl("sa :"+ (int)sa +" hi:" + ((int)sa>>8) + " lo:" + (int)(sa & 0xff));
for (i = 0; i < 2; i++) {
writebyte(ret, (char)0xf);
writebyte(ret, (char)a>>8);
writebyte(ret, (char)a);
writebyte(ret, (char)sa>>8);
writebyte(ret, (char)sa);
j = 3;
Rx_Stat = 0;
do{
commwait(ret,0);
wind_event = event(1);
sleep(0);
switch(wind_event) {
case PM_COMMEVENT: { // Serial Port
do {
cc = readbyte(ret);
// putsl("1 Rx_Stat:"+ Rx_Stat +" j:"+j +" cc:"+(int)cc);
switch(Rx_Stat) {
case 0: {
if ((int)cc == 0x0f) Rx_Stat = 1;
break;
}
case 1: {
Rx_Stat = 2;
adr = ((int)cc) <<8 ;
break;
}
case 2: {
Rx_Stat = 3;
adr = (adr & 0xff00)|(int)cc;
break;
}
case 3: {
Rx_Stat = 4;
if (t & 0x1) dat = (int)cc;
break;
}
case 4: {
Rx_Stat = 5;
if (t == 0x3){
dat = cc << 8 | dat;
}
if (t == 0x2) dat = cc;
break;
}
default: {
Rx_Stat = 0;
adr = 0;
dat = 0;
break;
}
} // switch(Rx_Stat)
}while(Rx_Stat !=5)
break;
}
case PM_CHAR:{ // Keyboard
zz = key();
puts((int)zz);
break;
}
case PM_NONE: break;
case PM_TIMER: {
j--;
break;
}
} // switch(wind_event)
} while ((j > 0) && (Rx_Stat != 5))
// putsl("1 adr:"+(int)adr+" dat:"+(int)dat);
// putsl("2 Rx_Stat:"+ Rx_Stat +" j:"+j +" cc:"+(int)cc);
if (a == adr) {
if (dat > 32768) d = ( dat | 0xffff0000) ;
else d = dat;
if (j) return 1;
}
} // for i
// putsl("fehler j:"+(int)j+" Rx_Stat:"+(int)Rx_Stat);
return 0;
}
main() {
int i,iTmp;
int Daten;
int nTimerID;
int Cur_x =0;
int BIalt[2] = {0,170};
clear(); // Bildschirm löschen
// showconsole();
nTimerID = settimer(1,200); // 200ms Timer
putsl("AutoMower Comm");
ret = seropen(9600,"8N1N",1000);
putsl("seropen:" + ret);
if (!ret) {
alert("Fehler beim öffnen von COM1:");
quit();
}
commsetmask(ret,EV_RXCHAR);
/* ein test für das typ Flag
ausgabe auf der Console */
SendBefehl(497,0,0,Daten) ;// Status
puts("0-NUL:"+Daten+ ", ");
SendBefehl(497,0,1,Daten) ;// Status
puts("1--lo:"+Daten+ ", ");
SendBefehl(497,0,2,Daten) ;// Status
puts("2--hi:"+Daten+ ", ");
SendBefehl(497,0,3,Daten) ;// Status
putsl("3-int:"+Daten);
rect(0,70,240,270);
rect(1,1,239,68);
/* Akkuwerte */
text(4,2,"Status:");
text(150,2,"Bat_mAh:");
text(4,18,"Bat_T:");
text(80,18,"Bat_I:");
text(160,18,"Bat_U:");
/* Induktions-Schleife */
text(4,34,"L_A0:");
text(85,34,"L_N7:");
text(165,34,"L_F9:");
/* Motoren */
text(4,50,"M_Mä:");
text(85,50,"M_Ml:");
text(165,50,"M_Mr:");
for (i = 0;i < 5000; i++) {
Cur_x = (i/5) % 240;
/* Akku-Strom laden/entladen */
settextcolor(0,255,255);
setpenattr(0,1,0,255,255);
if (SendBefehl(491,0,3,Daten)) { // Bat I
text(120,18,Daten+ " ");
iTmp = 170-(Daten/25);
// iTmp=170;
line(BIalt[0],BIalt[1],Cur_x,iTmp);
BIalt[0] = Cur_x;
BIalt[1] = iTmp;
}
/* Akku-Spannung in mVolt */
settextcolor(0,255,0);
setpixelattr(0,255,0);
if (SendBefehl(12030,0,3,Daten)){ // Bat U
text(200,18,Daten+ " ");
setpixel(Cur_x,265-((Daten-1500)/125));
}
/* Akku-ladung in mAh */
settextcolor(0,0,255);
setpixelattr(0,0,255);
if (SendBefehl(12000,0,3,Daten)){ // mAh
text(205,2,Daten+ " ");
setpixel(Cur_x,265-(Daten/15));
}
/* Akku-Temperatur */
settextcolor(255,0,0);
setpixelattr(255,0,0);
if (SendBefehl(563,0,3,Daten)) {// Temperatur
text(45,18,Daten+ " ");
setpixel(Cur_x,265-(Daten*3));
}
setpixelattr(0,0,0);
settextcolor(0,0,0);
/* Mäher-Status */
if (SendBefehl(497,0,3,Daten)) // Status
text(45,2,Daten+ ", ");
/* BegrenzungsSchleife */
if (SendBefehl(424,0,3,Daten)) // A0
text(40,34,Daten+ " ");
/* Ladestation Nah-Signal */
if (SendBefehl(426,0,3,Daten)) //N7
text(120,34,Daten+ " ");
/* Ladestation Fern-Signal */
if (SendBefehl(427,0,3,Daten)) // F9
text(195,34,Daten+ " ");
/* Motor- Mähwerk in rpm */
if (SendBefehl(12010,0,3,Daten))
text(40,50,Daten+ " ");
/* Motor- Links in rpm */
if (SendBefehl(9408,0,3,Daten))
text(120,50,Daten+ " ");
/* Motor- Rechts */
if (SendBefehl(9407,0,3,Daten))
text(195,50,Daten+ " ");
sleep(1);
} // for
killtimer(nTimerID);
fileclose(ret);
// return 0;
alert("is fetich");
quit();
}