PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rnbfra Multi-Thread und Netzwerkfähig mit GUI im www, jetzt



Seiten : 1 2 3 [4]

marvin42x
05.12.2006, 16:13
Das mit dem zuschütten kenne ich. Da hast Du meine Anteilnahme.
Das Du Dich kurz gemeldet hast ist nett und entbindet mich von der Frage ob ich Dich seit Deinem letzten Beitrag tödlich beleidig habe :-)

Key-Words:

So würde das in etwa in Vb aussehen.


Public Function POSX(ByVal Argument As String) As String
Dim Result As String = ""

If Argument = "" Then 'Wenn nichts mitgegeben wird
Result = Convert.ToString(RnWizard.Top) 'Position X auslesen und als Ergebnis ausgeben
If MyLogLevel > 2 Then
Console.WriteLine(MyPID & ": FormPosX " & Argument)
End If
Else
RnWizard.Top = (Convert.ToDecimal(Argument)) 'Position X als Dezimalzahl zuweisen
Result = Convert.ToString(RnWizard.Top) ' Ergebnis der Aktion holen
If MyLogLevel > 2 Then
Console.WriteLine(MyPID & ": PosX " & Argument)
End If
End If
Return "POSX=" & Result 'Rückgabe des Ergebniss
End Function '(Autor:Marvin42x) 20.11.2006 GG '----Fertig--------------------


Auf das mit dem löschen bei POSX= würde ich gerne verzichten.
Außer es gäbe einen Grund den ich noch nicht kenne.
In dem Beispiel sieht man das ich auf „leeres Argument“ prüfe

Der Interne Aufruf sieht so aus:

Ergebniss = POSX(„“)
Ergebniss = POSX(120)

Der Externe so:
POSX
Oder ,POSX=120,

im Ergebniss ist das dann gleich.
Nur beim Externen würde eine Senderoutine das Ergebniss an den Sender zurückschicken damit der weis das alles geklappt hat.
Oder im anderen fall „POSX“ würde er erfahren wo sein Kindchen gerade steckt.

Ich hoffe die Frage mit dem Funktionsaufruf jetzt richtig verstanden zu haben?

RTF:
Na dann können wir die Doku ruhig in Word schreiben und speichern sie als RTF ab.
Das scheint mir mal als erste Lösung nicht schlecht.


Netter Gruß

PicNick
05.12.2006, 18:05
Nein, nein, keine Sorge, alles ok.
Keywords:
Also mir isses recht, wenn wir es so machen. Mein Beispiel mit dem Löschen hinkt natürlich für numerische Felder.
Aber ein ToString liefert sowohl bei "000" als auch bei "" immer dieselbe Null, den Check, ob überhaupt ein Value da ist, muß man dann vorher machen
Aber was solls. Schön wär's, wenn man für die Keyword-Texte irgendwo (zentral) Konstanten führen könnte, dann ist eine ev. Änderung nicht tragisch.


RTF: Muß ich einfach mal probieren. In letzter Version sollte es ja eh eher eine PDF oder sowas sein, Word ist ja viel zu Plattform-abhängig.

marvin42x
05.12.2006, 22:06
Den Check auf gar nichts kann ich gerne einbauen. Ich weis aber nicht wie ich auf gar nichts prüfe. Kannst Du da mal eine Zeile beisteuern?
Zur Not könnte man auch ein „Nothing“ als String übergeben um in keine Nullzuweisung rein zu rennen.

Das mit den Konstanten habe ich noch nicht verstanden.
Zentral hört sich in dem Fall aber nicht schlecht an.

Netter Gruß

PicNick
06.12.2006, 07:21
z.B,
CONST CMD_PID_SET = "SETMYPID"

if key = CMD_PID_SET then .....




Ich muß aber schauen, ob das dem VB kein Ungemach bereitet. Bei C ist sowas üblich

PicNick
16.12.2006, 11:17
Hi, wenn auch eingeschränkt, aber ich lebe noch.
Wo ist denn im Moment Not am Mann, speziell, was den RN_SERVER betrifft ? EIn paar Handgriffe werd Ich ja wohl noch irgendwo unterbringen können.

marvin42x
16.12.2006, 11:46
Hi PicNick
Ich habe die Zeit auch für eigene Dinge dringend gebraucht womit kein Zugzwang entstanden ist.
Was ich Dir als Info sagen kann.
Unter http://www.marvins-lab.roboterbastler.de/
Hat mir ACU freundlicherweise Webspace zur Verfügung gestellt.
Derzeit baue ich da eine Website. Mir schien es sinnvoll das alles mal auf einem Haufen zusammen zu tragen.
ACU hat mir noch Accounts für weitere FTP-Nutzer eingeräumt.
Damit könnte ich auch Dir und anderen Projektteilnehmern den eigenen Zugang zum Up und Download ermöglichen.
Damit könnten wir dort unabhängig die jeweils gültigen Fassungen deponieren.
Ich bin in Sachen Website und alles drum rum nicht der Überflieger. Also wenn Du was anders haben willst oder sonst was dann sag was und wir werden sehen ob wir das dann hinbekommen.
Diese Aktion bedeutet in keiner Hinsicht den Auszug aus dem Roboterforum.

Weiter habe ich die Key=Value Befehle auf allgemeinen Wunsch eines einzelnen Herrn deutlich gestrafft, gekürzt, standardisiert.
Docu folgt.
Ansonsten lass es Dir gut gehen und genieße die Zeit in der ich nicht mit was Neuem komme :-)

Ach so neu……

Nein nein.

Netter Gruß

Ps. vielleicht einen Server der automatisch beim Aufruf connectet?

PicNick
16.12.2006, 12:57
Ps. vielleicht einen Server der automatisch beim Aufruf connectet?


Gibt es schon eine Syntax etc. für die start-commandline ?

marvin42x
16.12.2006, 13:43
So weit wollte ich es am Anfang gar nicht treiben.
Es würde genügen wenn er auf 127.0.0.1 port 42 connected und den Datenverkehr der dann dort aufschlägt verteilt.
Aber im besseren Fall wäre die derzeitige Syntax:

rn_server.exe IP=127.0.0.1,PORT=42,START=Auto,SER=1,POSX=50,POSY =50

Wenn er noch CLOSE=1 zum schließen kann ist schon fein.
Wir könnten uns wünschen das er SER=1 könnte. Wobei die 1 den Seriellen Port repräsentiert den er öffnet. SER ist nur ein Vorschlag, das kannst Du Dir wünschen wie das heissen soll.
Der Befehl PID liefert, wenn nichts übergeben wird, z.Z. bei mir die PID des Angesprochenen wieder. Wenn ich was übergebe interpretiert er das als die PID von Mutti. Das brauchen wir aber im Moment beim Server nicht.

Wie angedeutet mach ich dann erstmal die Docu aktuell.
DerWebsite Server ist leider im Moment down. Aber ich denke mal der kommt schon wieder.

Netter Gruß

PicNick
16.12.2006, 14:17
Gut, ich schließ das in meinAbendgebet mit ein.
Frage nur:
rn_server.exe IP=127.0.0.1,PORT=42,START=Auto,SER=1,POSX=50,POSY =50,CLOSE=1

Was soll er da tun ?

marvin42x
16.12.2006, 14:32
:-) :-) :-)

Aufhören ältere Herrschaften zu veräppeln.

Netter Gruß

marvin42x
16.12.2006, 15:15
Sorry habe mich verschrieben.
START kennt die Parameter:
AUTO
NoAUTO
oder wenn nix dann liefert er den aktuellen Parameter.
Bei den Befehlen sind aber Sachen bei die erst im Netzverkehr Sinn machen. Wenn man im Betrieb umconfigurieren will. Der Befehl Start wird aber voraussichtlich im laufenden Netz- Betrieb keine Rolle mehr spielen.

Wie gesagt ich bereinige gerade die Docu da steht das dann noch besser drin.

Netter Gruss

NumberFive
18.12.2006, 07:39
Hallo es gibt jetzt was was die Telegramme in eine Mysql table schreibt.

www.i-do-more.de/mine-robo/download/RN-Protokoll.zip

DataCenter ist die Application für den Mql.

das telegramme wieder holen kommt noch aber zur zeit habe
ich einfach keine Zeit was zu machen.

MySql DB erstellen:



create database roboter;
Commit;
create user 'ROBO'@'192.168.2.%';
update mysql.user set password = PASSWORD('PASS') where user ='ROBO';
grant ALL ON roboter.* TO 'ROBO'@'192.168.2.%';
FLUSH PRIVILEGES;

-- MySql runter fahren mysqladmin shudown
-- mysqldump -uroot -a -rexport.sql personal // Dump machen
-- Achtung bei insert wird bei zu lange einfach abgechitten (varchar)
drop table PROT_LOG;

CREATE TABLE PROT_LOG
( term timestamp,
msec double not null,
Message varchar(4000),
IDFROM double NOT NULL,
IDTO double NOT NULL
) Type = InnoDB;

marvin42x
18.12.2006, 08:54
Völig neues Thema für mich.
Ich komme leider erst morgen dazu das zu besichtigen.
Vor Weihnachten türmt es sich regelmäßig bei mir.

Netter Gruß

marvin42x
19.12.2006, 08:45
@NumberFive:

Ich bekomme hier noch kein Bein an den Boden.
Beim Versuch die Anwendungen zu starten habe ich allgemeine Missfallensbekundungen geerntet.

RN Protokoll -DLL Test Prog sag wenn ich den Connect Button drücket:
Fehler:
Objekterstellung durch ActiveX-Komponente nicht möglich.
Was nun?

RNComDataCenter sagt beim Start:
Die Anwendung konnte nicht gestartet werden, weil LIBMYSQL.dll nicht gefunden wurde.
Neuinstallation der Anwendung könnte das Problem beheben.

Der RN-Protokoll SerialServer sagt:
Init ging schief bitte Einstellungen Kontrolieren.
Wobei COM1 richtig ist.

Dann weis ich noch nicht wie ich den geposteten Code von Dir einsetzen kann.

Kannst Du einem Uninformierten mal zum Start verhelfen?

Vielleicht ein Script, was das alles richtig anwirft oder ein HowTo?

Netter Gruß

marvin42x
19.12.2006, 12:19
@PicNick:
Mir ist da gerade das Wort Ramdisk durch den Kopf gewandert.
So was ist ja etwas aus der Mode gekommen.
Aber bei der Frage ob es einen gemeinsamen Platz im Speicher geben sollte auf den alle Applikationen zugreifen können dachte ich, frag mal den PicNick ob das relevant für uns ist.

Netter Gruß

PicNick
19.12.2006, 12:40
Hi, Marvin !
Bei Applikationen, die auf einem einzelnen Rechner werken, geht ja manches. Nur, wenn wir den Netzwerk-Gedanken hoch halten, also jeder Furz.. auf einem anderen Rechner (Plattform?) , bleibt ja doch wieder nur irgendeine Variante von IP.

Es gibt ja ein paar so Ansätze, gemeinsame Memory von applikationen, und die Memory dann mit einer (zu schreibenden) Middleware quer über die verschiedenen Rechner auszutauschen.

Aber im Zeitalter der Objekte, die ja keine Daten, sondern Nachrichten austauschen, ist das eigentlich nicht mehr in.

NumberFive
20.12.2006, 08:17
@marvin42x

RNComNetworkLayer.exe
RNComDataCenter.exe

die Zwei sind erst mal interessant den Rest machen später da muß auch ich noch einiges tun.

RNComNetworkLayer.exe mit /RegServer starten das sollte dann ein message Box geben.

RNComDataCenter.exe starten. Die Fehlende DLL ist bei Mysql dabei den muß du natürlich erst installieren.

wichtig ist zur zeit noch das der rn_server.exe läuft bevor man den DataCenter bzw. RNComNetworkLayer startet da ich zur zeit nur einmal
den connect probiere.

die Ini anpassen nicht vergessen

@all

warum ram disk ?
Ich hatte vor den DataCenter so zu machen das man dort werte speicher kann. so änlich wie wir das darmals bei der MC auch gemacht habe.

so weit erst mal

marvin42x
21.12.2006, 12:51
@PicNick:
Erstmal danke für das Statement zur Ram- Disk.
Bei meinem Versuch ein bisschen Übersicht in das RnWizard Projekt zu bringen kämpfe ich mit einem Problem.
Deine Doku im Wordformat ist ja, wie ich mit der Zeit erst mitbekommen habe, eine ganz schlaue Geschichte.
Mein Problem ist, wie bekomme ich dieses Dokument so gewandelt das es in der Webseite genau so aussieht wie in Word. Ohne das ich viel Handarbeit anlegen muss.
Ich wollte Pdf erstmal nicht an erster Stelle haben weil der Reader immer so umständlich startet. Aber wenn es nicht anders geht werde ich auch das ins Auge fassen.
Weist Du aus versehen was dazu?

Den Anfang meiner Versuche findest Du hier:

http://www.marvins-lab.roboterbastler.de/index.html


Netter Gruß

PicNick
21.12.2006, 12:55
Hallo, Berliner !

Wenn ich ganz faul bin, sag ich "Als Webseite speichern"

Dabei macht sich ein Inhaltsverzeichnis vorne auch ganz gut

*ho, ho, ho*

marvin42x
21.12.2006, 13:27
Der Weihnachtsmann und seine Schergen haben gut lachen wenn das Fußvolk mit den Widrigkeiten des Lebens kämpft. Wo Inhaltsverzeichnisse aus unerfindlichen Gründen spurlos das Weite suchen.
Aber ich werde mal sehen, dass ich den Flohzirkus noch bändige.
Bis dahin einen.

Netten Gruß

marvin42x
21.12.2006, 21:05
Die Hürde ist genommen, war eine Denkblockade von mir. Der Hinweis Website Speichern hat weitergeholfen.

Netter Gruß

marvin42x
04.01.2007, 08:49
Als Erstes.
@all
Ein schönes neues Jahr für alle.

Als Zweites:
@PicNick:
Ich baue gerade ein Pseudo- Devise zum Loggen übers Netz.
Dabei taucht die Frage auf:
Wie Adressiere ich das?

Ich stelle mir das im Moment so vor:
Wenn z.B. ein Trackbar startet loggt er so lange in die eigene Tasche bis er Netzverbindung hat.
Ab dann loggt er mit Messages zum DEVICELOGG oder wie immer das heißen soll.

1- Wie sieht jetzt die Message aus?
2- Wie weis das DEVICELOGG von wem das kommt?

3- Das DEVICELOGG stelle ich mir als Datenbank vor. Würde das Sinn machen?

Netter Gruß

PicNick
04.01.2007, 09:13
Prosit !

Ich hab' das bei mir so:
Beim Starten wird sowas wie "PROT-SETUP" aufgerufen,
der sieht im Register nach, ob es im Top-Directory die Parameter PROT_IP = x.x.x.x und PROT_PORT = nn gibt.
dann probiert er in Intervallen (einstellbar ~60 sec) dorthin Verbindung aufzunehmen.
klappt das, schickt er alle Messages, die er bis dahin gesammelt hat dorthin.
klappt das nicht oder waren keine Parameter da, sammelt er die Messages, allerdings maximal (einstellbar ~100) (Ältere haut er weg)
Die "Prot-Send" funktion/sub steht aber immer zur Verfügung, mit und ohne Verbindung
Die Message:
Target (Prot-device-code)
Source (PID, die gibt's immer)
MsgTyp
"DEFINE" ==> Hostname, Processname, etc.
"PROT"
==> StatusCode => facility, code, severity
==> Free Text

facility: das ist das Modul bzw. der Level (als code), der die Message verfaßt
code: Status text (enumerated)
severity 1 SUCCESS 2 WARNING 3 ERROR 4 FATAL

Der Unterschied ERROR/FATAL
ERROR ist ein Fehler, wo aber die Applikation noch sinnvoll weiterarbeiten kann (timeouts, parameterfehler, etc. )
FATAL ist üblicherweise die letzte meldung vor Absturz.

Man kann "Devicelog" für analysen in einer datenbank machen. ABER: Devicelog sollte immer so tief wie möglich im System angelegt sein, damit auch "Database-Corrupt" irgendwo hinheschrieben werden kann.

:-)

marvin42x
04.01.2007, 15:28
Danke für das schnelle Statement.
Das mit der Datenbank lege ich dann erstmal ins Regal für später.
Den Rest werde ich mal in einer einfachen Version angehen.
Was ich mich generell noch frage:

-Loggen die Kleinen eigentlich auch was übers Netz?
Sie plappern einerseits ja eh schon im Netz.

-Soll das Logdevice einen eigenen Log- Port aufmachen und Server spielen?
Ergänzend: Das Logdevice ist in meinen Überlegungen immer ein Eigenständiges Programm. In meinem Fall halt eine Instanz des RnWizard :-)

-Oder soll es Netz-Teilnehmer sein und am RnServer hängen?
Letzteres hatte ich aktuell im Auge.

-Hat das Logdevice eine Adresse im Rn- Adressraum TargetClass, TargetID?
Oder wie wollen wir das laufen lassen damit die Kleinen möglichst von diesen Sachen nicht behelligt werden?

Wir könnten ja für TCP zu TCP TargetClass und TargetID auf Null setzen, eine 1 im Command und die Adressierung folgt dann im Messageteil?


Kannst Du mal als Verständnis- bildende Maßnahme einen Demo String einer Message an das DeviceLog schreiben?
Damit wir Missverständnisse vermeiden was die Art der Adressierung angeht.

Netter Gruß

PicNick
04.01.2007, 18:17
Datenbank: Ja, erstmal eine normale File erzeugen. Importieren in Excel oder Datenbank können wir immer noch, wenn wir z.B. mein heißgeliebtes CSV-Format verwenden.
Log-Device Stand-alone / embedded Program:
Ich wär für stand-alone bzw. ausprägung des Wizard. Soviel Extrawürste hat der garnicht. Er kriegt über sein Port was rein und schreibt es (vielleicht etwas aufbereitet wegen der Lesbarkeit) in eine File und aus.
Die üblichen Start-Parameter + Log-file / directory

Wenn wir ihn an RN-Server hängen, wärs gut, alle Protokoll-Willigen schicken an eine vereinarte (feste) Target ID. das kann RN-server gut routen, wenn sich das Logdevice also "LOG" + ID anmeldet.
Und auch die µC können da leicht mitspielen, ohne Extras.
Aber dann muß doch ein Absender (SourceID) da sein. Is aber eh' wie gehabt.

Wir brauchen Target- und Source-ID nicht herschenken. Weil sonst müßten wir was ähnliches im Commandteil schreiben, also was solls, doppelt gemoppelt muß nicht sein.

Also: normale TCP Message

Target-ID 3 (= LOG-DEVICE ID)
SOURCE-ID x Absender-ID, auch µC
CMD 1 = command
command-txt STATUS=nn,TEXT="Oh weh, ein TImeout"

Sowas kriegt also das Logdevice uns schreibt einen Record

hh:mm:ss ; Source-ID ; Status ; Text <CRLF>


Antwort gibt's keine, is ja keiner neugierig.

marvin42x
04.01.2007, 19:10
Fein, so machen wir das.

Netter Gruß

NumberFive
05.01.2007, 07:35
Hallo und ein frohes Neues,

ich habe da mal zwei Teile angefangen. Ein Protokolierer (Mysql) und einen Videoserver. Der Protkolierer soll alle telegramme die durch system gerand sind notieren und wieder holbar machen und werte für das netz speichern können. der Video server sendet standbilder im jpg vormat so das man die am Controlplanel anzeigen kann.

Leider finde ich nirgend die genaue beschreibung des TCP Telegrammes damit ich da mit meiner Sofware hin kann. Währe schön es mal zu finden dann würde ich eiventuell noch ein DLL für VB6 machen ohne Net frame work.

Gruß

marvin42x
05.01.2007, 09:07
Hi NumberFive,
Danke, Dir auch so

Ich habe hier mal den Aufruf wie ich ihn verwende.
Dort sind in der Deklaration die Typen mit benannt.
IpRef ist dabei nicht direkter Bestandteil der Message sondern was Programminternes.

Hier die Variante mit Lib:

Deklaration der Libfunktion sieht so aus:
Das ist eine Schreibweise die VB6 auch so haben sollte.

Declare Function RnComMsgSend Lib "rnregist.dll" (ByVal IpRef As Integer, ByVal Tgtcls As Byte, ByVal TgtIdn As Byte, ByVal SrcCls As Byte, ByVal SrcIdn As Byte, ByVal Cmd As Byte, ByVal data As String, ByVal datalen As Integer) As Integer


Der Aufruf in der Sub sieht so aus:

Private Sub blablabla()

Dim res As Integer

res = RnComMsgSend(IpRef, RnMsgTgtClass, RnMsgTgtIdent, RnMsgSrcClass, RnMsgSrcIdent, RnMsgCommand, RnMsgValue, RnMsgValLen)

End Sub

Weitere Docus habe ich unter:
http://www.marvins-lab.roboterbastler.de/
eingestellt.
An meiner Signatur ist am Ende auch der Link dahin.
Dort kannst Du Dir auch den RnWizard runterladen wenn Du sehen willst wie das im Original geschrieben ist.


Protokollierer:
Das ist ja verführerisch den auch zum Loggen zu nehmen. Aber ich werde trotzdem erstmal den einfachen Logger mit Dateiausgabe fertigmachen, so als Minimalaustsattung.
Für den Roboterbetrieb finde ich das super Spannend so ein Protokollierer zu haben.

Ich hoffe, dass ich jetzt das richtige für Dich rausgesucht habe. Ansonsten musst Du noch sagen was Du genau brauchst.

Netter Gruß

marvin42x
09.01.2007, 14:41
@PicNick:
Thema Logdevice:

Ich ringe hier mit einer Schlange.
Die ist aus der Gattung Warteschlange, im Volksmund auch unter Queue bekannt.
Eigentlich läuft das schon ganz gut solange ich den Inhalt der Queue in eine Datei schreibe.
Das sind Strings mit etwa 60 Zeichen, ca. 30 an der Zahl.
Wenn ich das selbe nun über den Server sende behauptet er ab der 17. Message(im Einzelschritt Debug nachgezählt) er hätte 1414483245 Messages übertragen und stirbt.
Da habe ich immer ein bisschen ein schlechtes Gewissen das ich irgendwie nicht nett zu ihm bin. Wo er doch sonst ein Muster an Geduld ist.
Meine Abwägung zwischen selber suchen und Pic fragen ist soeben zu Deinen Ungunsten ausgeschlagen da ich mir jetzt schon redliche Mühe gegeben hatte, würde ich gern mal einen Tipp von Dir haben.

Netter Gruß

Edit:
Hier kannst Du, wenn benötigt, den Übeltäter runterladen:
http://www.marvins-lab.roboterbastler.de/html/downloads.html
Er firmiert unter dem Namen Debug.
Man braucht nur den Start Button drücken. Dann verbindet er mit dem Server(127.0.0.1:42). wenn man jetzt noch bei Log ein Häckchen macht beginnt es den Inhalt der Queue zu senden.

PicNick
09.01.2007, 18:58
Uiui, da mußt du mir helfen.
Ich mußte in den Sourcen die Ip-Adresse Ändern (127.0.0.1 mag meiner nicht, vermutlich wegen mehrere Netz-Karten)
Dann im Debug gestartet, Log angekreuzt und Start gedrückt.
Er mach das Logfenster auf (& schreibt rein), connected sich auch zu rn-server, aber sonst tut sich nix.

rudi ratlos ?

marvin42x
09.01.2007, 19:14
Vorsprung durch lesen :mrgreen:

Du musst erst den Nippel durch die Lasche ziehn.

Start drücken und dann log Häckchen.

Mit Start verbindet er.
das log Häckchen löst intern eine Logzeile aus.
Die trifft jetzt auf die Bedingung Connected und löst das Senden aus , was ja erst ab diesem Zeitpunkt Sinn macht.
Der Vorgang ist in der Engine in der sub LogIt

Netter Gruß

PicNick
10.01.2007, 06:55
..Start drücken und dann log Häckchen. ..
Diiiese Kombinationen hab' ich alle probiert. Das ist kein Unterschied.


Der Vorgang ist in der Engine in der sub LogIt

Ich werd mal gucken, ob bei mir da irgendwas anders läuft.

Kannst du nicht inzwischen von der Absturz-meldung einen Screenshot machen ?

marvin42x
10.01.2007, 08:23
Hmmmm.........
Das hört sich so an als ob Du den falschen als Patienten hast?
Ich hatte ihn mir gestern zum überprüfen runtergeladen und da war der Fehler reproduzierbar.
Ich hatte extra einen Link mit Debug reingestellt.


@PicNick:
Hier kannst Du, wenn benötigt, den Übeltäter runterladen:
http://www.marvins-lab.roboterbastler.de/html/downloads.html
Er firmiert unter dem Namen Debug.


Ob es daran liegt?
Der normale hat ja auch noch keine Queue eingebaut. Er besitzt auch noch keine Sub LogIt.

Netter Gruß

PicNick
10.01.2007, 08:33
mmmhhh. na, ich werd' schon draufkommen. :-)

marvin42x
10.01.2007, 08:37
Das mit dem Häkchen bei log ist ja etwas irreführend. Das Häcken bewirkt lediglich, dass ein Vorgang, hier das Logfenster zeigen, ausgelöst wird welcher mitgeloggt wird. Da würde auch jede andere Aktion genügen die einen Logvorgang auslöst. Dieser Vorgang des Loggens löst dann bei bestehender Verbindung das senden des Queue-Inhaltes aus.
Ich bin mir noch unschlüssig ob ich den Auslöser des Sendens lieber in die Connect- Routine einbaue?

Netter Gruß

PicNick
10.01.2007, 09:00
..Auslöser des Sendens lieber in die Connect..
Ich würde das extra lassen. Physische Verbindungen sind eigentlich eine andere Ebene als Protokolle schreiben.
Dzt. dreht sich ja alles um start, connect, disconnect und Parameter und um Protokollzeilen in dieser Richtung.
Irgendwann ist das aber nicht mehr so ein zentrales Thema (weil es einfach funzt).

marvin42x
10.01.2007, 16:20
@PicNick:
Weil wir gerade am Servern sind.
Ich versuche gerade den Fall abzufangen wenn der Server mal close ist und dann wieder open ist. Als Serverstörung sozusagen.
Ich habe dazu einen Timer der alle 2 Sekunden den IpRef auf Null abfragt und wenn dem so ist ein disconect und conect macht um wieder dabei zu sein.
Nebenher sendet er auch noch ein „alive“
Der IpRef geht aber nicht auf Null wenn der Server weg ist.
Wie weis ich denn, dass der Server weg gebrochen ist?

Netter Gruß

PicNick
10.01.2007, 18:51
Server-Disconnect spielt sich hier ab (Engine.vb)



While MsgRef <> 0
res = RnIpMsgSts(MsgRef) ' Read Status of Message
If res <> 0 Then
'IpState.Text = "ERR"
'NetStateServer = "ERR"
ReturnValue = "ERR"
'If MyDisplayLevel > 1 Then DisplayNetStateServer("ERR")
res = RnIpDrop(IpRef)
IpRef = 0
Else
.......................


Jetzt spiel ich mich mit dem "Debug" und komm nicht weiter.
Da macht er ( + LOg nach "Start") ein Logfenster auf, da steht aber nix drin ??

*seufz* ich schau weiter :oops:

EDIT I
Nun, ich bin jetzt soweit, daß er 40 ellenlange Zeilen mit irgendwas an den Server schickt (Log.txt aufgedreht und in file geschrieben).
Mehrmaliges Start/Stop Log on /off bringt auch nicht mehr Zeilen, außer ich starte Wizard neu

Hätte er da abstürzen sollen ?

Wer sollte diese Zeilen empfangen ?


EDIT II (spekulation)
1414483245

Ist hexadezimel 54 4F 4D 2D
das wären die Zeichen "-MOT"
Wird da was binäres mit Text überschrieben ?

PicNick
10.01.2007, 19:38
Geh', schau mal, ob da immer eine vernünftige Länge zustande kommt.
Wer weiß, wie der Strings in einer Queue behandelt, der Schlingel, der.

Gibt's nicht auch sowas wie effektive strlen (da war doch was mit "trim" etc. bin schon wieder etwas entwöhnt )


Public Sub SendFullMessage(ByVal TgtClass As Byte, ByVal TgtIdent As Byte, ByVal SrcClass As Byte, ByVal SrcIdent As Byte, _
ByVal Command As Byte, ByVal Value As String)
Dim res As Integer
Dim len As Integer



len = Value.Length 'DEBUG: probeweise vorher die Länge ermitteln

marvin42x
11.01.2007, 01:26
Hmm…. Scheint ja verwickelt, die Lage.

Ich habe unter:
http://www.marvins-lab.roboterbastler.de/html/downloads.html
einen Error Screenshot zum Download hingelegt.
Weiter habe ich den Salm den er Senden soll mal direkt in eine Datei geloggt und ebenfalls dem Screenshot beigelegt.
Indem ich nur die Sendezeile durch die Zeile für Dateischreiben ersetzt habe.
Das geht Anstandslos.


Punkt 1:
MOT kommt bei MOTHERPID als einziges im ganzen Programm vor.
Seeehr verdächtig.
Das ist die Zeile bei der der Server Aussteigt:
LOG=TIME=01:08:28,PID=19096,NAME=RnChild0,TEXT=NET ID=ID=0,NAME=RnChild0,MOTHERPID=NoMother,PID=19096
Das ist Zeile 19 im Logfile
Die ist Zeile ist 101 Zeichen lang und und MOT fängt bei 73 an.
Es ist die längste Zeile
Das steht im Trans Fenster des Servers:
1330457649
Und das dahinter als Message
00 03 00 00 01 4C 4F 47 3D 54 49 4D 45 3D 30 32 3A 31 31 3A 33 36 2C 50 49 44 3D *
Bei der folgenden Zeile kommt dann die Fehlermeldung und hin isser.


Punkt 2:
Es ist bei mir egal ob localhost oder die echte IP, ob Zuhause oder auf der Arbeit.
Immer identisches Verhalten.
Ratlos.
In Bart murmel: ich glaub ja der Server ist schuld, ja,…, oder doch nicht?

Punkt 3
Vergiss mal das Logfenster was aufgeht, das ist nur die Reaktion auf das Häckchen und Bedeutungslos in diesem Zusammenhang, da wir ja das Häckchen setzen nur zum Anstoßen des Sendens nehmen. Da würde auch jeder andere Vorgang der eine Logzeile generiert reichen.

Punkt 4:
Zitat:
Wer sollte diese Zeilen empfangen?
Wenn man Show drückt startet er jetzt auch ein Logdevice dazu, was sich zuständig fühlt, das Zeug in eine Datei zu schreiben. Da alles noch Broadcast ist sind wir hier noch nicht speziell. Zumal der Fehlerteufel gerade in einer sehr frühen Phase zugeschlagen hat wo noch nix fertig ist. Das kommt noch richtig wenn ich senden kann.

Punkt 5:
Zitat: Mehrmaliges Start/Stop Log on /off bringt auch nicht mehr Zeilen,
Ja, ca 38 Zeilen sind das Aufkommen beim Hochfahren. Danach passiert ja nix weiter also auch keine weiteren Logzeilen. Wenn man mit dem Loghäckche rumtoggelt entsteht jeweils eine neue Zeile.

Punkt 6:
Stringlänge:
Ja, habe ich auch immer im Verdacht. Habe, wie Du gesehen hast, sogar die Länge vorher ermittelt bevor ich sie zum Senden übergeben habe. Wobei ich nicht glaube das das was bringt.

Netter Gruß

PicNick
11.01.2007, 06:57
Morjen ! Ich werd' mir mal den rn_server ansehen, ob da eine Möglichkeit zum Überschreiben besteht (wenn der String länger ist)
Also beiß' dich da nicht fest.

marvin42x
11.01.2007, 13:37
@PicNick:
Ich bin gerade dabei die Netzwerk- Teilnahme im Wizard robuster zu gestalten.
Dazu habe ich ein Heardbeat eingerichtet.
Diese Funktion soll sich:
Punkt 1: Beim Server regelmäßig melden.(War m.E. auch so geplant)

Punkt 2:
Feststellen ob der Wizard noch mit dem Server verbunden ist. Wenn nicht.
Z:B: der Server ist kurz down und kommt dann wieder.
Versucht der Wizard periodisch sich mit dem Server zu verbinden.

Dazu braucht er aber Kenntnis das der Server weg ist.
Nach Erstkontakt habe ich IpRef welches nicht mehr Null ist.
Beim Kontaktabbruch von Aussen bleibt IpRef aber ungleich Null.
Womit ich damit nicht Testen kann.

Ich habe jetzt versucht über das Resultat (res) beim Senden an den Server zu erfahren ob er da ist.
res = RnComMsgSend(IpRef, TgtClass, TgtIdent, SrcClass, SrcIdent, Command, Value, ValLen)
Dort bekomme ich aber auch keine Wert Änderung.
IpRef bleibt <> 0
res ist immer 10

Mein Ziel ist:
Server und Client sollten möglichst unter den wiedrigsten Bedingungen immer wieder zueinander finden

Irgendeine Idee?

Netter Gruß

PicNick
11.01.2007, 14:06
Bei einem Post weiter oben hab' ich auf die stelle verwiesen, wo ipref normalerweise verschwindet.

marvin42x
11.01.2007, 16:41
Ja, hast Du drauf hingewiesen.
IpRef ist ja global und damit ideal für mich, um den Status zu erfragen.
Leider verändert er sich nicht wenn ich am Server close mache, auch nicht, wenn ich den Server schließe.
Auch das senden einer Message ändert da nichts am IpRef.
Kann ich das Aktualisieren von IpRef anstoßen ohne eine bestehende Verbindung zu stören?
Ich brauche nur irgend eine Abfrage ob die Verbindung noch am Leben ist.

Insgesamt lass Dich aber mit dieser Sache nicht stören. Ich werde das auch noch weiterverfolgen. Das ist nicht so eilig.

Netter Gruß

PicNick
11.01.2007, 18:59
Absturz:
Tscha, im moment und in der schnelle könne es weiterhelfen, kürzere Messages zu schicken.

Ipref:
Beim Debuggen habe ich während der Connection den RN-server abgedreht und RnWizard ist tatsächlich an der oben bezeichneten Stelle aufgetaucht und hat das Ipref dort auf null gesetzt.
Und wenn er selber abdreht, weiß er es ja eh.
Wieso klappt das bei dir nicht ?

marvin42x
11.01.2007, 22:31
Fein, das mit den kurzen Strings geht. Mehr brauche ich erstmal nicht.
Das mit dem IpRef schaue ich mir noch genau an. Muss ich doch auch können.
Wo kommen wir denn da hin.
Ich werde jetzt aber erstmal etwas Ordnung in die Sache bringen nach meiner ganzen Rumfummelei und dann geht es weiter.


Netter Gruß

NumberFive
23.01.2007, 05:52
Hallo Ihr Zwei,

so wie das aussieht seid ihr gut rüber gekommen.
nach dem netten Orkan mit ziegel verlust habe ich endlich mal wieder zwei minuten zeit hier rein zu sehen.

Leider finde ich immer noch nicht was ich suche. Schön das es ein lib gibt die mir das TCP zu sammen baut aber ich suche eigenlich den aufbau auf dem TCP um die Analyse selbt zu machen. Ich brauche das für die TCP / multicast um setzung. Also wie sieht der TCP stream wirklich aus ?

Ich bekomme es hin das Sich mein Gateway im rn_server melde und man ihn dort sieht. geht es das ich das teil welches dahinter liegt auch noch an gemeldet bekomme ?

Wie ist das mit den log devices auch wenn ihr alles selbst macht. ich habe ja auch so ein Teil. Das hätte ich auch als Normales file log erstmal bauen können. Aber ich möchte halt auch das es als Alternative zu verfügung steht.

Eine Videoserver der JPG's verschickt habe ich jetzt. aber leider passt er noch nicht hier ans Protokoll weil ich noch das ein oder andere nicht ver stehe.

Wenn der server mit langen Strings noch probs hat werden wir da wohl keine JPG's durch bekommen. Wo bei das doch sicher ein nette sache währe Bilder der robi cam am PC zu sehen *g*.

Edit 1:

Danke das ihr meine Sachen mit auf die HP gepackt habt.
Ihn wie weit ist für euch WLan ein Thema ?
Wie ist bei euch die Verbindung zwischen PC Netz und Roboter hardware.

Edit 2:

wie währe mal eine fest legung ein Verzeichnis strucktur ?
in dem Wizard projekt ist jetzt schon wieder alles Dopplet drin.
Ehrlich gesagt weiß ich jetzt nicht mehr wie ich die richtigen versionen
finden soll.


Gruß

marvin42x
23.01.2007, 08:45
Hi NumberFive,

schön das es Dich nicht weggeweht hat.
Ich bin heute und morgen etwas unter Zeitdruck und werde später noch mal mehr posten.

Vorab:
LogDevice:
Der Wizard soll ja nur eine Variante der Geschichte sein. Ein Beispiel in Visual Basic 2005 eben.
Ein LoggDevice von Dir ist eine Bereicherung als Alternative.
Auch andere Software Lösungen rund um das RnCom würde ich gut finden.
Das inspiriert, und nicht jeder ist in Basic unterwegs.
Selbst PicNick hat sich ja erst in diese Niederungen begeben um mir auf die Beine zu helfen.

Später mehr.

Netter Gruß

marvin42x
23.01.2007, 17:37
Nachtrag:
W-LAN:
Bei mir ist es so, dass ich W-LAN als normales Netz ansehe.

Hardware:
Ich habe ein Fahrgestell mit Epia-Mini und RNBFRA welches über W-LAN kommuniziert.
Und ein Brüderchen mit RNBFRA das über RN-Funkmodule kommuniziert.
Alles noch halbfertig. Da ich mich gerade in die Software festgebissen habe.
Die sollen aber beide am Ende laufen.

Verzeichnisstruktur:
Mit der Verzeichnisstruktur weis ich jetzt nicht genau was Du meinst.
Aber ich ändere oder erstelle gerne was wenn damit alles übersichtlicher wird.

Software:
Ich persönlich bin einer Vielfalt von Lösungen zugeneigt, die alle aber dasselbe Protokoll fahren können.
Ich kann dazu leider nur einen VB2005 Beitrag leisten.
Ich würde mich sehr freuen wenn ich auf dem Sektor von Anderen überflügelt werden würde.
Bis dahin mache ich brav weiter bis ich eine schlichte Komplettlösung auf dem Tisch habe.
Jetzt ist z.B. ein kleiner Netzmonitor dazugekommen und einen Herzschlag haben die Kleinen auch.
Sie sind jetzt auch etwas robuster im Fall eines Netzausfalls und versuchen immer wieder eine Familie zu werden.
Sie können übers Netz Loggen und kriegen auch brav mit wenn der Server mal weg ist.

Zum Thema TCP/IP bin ich nicht fit genug um was zu sagen. Aber wenn PicNick den Klauen der Sachzwänge mal entkommt machen wir bestimmt auch in Sachen Routing und Netz weiter.
Auf die Video Geschichte und die Datenbank bin ich auch gespannt.

Worauf ich im Moment hinarbeite ist eine Demo bereitzuhalten bei der ein Interessierter möglichst erstmal nur einen Knopf drücken muss und er erkennen kann was das ist. Alles andere ist nach meiner Meinung dem Untergang geweiht.

Netter Gruß

NumberFive
25.01.2007, 06:15
WLAN:

Naja ich habe da anso geschichten gedacht wie zu erkennen das die signal stärke abnimmt. Wenn das so ist Video Abschalte da die Band breite ab nimmt. Alarm auslösen. Ich wurde so Funktionen in mein Netzwerklayer bauen so können alle die Informationen holen.

DEMO:
Das ist sicher ein gute Idee das man so was haben muß. Aber auch die Doku ist wichtig damit andere was machen können.

Verzeichnisstruktur:
Das Problem ist folgendes in dein RnWizard.rar ist der rn_server zB. auch wieder mal zwei mal drin. So das man nie weiß welche version jetzt die Richtige ist. Konfig Files sind immer mit Kompletten verzeichnissen angeben das ist auch nicht so Klasse oder muß sauber dokumentiert sein.
Ich würde mir so was Wünschen wie:
In der Regestry Steht der Root Path oder der RN_server ermittelt den beim Starten. und jeder kann in holen oder der Wizard. dann Gibt es immer ein Unterverzeichnis Config dort Liegen die Config files und dann noch ein Unterverzeichnis daten wenn jemand was zu schrieben hat bis auf die DB natürlich. dann noch ein verzeichnis Trace wo die Logs hin kommen.
Ob man jetzt die DLL's in noch ein verzeichnis Packt sein da Hingestellt.

Jetz kann von dem ganzen ein Zip machen und der Nächste kann es auspacken und es sollte lauf. Man muß dann nur noch einen bat job machen der die DLL's und server gegestriet sofern das nötig ist.

Ich gebe zu das ich es noch nicht geschafft habe das ding wirklich zu spielen zu bringen (euren Teil). Allerdings habe ich auch nicht länger als ne Stunde probiert. Aber für jemand der sich an gucken will ist das einfach zu lang. Auch fehlt für den AVR ein simulation so das mit zwei serialen oder zwei PC's den kompletten weg Simulieren kann.

Ach auf die gefahr hin das ihr jetzt sauer seid. Aber im Untergrund höre ich im moment sehr oft das ihr zwei sehr abgehoben seid und keiner mehr mit kommt. das ist in meine Augen gefährlich jetzt muß die Demo her und die Doku. Leider kann ich mich nicht zerreissen und bin in ander Projekten gebunden so das ich jetzt auch nicht so viel machen kann wie ich möchte.

Ich schreibe das alles nicht um jemanden zu ärgen sondern weil ich möchte das alle mit dieser Software arbeiten und wir welt berümt werden *g*. Ehrlich mir liegt viel daran.

PS: währe es möglich das ich den Source der dll bekomme dann kann ich mir das mit dem TCP in der dll selbst an gucken.

Mfg Michael

marvin42x
25.01.2007, 07:49
@NumberFive:
Danke für das ausführliche Feedback. Damit lässt sich was anfangen.

Demo:
Du hast völlig recht. Es ins inakzeptabel wenn jemand nach einer Stunde die Demo noch nicht am laufen hat. Da werde ich noch mal rangehen und das versuchen zu beheben.

Doku::
Hast Du auch Recht mit. Du siehst ja, dass ich die Webseite hochgezogen habe um das Projekt verständlicher zu machen, weil mir das auch am Herzen liegt.
PicNick hatte mir das ja auch schon anempfohlen
Auch da werde ich das noch mal überarbeiten um den einstieg in die Thematik zu verbessere.

Verzeichnis:
Das mit den Verzeichnissen hört sich gut an. So was in der Art hat PicNick mir auch schon mal als Beispiel Config gegeben.
Config ist das Thema was ich als nächstes realisiere. Da wird das dann so oder ähnlich werden. Das können wir dann noch im Detail abstimmen.

W-LAN:
Ich verstehe.
Das wäre natürlich sehr luxuriös, wenn wir solche Fähigkeiten haben könnten.

Ingesamt werde ich mich daran machen das ganze noch übersichtlicher und Nutzerfreundlicher zu gestalten. Schließlich predige ich das ja auch.

Ich bin jedenfalls keineswegs sauer sonder habe ein paar reale Ansatzpunkte um die Sache noch besser zu machen.

Bis dahin

Netter Gruß

Edit:
Wie machst Du das mit der Projektzeile in der Signatur. Ich denke bei 200 Zeichen ist Schluss?

marvin42x
26.01.2007, 00:01
@NumberFive:
Ich habe jetzt die erste Stufe der Verbesserungen an der Webseite Online.
http://www.marvins-lab.roboterbastler.de
Wenn Du willst kannst Du mal drüberschauen.
Ich werde aber noch weiter verbessern. Ein zwischenzeitliches Feedback kann aber nichts schaden.
Die Sache mit der Demo habe ich auch übersichtlicher organisiert.
Später, wenn der RnServer automatisiert ist wird es noch unkomplizierter.

@All:
Hinweise wie es noch besser geht sind gerne gesehen. Ich kann das oft nicht einschätzen weil ich zu nah dran bin.

Netter Gruß

NumberFive
26.01.2007, 07:13
Signatur:

Erst die Links dann der Text die URL hat egal wie lang sie ist 6 Buchstaben.
Mehrzeilig arbeiten.



[url]link[url]


Zur Seite:

die RnRegist.dll ist doch ein dot net Framework .dll oder kann man die nicht in den global assembli cach laden dann währe egal wo sie ist.

Dokumentation:

TCP ist eigenlich die Flasche überschrift den hier wird ja nur die Komunikation der DLL beschrieben und nicht das TCP (auf die beschreibung warte ich immer noch).
Mir fehlt die Trennung zwischen Echter Komunikation und Config parametern in der Dokumentation. Den zb. Config= wir ja nicht per TCP übertragen sonder als Komando Zeilen parameter für den Wizard.

Was fölig Fehlt ist ein beschreibung wie die Kommunikation im Ganzen abläuft so das man er kennen könnte wie ich zb. den AD wert des AVR an der oberfläsche sichtbar mache.

Die Beschreibung der Einzel Komponeten fehlt. Wie bekomme ich das Radar dazu das es was anzeigt. Beispiel Telegram.

Rechnen das Radar selbst oder muß es jemanden geben der Rechnet ?
Was uns komplett fehlt ist jemand der endscheidungen trift das müsste hier immer ein Selbst geschrieben Software machen oder der AVR selbst.

Vielleich gucks du dir die smirs doku mal an da war es, so finde ich, sehr dokumentiert. Ich wollte die gerade per Email schicken aber leider finde ich deine Adresse nicht mehr.

Vorschlag:

1. Wie funktioniert es:

Das RNCom - Protokoll ist die Brücke zwischen PC Welt und der Mirocontroller Welt. Als Komunikation medium wird TCP und RS232 verwendet. In arbeit ist noch I²C und Muticast (spiezels TCP Protkoll).

Links auf die Protokoll Seiten

Die Protokolle sind nicht Datenlastig sonder bestimmen nur den Frame.
So das die Brücken den Inhalt nicht interpretiern müssen sonder erst der Client am Ende. So kann jeder seine Eigenen Komponetenbauen oder aber auch Standart componenten verwenden.

Auf der Microcontroller seite gibt es Software für bascom die die Serialkomunikation über nimmt. da aber RS232 für alle Mircocontroller möglich sein Sollte ist die Software auch unabhäng vom Controller.
(Wir haben halt alle AVR's)

Vielleicht findet sich ja jemand der das mal für ein C-Conrol macht.

Es gibt mehrer Stufen so das jeder an dem Punkt auf setzen kann den
Er sich Programier Technisch zu Traut.

Level 1 : Mann muß sich mit Prüfsummen rum Ärgen und alles von hand
machen.

Level 2 : Die Brücken Hier wird das Serial interface auf das TCP bzw. Multicast über setzt so das man es Leichter hat. TCP geht realativ einfach

Level 3 : Aplikation's Interface (RnRegist.dll Dot Net Framework)
man bekommt gesagt wenn was neues da ist um man muß "nur" darauf reagieren. Com Interface in Arbeit. Hier fehlt uns zur zeit noch ein Java und ein so Interface (Linux,Unix). Für Linux/Unix fehlt leider auch noch die Brücke.

Warum der ganze Aufwand ?
Nicht jeder kann alles mit diesem Projekt so es er möglicht werden das jeder Teile schreibt und dann zu verfügung stellt damit wir alle von ein ander Profitieren. Zum Beispiel es hat jemand ein sehr schnelle Möglichkeit zum Routen gefunden (Karte) und ein Andere eine Gute Routine für die Motroren steuerung oder gar eine Motoren steurung gebaut. Jetzt mußte sich beide auf ein Protokoll einigen dann würde die Zusammen spielen und das müsste man dann jedes mal machen. Ist so einbisschen wie die Standart belgeung der RN Stecker die es ja auch gibt hier sind es hat software stecker.

Das Projekt hat zwei Aufgaben Visualiesierung der Daten des Roboter und die Steurung (wenn es den will) und erweiterung und Auslagerung von Interligenz auf den Rechner. Routen und Karten sin halt auf dem PC leichter zu händlen.

So jetzt habe ich dir ein bisschen vorlage geschrieben ich hoffe du kannst was damit anfangen.

Gruß

marvin42x
26.01.2007, 08:19
@NumberFive:
Danke, sehr ergiebig.
Die Vorschläge und Einwände gefallen mir gut
Ich werde mich dransetzen das mal umzusetzen.

Netter Gruß

NumberFive
30.01.2007, 06:37
Na das wird doch die Seite hat sich ja schon verbessert.
Was ist eigenlich mit dem Sommer hast du den schon mal versucht ins bot
zu bekommen ?

Gruß

marvin42x
30.01.2007, 07:24
Webseite:
Ja ich arbeite daran.
Ich habe aber noch nicht die optimale Lösung gefunden. Darum arbeite ich mich erstmal schrittweise ran, in der Annahme, dass ich es am Ende einfach und verständlich darstellen kann.
Da das Projekt mehrere Facetten hat die je nach Zielgruppe anders dargestellt werden müssten eiere ich noch ein bisschen rum wie das am besten zu machen ist.

Sommer: Nein, ich habe ihn noch nicht angesprochen. Er kennt das Projekt aber.

Ich bin auch Deiner Meinung, dass jetzt erst mal eine gute Dokumentation des Projektes notwendig ist. Damit andere überhaupt wissen ob das eine Option für sie ist.
Genauso mit der Demo. Die kann auch dazu beitragen Interesse und Zusammenarbeit zu fördern. Zumal hier im Forum wirklich Kompetenz und Hilfsbereitschaft unterwegs sind.

Was ich auch für wichtig halte ist die Kommunikations- Lib in kleine Beispiele in C, VB6 und VB2005 zu packen damit sie leicht anzuwenden ist.

Die Entwicklung des Anwendungsbeispiel in Visual Basic 2005, den Wizard hat mich elend Zeit gekostet weil ich im Programmieren nicht die große Leuchte bin.
Da sind andere Sachen etwas ins Hintertreffen geraten.
Aber nun.
Man kann ja nur besser werden :-)

Netter Gruß

UlrichC
30.01.2007, 08:29
Hi
ich finde deine Seite für den Anfang schon recht gut.
Es ist eben nicht einfach Doku für Laien bis Profis zu schreiben.
Dass wird sich aber sicher aus Anfragen zur Software entwickeln.
Deshalb schätze ich auch das es zunächst wichtig ist den Nutzen des Systems herauszustellen... also was es tut, ermöglicht und kann.

Ich habe mal einen Link im Projekt auf dich gebogen.
Ich beschreibe und schreibe gerade ein wenig Software für meinen CYOUTOO (http://www.cyoutoo.de/)... in dem Zuge, werde ich sicher irgendwo auch einen weiteren Platz für das System finden.

Schöne Grüße
Christian

marvin42x
31.01.2007, 07:46
@UlrichC:
Danke für die Anregung. Ich werde sehen, dass ich den Nutzen mehr in den Mittelpunkt bringe. Jetzt werde ich etwas nachdenken wie ich das übersichtlich gebacken bekomme.
Also nicht wundern wenn sich da ein paar Tage nichts bewegt. Ich denke :-)

Netter Gruß

marvin42x
01.02.2007, 23:30
@NumberFive:
Beim Bau der Webseite ist die Frage aufgekommen ob es Sinn macht, dass Du Dir bei ACU (https://www.roboternetz.de) einen Webspace holst den Du selber redaktionell bearbeiten kannst. ACU mach das sehr schnell und unkompliziert. Und vor allem kostenlos ;-) Da habe ich mich gefreut. Ich halte es nicht für optimal wenn Du auf mich angewiesen bist. Ich könnte Deine Seite mit einlinken. Du behältst dadurch den vollen Zugriff auf Deine Sachen. Ansonsten Pflege ich natürlich auch Deine Sachen weiter ein.

Netter Gruß

NumberFive
02.02.2007, 06:18
Hallo marvin,

vom prinzip her eine gute Idee. den Webspace bräuchte ich nicht den zur zeit habe ich genung und könnte da sicher was abzweigen. Aber ich bin legasteniker und da durch werde meine Seite immer nicht so doll. Drum währe es mir sehr recht wenn du das weiter machen könntest. Ich werde mal zu sehen das ich dir vorlangen mache damit du es einfacher hast.

Lass erst mal meine Seiten so wie sie sind und kümmer dich um den rest du bekommst von mir dann seite oder vorlagen mal sehen wie ich das an stelle.

Warum ich das schreibe: Ich habe wirklich schon mehr als ein die Mail bekommen: "Wenn man sich die Mühe macht deine Roboter Ideen zu entziffern merkt man erst wie gut sie sind. Leider ist das verstehen deiner Texte nicht einfach."

Das bringt einem nicht unbedingt das zu seine Idee weiter zu veröffendlichen.

Warum melde sich PicNick einglich nicht mehr ich bräuchte immer noch die TCP geschichte oder den Code.

Gruß

marvin42x
02.02.2007, 15:17
@NumberFive:
Webseite:
Ok so soll sein.
Du sagst mir was und wie und ich stell das mit ein, was Du eingestellt haben willst.

Vermisste:
Soweit ich weis ist PicNick im Moment böse zugeschüttet mit anderem Kram.
Ich denke wenn er wieder Luft hat meldet er sich wieder.
Er hat mir ja die ganze Zeit vorher auch beim Programmieren geholfen.
Wenn wir mal reich sind kaufen wir ihn :-)
Vorausgesetzt er ist nicht zu teuer.
Im Moment haben ihn wohl andere gerade gekauft.

Server:
Können wir eine Weile um das Problem rumprogrammieren?
Den Aufbau der Message ist ja bekannt. Und die Key=Value Nummer ist ja auch dokumentiert und hat ein Beispiel.
Die Sache mit den Verzeichnissen können wir ja erstmal festlegen damit wir eine gemeinsame Grundlage haben.

Verbesserungen:
Ich werde auch noch weiter daran arbeiten die Dokumentationen besser auffindbar zu machen.
Wenn Du Dir das anguckst wirst Du sehen, dass ich schon einige Deiner Anregungen eingebaut habe. Stück für Stück wird das besser. Übertreiben will ich das ganze jetzt aber auch noch nicht, da sich erfahrungsgemäß noch einiges verändert.

Netter Gruß

marvin42x
09.02.2007, 09:12
@all:
Projektseite:
http://www.marvins-lab.roboterbastler.de

Unter dem Punkt RnCom/Aufbau habe ich eine Grafik. Dort möchte ich den Fall einer Webcam mit abbilden. Bin mir jetzt aber nicht ganz sicher wo ich die einhänge. Wenn ihr mir da mal unter die Arme greifen könntet. Auch bitte Fehler, Lücken, Vorschläge mit ansagen.

Netter Gruß

PicNick
09.02.2007, 13:26
@Marvin42: Bei einem kurzen Blick in einer Gefechtspause aus dem Schützengraben hab ich mir deine Projektseite angesehen:
WOW !

Webcam: Ist die Frage, wo sie ist und wo sie angehängt ist.
Im Prinzip ist das doch parallel zu der RS232 µC <--> PC ?

NumberFive
09.02.2007, 13:58
Ja die Seite wird immer Besser.

Webcam meine Scheiden Meinung: sie hängt einglich immer am PC.
Wenn USB dann geht es ja nicht anders bei Lan auch. Es gibt zwar auch serial Cameras aber das paralle zu daten zu Transporie denke hält die Seriale nicht aus (zu viel daten).

Was mich wieder zu Problem / Idee bringt wie Währe es wenn wir Irgendwie definiert wie man an ein bild kommt so hätte jeder immer über standart weg die Möglichkeit sich ein bild zu holen Egal welche Cam man hat. Voraus gesetzt natürlich man hat eine "Treiber" dafür.

Mal sehen ob ich das we eit finde die Idee auf zu malen.

Gruß

PS: Habe jetzt eine Video Client und ein server dazu gehe alle cams die ein DirektX treiber mit bringen. Einen Directx treiber der die Bilder emfangen kann gibt es auch. Der treiber ist rech stabil der client leider noch nicht der Server sieht auch ganz gut aus. Leider fehlt bei allen sachen noch die Komplung an unser protokoll.

NumberFive
09.02.2007, 14:01
Nachtrag:

gibt es ein Möglichkeit dem RN-Server zu sagen das ich nur ein durch leiter bin also das das was angemeldet hat ein Transfer tool ist ? Dritte ebene im Tree.

marvin42x
09.02.2007, 17:53
@:PicNick:
Hi alter Schwede. Schön von Dir zu hören.
Mögen die Götter bei Dir sein und viel Ehre und Ruhm über Dir ausschütten (und eine Gehaltserhöhung ;-) )

@all:
Freut mich das die Seite Anklang findet :-)

Cam:
Mir war so als müsste die Cam an das Controllerboard, weil meine auch in der Nähe angebracht ist. Aber ist schon richtig die Cam ist in aller Regel am PC, bei mir halt über Funk oder über USB, wenn ich das EPIA PC Board onboard habe.
Ich werde mal in Anbetracht das wir die Serielle von solchen Datenmengen freihalten das am PC anknüpfen. Damit haben wir dann wohl die gebräuchlichste Anschlussart dargestellt.

Funkmodule:
Übrigens läuft die Serielle RnCom über die Funkmodule ganz manierlich. Ein Dauertest steht aber noch aus.
Meine Funkmodule waren doch lange wegen renitentem Verhalten in Beugehaft. Nach einer Kondensatorvergrößerung an strategisch richtiger Stelle konnten sie aber wieder resozialisiert werden. Und verrichten jetzt ihre naturgemäße Aufgabe.

@NumberFive:
Ja, skizziere mir das mal wenn Du Zeit hast. Das Thema Webcam kommt ja so sicher wie das Amen in der Kirche auf uns zu. Ich habe gesehen, dass Du auch in Sachen Objekterkennung schon viel gemacht hast. Und Standardweg hört sich schon mal nicht schlecht an.

Netter Gruß

PicNick
09.02.2007, 18:21
.. über Dir ausschütten ..
Ja, aber nicht g'rad zuschütten :-)

Naja, egal, viel Feind', viel Ehr'

Ein volles Videosignal werden wir über die Serielle wohl nicht drüberbringen.
Bei der CMU-Cam ist es ja so, daß das Bild da nach verschiedenen Regeln ausgewertet wird und nur das Ergebnis (selektiv) gesendet wird. Damit kann dann ein Controller schon zurechtkommen.

Fürs Erste wär es wohl am Leichtesten, wenn die Cam schon am PC-USB hängt. Dort läuft dann ein Video-Grabber, der eine standard-Bitmap aufbaut. Wenn eines unserer Kinderchen dann ein Bild will, kann er sich dort connecten und die Bitmap abholen. Hier wäre auch eine connection-less Verbindung denkbar, die jeder abhören kann, wenn er mag.
Also eine Art Broadcast

patti16
12.02.2007, 17:14
hallo

wollte mal fragen was das mit dem RNserver RNwizard usw. auf sich hat?


gruß
patrick

marvin42x
12.02.2007, 20:48
Der RnServer und der RnWizard sind PC Programme um mit einem Roboter zu kommunizieren.
Der RnServer stellt die Verbindung mit dem Roboter her und transportiert die Daten.
Der RnWizard empfängt die Daten vom Roboter und stellt sie grafisch dar.
Mit dem RnWizard kann man den Roboter auch fernsteuern.
Dazu gehört natürlich noch ein Programm auf dem Roboter, was in der Lage ist zu kommunizieren, das heißt Sys.Bas.
Das ganze soll für alle frei verfügbar sein.

Hier habe ich die Funktion des RnServer mal versucht zu erklären:
http://www.marvins-lab.roboterbastler.de/html/rnserver.html

Hier habe ich den RnWizard erklärt:
http://www.marvins-lab.roboterbastler.de/html/rnwizard.html

Und hier eine Übersicht auf der man den Aufbau der Verbindung sehen kann:
http://www.marvins-lab.roboterbastler.de/html/rncom.html
Details findet man auf den jeweiligen Unterseiten.

Ich hoffe das hilft Dir insgesamt weiter. Ansonsten müsstest Du die Frage noch etwas Präzesieren.

Netter Gruß

NumberFive
13.02.2007, 21:09
Hallo,

ich hoffe kommt noch mal vor bei.
Ich habe hoffenlich kapiert das TCP protokoll

die ersten zei sind die länge dann kommt von wen and wen mit jeweils zweit byte und dann das nächste ist was es ist richtig ?

jetzt verstehe ich nur noch nicht wie die Adresse sich zu sammen
baut.

Gruß

marvin42x
13.02.2007, 23:53
Hi NumberFive.
ich habe hier die wichtigsten Spezifikationen zusammengetragen:
http://www.marvins-lab.roboterbastler.de/html/dokumentationen.html

Insbesondere sind das die Links:
https://www.roboternetz.de/wissen/index.php/Network_Controller/PC
Grundsätzlicher RnCom Aufbau und Message Aufbau

https://www.roboternetz.de/wissen/index.php/Network_Controller/PC_PC-Programme
Layer-1 und 2. Beschreibung der TCP/IP Message und des Log in.

https://www.roboternetz.de/wissen/index.php/Network_Controller/PC_Routing
Routing I2C, <->UART(seriell), <-> TCP/IP

https://www.roboternetz.de/wissen/index.php/Network_Controller/PC_Spezifikationen
Layer 0 - 1 Messageaufbau und Kommunikationsregeln

Im Grunde recht simpel.

Erst die Messagelänge als 16bit
Die Länge ist "host-order" d.h. low-Byte zuerst, immer exklusive Länge, d.h. für 4 Bytes Layer-1 Daten werden insgesamt 6 Byte übertragen.
Siehe auch: PC_Spezifikationen(oben)

Dann die Adresse:
(die ist bereits Teil der TCP/IP Daten)
Du hast als erstes ein Byte für die Ziel-Klasse z.B. Die Pegelanzeigen einer GUI
Als zweites Byte die Ziel-Klassen ID z.B. Die dritte Pegelanzeigen einer GUI
Als drittes Byte die Quellen Klasse, also z.B. AD-Wandler
Als zweites Byte die Quellen Klassen ID (Identität) z.B. 3 für den dritten AD-Wandler

Danach die Daten.
Als erstes das Command Byte.
1 steht dafür das jetzt ein ein Key=Value Kommando z.B „POSY=150“ kommt
0 steht für einen Wert
Der Wert ist je nach Sender oder Empfänger unterschiedlich.

Du meldest Dich beim Server mit einem Ident String an.
Nach dem Connect schickst du ihm z.B.:
NETID=ID=0,NAME=RnChild0,MOTHERPID=NoMother,PID=69 900

Diesen String nach dem Key=Value Prinzip trägt der Server sich ein.
Das ist jetzt nur ein Beispiel des RnWizard.
Du brauchst jetzt kein Rn vorne weg stellen. Der Server akzeptiert jetzt alles ;-)

Ich hoffe Dir damit etwas Licht gebracht zu haben.

Netter Gruß
Ps. Ich werde das auf der Webseite vielleicht noch mal grafisch aufdröseln obschon die Docu im Roboternetz sehr ausführlich ist.

Ich habe auch eine TCP/IP Demo im Downloadbereich. Da kann man im Source den Message Aufbau auch noch mal anschauen

marvin42x
14.02.2007, 19:10
@NumberFive:
Auf der Seite:
http://www.marvins-lab.roboterbastler.de/html/rncom.html
kannst Du jetzt rechts oben auf Die Grafik RnCom Message- Aufbau TCP/IP klicken.
dann öffnet sich eine detaillierte Darstellung des Message Aufbaus.
Sag mal bescheid ob das so hilfreich ist

Netter Gruß

NumberFive
15.02.2007, 06:28
ist schon mal sehr gut.

über die Beschreibung im Netz sage ich mal techisch korrekt und suber hergeleitet aber viel zu komplex wenn man das nach programmieren will. für mich fehlt einfach die zusammen fassung. (Programier anleitung)

So jetzt mal weiter ich mache einfach machmal c änliche syntax ich hoffe das es jeder lesen kann.

BYTE[0] = Länge Low BYTE
BYTE[1] = Länge High BYTE
BYTE[2] = Klasse Empfänger
BYTE[3] = Ident Empfänger
BYTE[4] = Klasse Sender
BYTE[5] = Ident Sender
BYTE[6] = Klasse der Nachricht
BYTE[7] = Ab hier daten

wenn BYTE[6] == 0 dann kommt ab Byte 7 ein Wert
Die bedeutung von wert kann ich an dieser stelle nicht Interprtieren

wenn BYTE[6] == 1 dann kommt ab Byte 7 Key Value String

wenn BYTE[6] == FE == 254 dann war das ein ACK

wenn BYTE[6] == FF == 255 dann war das ein NACK bzw das gerät meldet sich ab

Bitte alle Key's die du für die Dialog Stuerung definiert hast auf schreiben
FORMPOSX=100 = X Position des Fenster 's in Bildschirm Korodinaten
CLOSEME=1 Anwendung beenden
....

Ich hätte gerne
wenn BYTE[6] = 3 dann folgen nachher Binäriy daten das heist hier können auch 0 Bytes enthalten sein damit könnte ich dann das jpg übertragen bzw. mein jpg daten informations packet bestehet aus Header und jpg daten.

Header:




#pragma pack(push)
#pragma pack(1)

struct FRAME_T {
char header[5];
int nbframe;
double seqtimes;
int deltatimes;
int w;
int h;
int size;
int format;
unsigned short bright;
unsigned short contrast;
unsigned short colors;
unsigned short exposure;
unsigned char wakeup;
int acknowledge;
};

#pragma pack(pop)



Im header sin zwar bei mir zur zeit nicht alle daten gefüllt aber das ist ja nicht so tragisch.

Jetzt zu den klassen
BYTE[2] = 0 und BYTE[3] = 0 dann geht das an alle Nur TCP oder auch auf die Com ?
BYTE[2] = 0 und BYTE[3] = 1 bis FF Funktionen im RN-Server welche sind das ?

wenn ich das richtig verstanden habe BYTE[3] wenn LSB = 0 dann gehen die daten an den I²C wenn BYTE[3] LSB = 1 dann geht das zeugs an die Com1 bzw an die 1 RS232.

Für das BYTE[5] giblt das selbe nur das hier dann der absender gemein ist

wenn im BYTE[5] da LSB 1 und das BYTE[4] den wert H82 = 130 hat dann kamen die daten von RS232 1 und es ist ein wert des ADC oder ?

Mir ist im moment schleier haft wie ich meinen Viedeo server von Class und ID richtig einordenen würde.

Also ent weder habe ich es komlett mis verstanden oder es irgenwo noch ein Bug drin. Ich hoffe du kannst das auf klären.

So weit

NumberFive
15.02.2007, 06:57
habe gerade das demo runter geladen aber ich bekomme es nicht zu laufen.

der RN server öffnet der port nicht auto matisch und auch der Wizard versucht so weit ich das sehen kann keinen Connect.

Wenn ich dann alles von hand conneted kann ich keine Messages versenden. das konnte ich aber mit dem alten noch.

Gruß

marvin42x
15.02.2007, 13:16
@NumberFive:
Danke für die Zuarbeit. Ich werde das mal versuchen umzusetzen.
Demo:
Die Demo werde ich demnächst mit dem Fortschreiten der Arbeiten vereinfachen.
Es stimmt, der Server connected zurzeit noch nicht automatisch. Das steht auch in meiner Anleitung.

Auf dieser Seite habe ich eine Anleitung für die Demo.
http://www.marvins-lab.roboterbastler.de/html/demo.HTM

Auf dieser Seite sind die Key=Value befehle gelistet:
http://www.marvins-lab.roboterbastler.de/html/befehle.htm

Diese erste Demo sollte eigentlich erstmal nur das Konzept des RnWizard veranschaulichen.
Die steht eh noch auf ganz wackligen Beinen.
An der Stelle muss aber noch was geschehen damit das einfach wird.
Auch werde ich schauen ob ich die Docus noch umsortiere, dass sie besser zum Zusammenhang passen.

Command Byte:
Das entscheide ich ungern ohne PicNick weil ich da gerne seinen Sachverstand an der Seite hätte.
Aber ich denke das mit der 3 als Zeichen für binär können wir erstmal so machen.
Wenn es später ne andere Zahl ist lässt sich so was ja in unserem Stadium noch leicht richten.

Die vier Adressbytes gelten auf den AVRs und auf dem PC.
Was wir im Moment noch über die PID abwickeln ist die Identität des PC-Programms.
Ansonsten hat auch der dritte Slider auf der GUI seine Gruppe, der Slider hat seine Nummer, in dem Fall die 3.
Aber Du hast recht wir sollten die Stelle gut durchdokumentieren. Das ist alles etwas liegen geblieben weil wir an der TCP/IP Seite erstmal eine Linie haben wollten.

Netter Gruß

marvin42x
15.02.2007, 16:28
@NumberFive:
Videoserver:
Die Kamera ist typischerweise am einem PC angeschlossen.
Das Programm das das Kamerabild darstellt oder bearbeitet ist auch auf einem PC.
Die PC-Komunikation zwischen PC-Anwendungen ist TCP/IP.
Das Videosignal über den RN-Server laufen zu lassen halte ich nicht für so gut.
Das Video ist eher ein Sonderfall und sollte Point to Point oder Broadcast ablaufen.
Ich kenne mich da nicht so gut aus.
Was ich mir vorstellen kann ist ein Remote-Port am anzeigenden PC-Programm.
Da müsste man überlegen wie man den einbindet.
Die PC-Programme haben ja eine Identität die überhalb des 4Bytes Adressraums liegt.
Die melden sich ja mit ID z.B. „ID=Trackbar1“ an.
An der Ecke müssen wir noch etwas Arbeiten

Wenn Du es dringend brauchst mach mal einen Vorschlag und dann legen wir was fest. Damit Wir Dich mit dem Video im System haben.

Netter Gruß

Edit:
Blödes Beispiel mit dem "Trackbar1". ID=GUIxy wäre wohl besser.

Edit2:
Auf dieser Seite hatte ich Die Kamera eingtragen:
http://www.marvins-lab.roboterbastler.de/html/aufbau1.html
Sag, falls es anders sein soll. Eventuell mit einer kleinen Skizze.

NumberFive
15.02.2007, 19:20
bei daten geht es erst mal um Pickt frames als ich frage und bekomme ein bild wie sehr das dann auf die Perfomens geht wage ich nicht zu sagen. aber wenn ich eine netz habe sollte da auch alles durch passen sicher werde ich auch immer ein offnes ohr (TCP port) für die bild daten haben damit wenn die perfomens nicht ausreicht man so das vielleicht verbesser kann.

Hinter mir steht im moment auch Mr. Niemadn mit dem ich an seiner drei d Gui bastele wenn das kommt wird das der hammer.

Links oben viedeo bild und der rest eine fast echt zeit darstellung der umgebung in 3D auf grund der sensor daten.

Spätest Dienstag nacht sollte ich ein Doku hin gebastelt haben wie mein Zeit am we aussieht weiß ich noch nicht.

Gruß

marvin42x
15.02.2007, 20:08
Ja, MrMiemand ist gerade schwer in Fahrt. Das wird ne tolle Sache.

Die Frage des Datenaufkommens seiner 3D Anwendung hat ja mehrere Seiten.
Reine Sensorwerte oder xy Koordinaten fallen aus meiner Sicht aber nur in überschaubarer Menge an.
Den Löwenanteil benötigt ja die 3D Darstellung.

Wenn wir irgendwo Performance sparen können ist das sicher gut.
Da weis ich aber noch nicht was Du genau meinst.
Für allgemeine Sensordaten die irgendwo hin verschickt werden sollen werden wir um eine Adressierung vermutlich nicht herum kommen.

Gibt es Da noch Einsparpotential?
Mach mal bitte ein Beispiel zum besseren Verständnis für mich.

Netter Gruß

NumberFive
16.02.2007, 06:13
http://www.marvins-lab.roboterbastler.de/html/demo.HTM

Das ist ein schreib fehler Star: anstand Start.

Ich habe sie jetzt endlich am rennen das demo meine ich so das ich jetzt wohl daten zu testen bekommen sollt (habe ich noch nicht getestet).

Problem war der RN Server nimmt meine Echte IP und nicht die 127.0.0.1 und dann geht nix habe jetzt halt die IP im cfg geändert gehabt das bringt nur nix weil das auch als Commando zeieln parameter über geben wird. ob das so sinvoll ist weiß ich nicht.

was ich mit Perfomens meinte ist das wenn das bild an forder den rn_server grillt muß man halt auch den extra port gehen aber im moment habe ich ein Netzinterface wo die Datenverarbeitet werden und dann will ich es auch von dort bekommen.

Zur 3d geschichte kann schon sein das man dann zwei rechner braucht einen Für das dastellen und einen für den Rest holen sensor daten video und sonstiges auf bereiten der daten. Einen echten server halt. Oder Vista löst all diese Prob's *g*. Wer halt seinen Robi mit 3D Brille und Jostick steuern möchte braucht leistung satt. Aber guck dir mal die vorraus setzung für 3D spiele an die sind auch nicht ohne.

Wenn das nicht braucht kommt man ja auch mit weniger leistung aus.

bis dann

NumberFive
16.02.2007, 07:02
Anbei ein entwurf ist aber noch nicht komplett abgestimmt. Nur damit Ihr seht was wir vorhaben.

marvin42x
16.02.2007, 08:40
@NumberFive:
Das sieht ja schon sehr gut aus.
Wenn Du willst stelle ich das Schema, wenn es Abgestimmt ist in die Seite mit ein.

Rechtschreibung:
Danke für den Hinweis, wird berichtigt. Das erinnert mich daran noch jemanden quer lesen zu lassen da werden noch einig Fehler drin sein.

TCP/IP:
Ich habe noch mal nachgeschaut
Noch mal zu Daten:
Nach unser Layer Spezifikation ist es dem Sender und Empfänger überlassen die Daten zu interpretieren.
Das TCP/IP wird zwar Systembedingt als String übertragen. es ist aber durchaus möglich einen 16 Bit Integer als String von 2Byte zu übertragen. Sender und Empfänger müssen sich nur einig sein wie sie das interpretieren.
Das nur vorab falls Ihr da gerade am programmieren seid.
Das werde ich auch noch mal am Wochenende in der Webseite dokumentieren.


Netter Gruß

NumberFive
17.02.2007, 10:09
Das problem wird sein das weiß ich aber noch nicht genau das in C ein string immer mit einem 0 Byte endet das aber bei Binary auch ein 0 byte drin sein genauso verhält es es bei dem Type BSTR das sit der com String. Auch bei der String klasse in dot net müsste das so sein. Aber ich werde da schon lösung finden. Mal sehen jetzt mache ich mit niemand erst mal das mit der Overlay fenster der web com. die ersten versuch sehen schon gut aus.

Gruß

MrNiemand
17.02.2007, 10:57
Hi, nu muss ich aber auch mal meinen Senf loswerden:

Ich kann auch beruhigen, dank der Umstellung meines RenderPrinzips läuft der Spaß auch auf "minderbemittelten" Rechnern.
Ausnahme ist hier evl. die Anzeige von Webcam Bildern, aber da bin ich zuversichtlich, das es sich im Rahmen hält, ich hab zumindest alles für ne Ressourcenschonende Anzeige getan. Z.b. wird nicht permanent der Backpuffer usw. aktualisiert, sondern nur wenn auch wirklich ein neues Bild da ist.......

marvin42x
18.02.2007, 10:25
Docu:
Ich habe jetzt versucht unser Schichtenmodell allgemeinverständlich darzustellen.
Das ist ein etwas gewagter Versuch.
Kann mal jemand nachschauen ob das inhaltlich so richtig und hinnehmbar ist ist?
http://www.marvins-lab.roboterbastler.de/html/schichten.html

Netter Gruß

Edit:
Wenn man die Seite in einer früheren Version schon mal auf hatte sollte man besser noch mal neu laden anklicken. Sonst bekommt man das alte aus dem Speiche. Jedenfalls ist das bei mir manchmal so.

NumberFive
19.02.2007, 05:40
machst du gerade eine Kurs in Tehnischer Dokumentation ? Das ist gut wenn auch noch nicht komplett. Wirklich fehler konnte ich keine Entdecken.

NumberFive
19.02.2007, 06:18
<0C><00><00><01>d<01><00>Alive<0D><0A>
eigendlich ist das telegram nicht zulässig oder ?

<0C> = 14 Länge OK
<00>
<00> = Toclass 00
<01> = ToID 01
das müsste also also die Adresse der Com1 sein
d = FromClass 100
<01> = FromID 01
<00> = Telegramtyp Sensordaten
Und jetzt kommt Text das kann nicht sein wenn es der Hartbeat sein soll müsste jetzt hier eine 0 kommen. Und sonst nichts

NumberFive
19.02.2007, 06:41
<08><00><82><06><82><06><00>120
<0C> = 08 Länge OK
<00>
<82> = ToClass
<06> = ToID
<82> = FromClass
<06> = FromID
ADC Eingang nummer 6

<00> Telegrammtyp Sensor daten auch OK
das der Messewert jetzt nicht binär sein OK aber hier Fehlt eingendlich ein BYTE nämlich <05> für Value den das ist der Wert den der ADC liefert.

Also entweder habe ich das Protokoll weiterhin nicht verstanden oder du hast es für die Demo ein bissle sehr an dich angepasst.

Oder das H15 müste in der Adresse liegen da bin ich mir jetzt nich so sicher nur eines ist klar so stimt's bestimmt nicht.

Sorry

marvin42x
19.02.2007, 07:10
@NumberFive:
Ja das was auf der Demo läuft scheint nicht ganz korrekt.
Da steckt noch Erblast der ersten Stunde mit drin.
Ich hatte für mich erstmal überhaupt mehrere Instanzen starten wollen um zu sehen wie die sich benehmen.
Das war in Hinblick auf Korrektheit anderen gegenüber noch nicht überprüft.

Ich werde das aber dann zusammen mit Dir nachziehen.
Damit dort geregelte Verhältnisse einkehren.
Also, kein Zweifel an deiner Auffassungsgabe, sondern an meiner Ausführung :-)

WebSeite:
Danke fürs drüberschauen.
Wenn Du keine Inhaltlichen Fehler siehst lass ich das erstmal so und mach als nächstes noch eine Seite über die Adressen.
Dein Einwand, dass das langsam zu unverständlich wird, war ja der richtige Anstoß an der Stelle deutlich nachzurüsten.
Die technische Dokumentation in der Wiki ist ja m.E. schon sehr gut.
Fehlt halt nur noch eine Gesamtübersicht.

Deine Skizze habe ich ruhig mal reingestellt. Da wir ja noch am Entwickeln sind können da meiner Meinung nach auch geplante Konzepte stehen.

Netter Gruß

NumberFive
19.02.2007, 08:57
Unsere rn_sever hat auch so seine eigenen Ideen.

NumberFive
19.02.2007, 09:33
Hilfe kann das sein das die neue RnWizard.exe die Editbox für Telegramtyp nicht mehr auswertet ? Ich brauche das dringend !

Wenn du eh ran gehts währe es nett wenn man den text für die Nachricht wirklich selbst eingeben könnte und nicht das es nur so aussieht.

marvin42x
19.02.2007, 10:11
Na das ist ja Klasse, da haben wir ja die erste Anmeldung.
Da freue ich mich aber mächtig :-)
Kleine Unpässlichkeiten am Anfang sind ja zu erwarten.
Ich muss ja meinen Kram auch noch korrigieren.
Jetzt könntest Du auch schon einen simplen Simulator ranhängen und ich könnte mal schauen ob ich dessen Werte verarbeiten kann.
Falls Du mal so was machst lass ihn mir zukommen damit ich was zu spielen habe.
Damit würden wir den Datenverkehr harmonisieren.
Am RnWizard werden die Textfelder nur angezeigt wenn, das Displaylevel auf 2 Angehoben ist (obere Numerick Updownbox links neben dem Startknopf). Ich muss mal schauen, aber kann sein, das er mache Textfelder nicht mehr auswertet weil das bereits intern verwaltet wird.
Ich schaue mal nach und mach, wenn Du das brauchst, was fertig was die Textfelder berücksichtigt.
Einiges läuft auch schon über Netzwerk Befehle.
Bin ganz begeistert über das Tempo.

Netter Gruß

NumberFive
19.02.2007, 11:25
Also ich habe zur zeit jede Menge Brocken.
Jetzt muß ich das "nur" noch zusammen bauen.

mein RNComNetworkLayer meldet sich an dem rn_server an und gibt die daten auch schon weiter. der RNComDataCenter schreibt alles schön in die DB wenn eine da ist und es sich um String daten handelt zu dem versteht er FORMSHOW=0 oder FORMSHOW=1 nur mal so rein gemacht damit ich was zu testen hatte.

Was er noch versteht ist ACTION=SET,VARNAME=%s,VARVALUE=%s
Und ACTION=GET,VARNAME=%s. so ist es möglich Werte einfach im netz ab zu legen und sie sich wir zu holne das kommt dann später auch noch in die DB so fern ein da ist so das dort daten in einfach forn speichern kann.

Parallel baue ich ein dll mit der man an das protokoll kommt die von Dlephi VB und alle anderen sprachen die com verstehen benutze werden kann.

Und wenn ich ganz viel lust habe mache ich das sparch modul auch noch fertig das liegt aus einem Andern projekt hier noch rum dann kann mal die reden lasen.

Gruß

marvin42x
19.02.2007, 12:09
Das freut mich wenn wir mal was Netzwerkmäßiges am laufen haben.
Besonders wenn Programme von verschiedenen Leuten beginnen miteinander zu reden.
Bin gespannt, das wird echt interessant.
Zumal wir dabei den Grundstein für eine gute Gebrauchsfähigkeit des Netzes legen.

Netter Gruß

marvin42x
19.02.2007, 13:55
Mal eine Programmierfrage:
Hat jemand einen Plan wie ich verhindern kann, dass ein überlappendes Fenster meinen Fensterinhalt zerstört?

Netter Gruß

NumberFive
19.02.2007, 14:04
gar nicht den das darf garnicht gehen das fenster muß immer neu gezeichte werden wenn das darüber liegen weg geht. sonst würde sich deine kiste tot rechnen. wo ist dein probelm mit dem neu zeichenen ?

Gruß

marvin42x
19.02.2007, 14:41
Das Radar und der Netzwerkmonitor. Wenn Du da ein anderes Fenster drüberschiebst ist alles kaputt.

Netter Gruß

NumberFive
19.02.2007, 15:02
das ist genau das selbe thema wie in VB 6 und den dastellen der Bitmap's ihr mal alle auf dem fenter und nicht in dem bitmap. muß mir mal den source an gucken hast du den aktuellen oben ?

Bist du zu hause ?

marvin42x
19.02.2007, 15:18
Nein, erst nachher.
hier kannst Du auch das komplette Projekt runterladen:
http://www.marvins-lab.roboterbastler.de/html/downloads.html
das ist aktuell.
Netter Gruß

NumberFive
19.02.2007, 17:18
holla was ein source.



Public Sub StartRadar()
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
Me.ControlBox = False
Me.Height = 260
Me.Width = 290
Me.Text = MyAppName ' neuen Namen in die Titelleiste
PictureBox2.Left = 0 'Picturebox zum Zeichnen vorbereiten
PictureBox2.Top = 0
PictureBox2.Height = 241
PictureBox2.Width = 286
PictureBox2.Anchor = 15
PictureBox2.Visible = True
PictureBox2.BringToFront()
Me.Panel3Buttons.BringToFront()
PictureBox2.BackColor = System.Drawing.Color.White
NETID("") 'neuen NetIdentString bauen
MyRNClass = RadarClass 'Welcher Klasse ich jetzt angehöre
MyRNSourceClass = ADCClass 'von welcher Klasse mich Daten interessieren
MyRNSourceID = Convert.ToByte(MyStartValue)
Disconnect()
FastConnect()
'Me.PictureBox2.BackgroundImage = Global.Me.My.Resources.Resources.RadarBack
'Me.PictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom

Dim TempBitmap As Bitmap
If Equals(Me.PictureBox2.Image, Nothing) Then
Me.PictureBox2.Image = New Bitmap(PictureBox2.Width, PictureBox2.Height)
End If
Dim LokalDC As Graphics
LokalDC = Graphics.FromImage(Me.PictureBox2.Image)

Dim CircleLocalHighSero2 As Integer

For i As Integer = 1 To PictureBox2.Height Step 40
CircleLocalHighSero2 = ((PictureBox2.Height / 2) - (i / 2)) 'Den Zeichen-Nullpunkt zuweisen
LokalDC.DrawEllipse(New Drawing.Pen(ColorCircle), CircleLocalHighSero2, CircleLocalHighSero2, i, i)
Next
LokalDC.Dispose()

End SubPublic Sub StartRadar()
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
Me.ControlBox = False
Me.Height = 260
Me.Width = 290
Me.Text = MyAppName ' neuen Namen in die Titelleiste
PictureBox2.Left = 0 'Picturebox zum Zeichnen vorbereiten
PictureBox2.Top = 0
PictureBox2.Height = 241
PictureBox2.Width = 286
PictureBox2.Anchor = 15
PictureBox2.Visible = True
PictureBox2.BringToFront()
Me.Panel3Buttons.BringToFront()
PictureBox2.BackColor = System.Drawing.Color.White
NETID("") 'neuen NetIdentString bauen
MyRNClass = RadarClass 'Welcher Klasse ich jetzt angehöre
MyRNSourceClass = ADCClass 'von welcher Klasse mich Daten interessieren
MyRNSourceID = Convert.ToByte(MyStartValue)
Disconnect()
FastConnect()
'Me.PictureBox2.BackgroundImage = Global.Me.My.Resources.Resources.RadarBack
'Me.PictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom

Dim TempBitmap As Bitmap
If Equals(Me.PictureBox2.Image, Nothing) Then
Me.PictureBox2.Image = New Bitmap(PictureBox2.Width, PictureBox2.Height)
End If
Dim LokalDC As Graphics
LokalDC = Graphics.FromImage(Me.PictureBox2.Image)

Dim CircleLocalHighSero2 As Integer

For i As Integer = 1 To PictureBox2.Height Step 40
CircleLocalHighSero2 = ((PictureBox2.Height / 2) - (i / 2)) 'Den Zeichen-Nullpunkt zuweisen
LokalDC.DrawEllipse(New Drawing.Pen(ColorCircle), CircleLocalHighSero2, CircleLocalHighSero2, i, i)
Next
LokalDC.Dispose()

End Sub


so malt man auf dem bitmap und nicht auf dem dc.

todo's für dich wenn das Fenster grösser wird altes bitmap löschen und neues anlegen. wenn die daten kommen dann auf dem bitmap zeichen nicht auf dem dc. source aus misten.

bau mal try blöcke ein damit man auch mit bekomt wenn was schief geht

Gruß

NumberFive
19.02.2007, 17:33
Sorry aber ich hasse schon vb und dann kommen bei kompilieren jede menge warnungen weil variable definiert aber nicht benutzt und so.

da ist mir ein bisschen der gaul durch gegangen. :oops:

was zeigt eigendlich dein netzmonitor an ?

Gruß

PicNick
19.02.2007, 18:05
Kurzer Blick aus der vollen Deckung:

Anbei als txt das Protokoll zwischen Atmega32 und RN-Server
(Netto, also das, was in Layer0 eingepackt ist)

Ich hab Kommentare dazugeschrieben

Vielleicht hilft das zum Verständnis.

Letzt les' ich mal das, was inzwischen von euch geschrieben wurde :-)

EDIT: Shit. die File muß man speichern und mit Wordpad oder was aufmachen, sonst ist das eine einzige Wurst ohne <CRLF>

PicNick
19.02.2007, 18:10
Beim VC++ muß ich solche Bitmaps als "USER"-Draw eintragen und den Event belegen, wenn das WIndows zerstört (drübergezeichnet) wurde

PicNick
19.02.2007, 18:28
RN-Server: Bißchen hin- und herüberlegt.
Prämisse: Make it simple, stupid.

Beim Starten liest er die Commandline, die grundsätzlich alles beinhalten kann, was auch sonst in commandlines möglich ist.
Unbedingt zuerst: IP="hostname", PORT= nnn. ID = nnnn Wenn nicht, nimmt er "Localhost" und Port 42 und eine Default-ID

Das macht er auch auf jeden Fall gleich auf, was soll er denn sonst sinnvolles tun.

Und zuerstmal broadcastet er alles, was er kriegt, auch an alle weiter.

Kommt eine Message, die an seine ID (s.o) gerichtet ist, versucht er zu interpretieren (Par=1). Was da alles möglich ist, hast du ja schon dokumentiert oder es fällt uns noch ein.

Auf eine eigene Konfig-File könnten wir dann verzichten, der Wizard ist für ihn einfach der Quell der Weisheit.

RS232-Port: Parameter (Baud, Com-#) entweder gleich beim Start, dann macht er es auch gleich auf, oder eben später via Command.

Alles vom µC wird an IP weitergegeben.
Zum Rs232 wird aber nur weitergeleitet, wenn das Target auf dem µC zu hause ist. (Das erfahre ich und die anderen ja durch die Startupsequenz)

PicNick
19.02.2007, 18:35
RN-Server: Wenn die Kommunikation immer über ihn geht, isses wohl auch am besten, wenn er zentral das Netz-Logging übernimmt. Da hat man das alles auch chronologisch geordnet beisammen. Steuerbar (DIR, Name, ON/OFF) aber eben über Commands.

NumberFive
19.02.2007, 18:49
Oh der meister ist da !

Wenn DESCRIPT=Multicastadapter in die Anmeldung rein packe dann hat der server ein problem. das lock ist von einem neueren version oder ?

Gruß

PicNick
19.02.2007, 19:05
Nö, ist eigentlich unverändert.
Wie auch immer, die erwähnten Eigenschaften und die Command-Interpretation muß ich ihm erst noch beibringen, das ist da nur in Ansätzen drinnen.

Ich versuch nun, die neusten Anforderungen zusammenzupacken und zu implementieren und dafür alten Schrott rauszuschmeissen.

marvin42x
19.02.2007, 23:39
@NumberFive:
Du hast Recht, mein Code grottenschlecht. Und ich weis, dass überall noch die volle Baustelle ist und ich an vielen Stellen eigentlich überfordert bin. Ich hatte mich die erste Zeit auch gar nicht getraut den Source zu zeigen. Da mir aber was daran lag, dass das Projekt weitergeht und PicNick mir über die größten Hürden weggeholfen hat habe ich das eben so gut gemacht wie ich konnte.
Und es hat mir viel Spaß gemacht.
Heute Abend hatte ich keinen Spaß.
Aber morgen ist ein neuer Tag da gehen wir das wieder an. Egal was die Leute denken.
Dann machen wir ein Netz auf das es seine Freude hat.



Netter Gruß

NumberFive
20.02.2007, 10:40
@marvin42x

sorry ich entschuldige mich noch mal wegen meinem ausrutscher hatte ärger in der Firma und dein code dann bin ich eben über das ziel hinaus geschossen eherlich ich weiß wie sich so postings anfühlen.

@PicNick
Ich bastele an einer AVRSim damit wir das richtig testen können hättest du heute Abend Zeit dir das an zu sehen ?

marvin42x
20.02.2007, 11:54
@NumberFive:
Danke, dass Du das noch mal erwähnt hast. Ich weis aber auch wie es ist wenn man Ärger hat, dann ist die Haut dünn. Geht mir auch nicht anders. Darum genug davon, alles OK :-)
Danke übrigens für Deine Grafikzeilen.
Ich hatte schon im Internet danach geforscht aber irgendwie nicht das richtige gefunden. Mit Deiner Lösung ist das Problem mit dem zerstörten Inhalt gelöst.
Ich hätte jetzt nicht gedacht, dass man bei Zeichnen auch Tryblöcke einsetzt. Kannst Du mir noch sagen wo ich die platziere?
Weiter weis ich nicht was die Abkürzung dc bedeutet auf der ich nicht malen soll. Meine Hilfe hat da nichts zu ausgespuckt.
Eine weitere Frage die sich durch die neue Lösung auftut ist wie ich an die Info komme das sich die Fenstergröße geändert hat. Weil ich doch jetzt jeweils die Bitmapp neu erstellen muss.

@PicNick:
Schön, dass Du etwas Zeit haben konntest.
Info zum Wizard:
Ich bin Zähneknirschend erstmal wieder abgegangen von der getrennten Engine.
Da ich mit der Vererbungslehre und Events noch auf Kriegsfuss stehe hatte ich mehr Zeit mit Fehlersuche verbracht als mit nützlichem Weiterkommen. Also nicht wundern, dass es im Moment ein Monoblock ist. Aber Aufgeschoben ist nicht aufgehoben. Irgendwann probiere ich es noch mal.

Netter Gruß

NumberFive
20.02.2007, 12:21
Also DC = DeviceContext (Zeichenfläche) wird in dotNet mit der Grahics Klasse abgehandled. einen DC kann man Sich auf ein Bitmap holen oder auf ein fenster oder auf einen Drucken und so weiter. daduch das wir der Picturebox jetzt ein bimap geben kann sie sich neu zeichen wenn ein WM_paint kommt. Das verhinder der fecken die du vir hattest. Gucken jetzt noch mal in deinen Code wegen dem Resize.

NumberFive
20.02.2007, 12:40
so funktioniert es halb wegs



Private Sub RnWizard_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd
If MyAppName = "Radar" Then
Dim TempBitmap As Bitmap
If Equals(Me.PictureBox2.Image, Nothing) Then
Me.PictureBox2.Image = New Bitmap(PictureBox2.Width, PictureBox2.Height)
Else
Me.PictureBox2.Image.Dispose()
Me.PictureBox2.Image = New Bitmap(PictureBox2.Width, PictureBox2.Height)
End If
Dim LokalDC As Graphics
LokalDC = Graphics.FromImage(Me.PictureBox2.Image)

Dim CircleLocalHighSero2 As Integer

For i As Integer = 1 To PictureBox2.Height Step 40
CircleLocalHighSero2 = ((PictureBox2.Height / 2) - (i / 2)) 'Den Zeichen-Nullpunkt zuweisen
LokalDC.DrawEllipse(New Drawing.Pen(ColorCircle), CircleLocalHighSero2, CircleLocalHighSero2, i, i)
Next
LokalDC.Dispose()
End If
End Sub


Ich habe jetzt natürlich nicht die Zeit mich durch die ganze Applikations logk zu arbeiten. Möchte ja auch in meiner Software weiter kommen.

Hast du zwei Com's (RS232) an deinem PC oder zwei PC's zum Testen ?
Wegen der AVRSim. Währe es dir möglich was ein zubauen das beim Demo der simulor für die AVR Telegramme mal gestartet wird mal nicht ?

Zu den Try Blöcken: es gabe bei meinen ersten Versuch zb Execption bei den zuweißen des Graphics wei eben noch kein Bitmap in der Picturebox war. Nur ohne Try block sieht man die nur im Debugger. in Dot net schein alles über exceptions zu laufen.

Gruß

marvin42x
20.02.2007, 12:57
@Numberfive:
Danke für den Grafik-Support, das reicht so schon. Werde mich drum kümmern.
Ich habe wenn nötig 2 PC im Netwerk dabei jeweils eine serielle Schnittstelle je PC.
Was das Starten angeht müsste ich genauer wissen was Du brauchst.
Wenn Du willst können wir heute Abend was Aufbauen. Dann können wir uns bei Bedarf über icq kurzschließen.

Netter Gruß

NumberFive
20.02.2007, 14:04
wenn ich bei dir auf dem Wizard demo drücke dann wird unter andrem ein Wizard als AVR simulator gestartet. Es währe scön wenn man das verhindert könnte den Ich möchte mit meinem AVRSim den AVR bzw Microcontroller simulieren aber richtig Über die RS232 so das wir nicht nur eine Demo habe sondern auch gleich eine test Sofware für den ganzen weg. Ohne da man jetzt ein AVr oder so was programmieren müssen so kann man nämlich den PC teil auch ohne robi testen. und weiß schneller wo der fehler ist. Für mich ist jetzt erst mal der Serialserver gestorben werde mich in dem Punkt jetzt voll auf Picknick verlassen und hoffe das der die Letzten Macken als blad raus machen kann.

Ich denke im haben mit dem Rest genung zu tun.

Gruß

marvin42x
20.02.2007, 14:42
Zu tun ist genug, da hast Du Recht.
Es gibt drei Wege den Simulator zum schweigen zu bringen.
1. Du beendest ihn einfach, ist das kleine Fensterchen wo Simul… dran steht.
2. Du schaltest ihn aus, dazu drückst du den unteren der beiden Köpfe links oben. Dadurch öffnet der Simulator sein Fester ganz. Da findest Du eine Checkbox "Simulieren". Die hackst Du an und wieder aus. Dadurch hat er dann mitbekommen das er die Klappe halten soll. Mit dem Schieberegler kannst Du übrigens die Pause zwischen den Messages verkürzen, was den Netzverkehr vermehrt.
3. Du änders im Quellcode im Aufruf der Simulation den Aufruf des Simulators auf SIM=1 auf SIM=0. was sicher etwas Umständlich wäre weil Du den Aufruf erst suchen musst.
4. Du sendest übers Netz SIM=0 (Das Commandbyte als 1 nicht vergessen, damit er weis das ist ein Befehl)das sollte auch gehen , habe ich aber noch nicht ausprobiert.
SIM ist noch nicht dokumentiert, das kommt noch.

Netter Gruß

NumberFive
20.02.2007, 23:06
@PicNick ich suche die defintion für die IO's auf dem AVR ADC habe ich ja gefunden.

NumberFive
21.02.2007, 07:24
so jetzt habe ich in der AVRSim ein bisschen leben drin aber was der rnserver macht verstehe ich ehrlich gesagt nicht.

SERV<-µC 081523 00 00 00 25 86 01 A2
SERV->IP 081523 00 00 62 00 86 01 A2

wie soll ich jetzt auf dem IP weg merken was das war ? eigendlich sollte das ein wert des ADC's gewesen sein.

Was mache ich hier falsch ?

NumberFive
21.02.2007, 07:32
00 00 25 00 86 01 A2 send dann macht der rn_serve das richtig ist das richtig weil das ist ja jetzt sourceclass und sourceid verdreht oder habe ich es einfach nicht kapiert ?

marvin42x
21.02.2007, 13:26
@all:
So Männers. Jetzt mal konzentrieren.
Ich brauche zur Überwachung des Füllstandes der Kaffeekanne unserer arbeitlichen Kaffeemaschine eine Videolösung.
Die Kamera wird über ein USB Kabel an einen PC angeschlossen.
Der PC hat das Betriebssystem Windows XP.
Das Videobild soll im LAN verfügbar sein.
Die Framrate und die Auflösung können gering sein.
Es soll eine kostenlose Softwarelösung gefunden werden.
Meines Wissens war das auch die, oder eine der ersten, Aufgaben einer Webcam überhaupt.
Ich bitte um Vorschläge.
Besonders interessiert wäre ich an einer RnCom Lösung :-)

Netter Gruß

NumberFive
22.02.2007, 04:56
So dann hoffen wir mal das wir das mit Meinen VideoServer und Client lösen können. Fände es genial wenn wir das hin bekommen.

Gruß

marvin42x
22.02.2007, 09:47
Die Vorschau auf Deinem Videoserver läuft schon.
Danke für die schnelle Lieferung

Netter Gruß

marvin42x
22.02.2007, 11:42
Server und Client laufen jetzt ganz wunderbar.
So hatte ich mir das vorgestellt.
Jetzt nur noch Kabel verlegen und fertig.
Das ganze Video geht ganz gut auf die Rechenleistung. Wobei die Netzlast mit7% bei einem 100Mbit Netz kein Problem darstellt.
Die Frage der Informellen Selbstbestimmung der Kaffeekanne habe ich an unsere Rechtsabteilung zu Prüfung übergeben.

Netter Gruß

marvin42x
22.02.2007, 12:59
Für alle die, die die Geschichte nicht kennen:
http://www.wdr.de/online/computer/trojan/index.phtml

Man kann sehen RnCom kann unerwartete Nebenwirkungen haben ;-)

Netter Gruß

NumberFive
22.02.2007, 21:01
jemand eine idee wie das schneller geht:



DWORD outCount = 0;
BYTE* pBufferOut = new BYTE[pBitmapData->lBufferSize];
DWORD offset = (pBitmapData->Height - 1) * (pBitmapData->Width * 3);
for(i = 0; i < pBitmapData->lBufferSize; i+= 3)
{
pBufferOut[offset + outCount] = pBitmapData->pBuffer[i+2]; outCount++;
pBufferOut[offset + outCount] = pBitmapData->pBuffer[i+1]; outCount++;
pBufferOut[offset + outCount] = pBitmapData->pBuffer[i]; outCount++;

if(outCount % pBitmapData->Width == 0)
{
offset -= (pBitmapData->Width * 3);
outCount = 0;
}
}
memcpy(pBitmapData->pBuffer,pBufferOut,pBitmapData->lBufferSize);
delete pBufferOut;


r und b tauschen um alles was oben nach unten

marvin42x
24.02.2007, 14:53
@NumberFive:
Ich habe jetzt eine Version in den Downloadbereich gestellt mit der Du über die Textfelder wieder senden kannst. Den Bereich habe ich etwas übersichtlicher gestaltet. Es scheint doch günstiger wenn ich den Bereich nicht wegrationalisiere.
Das ist ja bei jeder neuen Komponente immer wieder nützlich, die am Netz teilnehmen will.
Den Simulator habe ich standardmäßig angelassen damit etwaige Interessenten auch etwas Bewegung im Netz wahrnehmen können. Den brauchst Du einfach nur zu schließen.
Dein Simulator ist nicht vergessen ich komme dazu auch noch.

@PicNick:
Das ist generös, wenn du die Netz- Loggerei auf dich nimmst. Ich habe mein Logdevice mal in die Garage zurückgeschoben.
Da Du weist, dass ich unmäßig bin habe ich natürlich auch noch eine Wunschliste.
Ich weis nur noch nicht ob ich die an den Osterhasen oder an den Weihnachtsmann richten soll.
Da ich mal vermute, dass Du dich mit keinem von Beiden Identifizieren willst habe ich jetzt spontan beschlossen sie Dir zu schicken.

Wunschliste(Bescheidenheits- Version):
Kann man später mal Infos über den Netzverkehr vom Server beziehen? So alle Sekunde die Anzahl der Messages oder so?
Ich finde es sehr hilfreich. Ich konnte dadurch beispielsweise sehen, dass der Server beim gleichzeitigen Start von 9 Wizards im ersten Moment in Logmessages ersäuft.
So eine Art Netzmonitoring halt.
Das ist aber nicht oben an, nur mal so zum drüberstreuen.

Netter Gruß

marvin42x
24.02.2007, 16:05
@NumberFive:
Nachtrag:

Wenn ich in die Felder eingebe:
Command 1
SourceClass 2
SourceID 3
TargetClass 4
TargetID 5
Message 6
Bekommt der Server:
04 05 02 03 01 36

Die 36 sind Ascii 6

Wenn ich bei Message 66 Eintrage:
Bekommt der Server:
04 05 02 03 01 36 36

Also 2 mal Ascii 6

Vielleicht sollte ich noch ein Feld für Numerische Eingabe der Message machen?


Netter Gruß

marvin42x
24.02.2007, 19:25
Hat jemand einen Tipp?
Wie ich Ein 16bit Integer über das TCP bekomme?

String zu Value kann ich:

value As String
Int As Int16
Int = Convert.ToInt16(value)

Value to String kann ich auch:

Value = convert.ToString(Int)

Trotzdem bekomme ich keine 2 Byte vernüftig zum µC.
Die Übertragung zwischen den PC Programmen ist ja nicht schwer.

Irgendwie habe ich da eine Denkblockade.
Oder muss ich wirklich mit Byte Array und Low und Higbyte arbeiten?
Hat jemand da was, wie man das üblicherweise macht?

Netter Gruß

NumberFive
25.02.2007, 06:44
@marvin42x

zu deinem Nachtrag nein lass es so habe bei mir das alles so implemtiert.

da durch das ihr in der dll das mit den TCP messages so gemacht (String) kommst du um das Byte Array nicht rum. Auf passen es könne sein wenn du so ein 0 Byte in den string bastels das die DLL weg fliegt.

Zu dem Netzmonitor willst du das als datei oder auf dem Bildschirm ?
Als datei mach das zu mindestens für User messages der DataCenter von mir den wenn der keine MySql findet schreib er alles in ein Datei.

Gruß

marvin42x
25.02.2007, 08:52
@NumberFive:
Int2String:
Gestern Abend hat MrNiemand mir noch eine kleine Umfummel Sub geschickt.
Es war, wie Du schon sagtest, mit Low und Highbyte. Diese neue Sub liefert im Gegensatz zu der, die ich in VB kenne: convert.ToString(Int) die richtigen Werte, die dann auch der µC versteht und richtig als Integer auffasst. Die habe ich schon eingebaut und sie ist bestansteil des RnWizards im Downloadbereich. Ich habe zum senden „von Hand“ noch ein Numerisches Feld zum Stringfeld dazugestellt in welchem man jetzt Integer verschicken kann.

Netz Monitoring:
Mir schwebt im Moment eine Lösung vor in der jedes Programm sich Informationen des Netz Zustandes holen kann.
Sagen wir mal Du schickst dem Server, oder den Servern,
NETMON=Ask und er/sie schickt dir dann z.B.
TIME=12:34:54,RS232=134,TCP=2078,LOG=455,COM=293
Dann kann Mensch und Maschine gleichermaßen das Netz beobachten.
Mensch hätte natürlich gerne einen Graphen der ne Kurve malt.
In einer Datei hat natürlich den Vorteil auch später darauf zugreifen zu können.
Das mit der Datenbank ist natürlich auch sehr verlockend, das würde ich als zusätzliche wichtige Option sehen. Die Aktualisierung von Netzzuständen würde mir im Sekunden Takt vorschweben.
Ich hatte auch schon daran gedacht das der Server die Kurve bei Bedarf malt aber der Vorteil, dass die Netzdaten überall verfügbar sind schien mir schwerer zu wiegen.
Du siehst, es ist noch im Ideen Stadium.

Netter Gruß

NumberFive
26.02.2007, 03:59
TIME=12:34:54,RS232=134,TCP=2078,LOG=455,COM=293

Was soll mir die Zeile sagen ?
Der Datacenter funkt zur Zeit auch Ohne MySql dann sind ein paar funktionen abgeschaltet oder anders realisiert. Was sollte in deinen Augen die Kurve darstellen ?

Gruß

marvin42x
26.02.2007, 07:50
@NumberFive:
Den String habe ich mir nur ausgedacht :-)
TIME=12:34:54,RS232=134,TCP=2078,LOG=455,COM=293
Aber so könnte im Key=Value Format aussehen wenn der Server sagt:
Es ist 12:34:54 Uhr und ich habe in der letzten Sekunde 134 Messages über Rs232 verschickt, 2078 über TCP, es waren 455 Log Messages und 293 Kommandos.
Das müsste man sehen wie das am besten kommuniziert wird.
Key=Value wäre schon ideal.
Bei der Kurve(können auch mehrere sein), wäre interessant, ähnlich wie beim Windows Taskmanager die Netzauslastung darzustellen. Ich habe in meine Demo eine Kurve mitlaufen in der sekündlich die Menge der empfangenen Messages gezeichnet werden. Wenn ich vom Server so was in der Art wie oben beschrieben bekäme könnte jeder selber eine Kurve malen wenn er es braucht oder es gibt einen Netzmonitor von jemandem der das macht.
Wenn man später sogar zurückliegende Datenverläufe abrufen könnte wäre das ja schon die Kür. Aber jetzt erstmal noch verzichtbar.

Grafik:
Ich habe jetzt alle grafischen Sachen bei mir nach Deinem Beispiel umgebaut. Das geht jetzt prima. Danke noch mal. So wie ich es gemacht hatte war aus einem Beispiel aus dem Internet. Ich hole mir dort sonst gerne Anregungen.
Ich würde gerne noch Zahlen an die Skalen Linien der Bitmap schreiben. Hast Du so was schon mal gemacht?

Netter Gruß

NumberFive
27.02.2007, 05:19
Nein sowas habe ich nicht gemacht aber das Graphics müsste sowas wie TextOut habe damit solltest du text auf das bitmap bekommen.

Die gewünschten daten werde ich woh nicht liefert können den ich denke das ich nicht mit bekomme was der RN-Server serial raus schreibt aber ich werden das mal testen.

Seid gestern habe wird das Video bild in der GUI wir sin zwar beide noch nicht vom speed begeistert aber man sieht was es werden soll.

muß jetzt mal sehen das ich die anderen Komponeten weiter bekomme da der Filter ja im moment scheinbar tut.

Gruß

NumberFive
27.02.2007, 07:05
http://www.i-do-more.de/mine-robo/download/RN-Protokoll.zip

Hier findet ihr meine Aktuellen sachen

NumberFive
01.03.2007, 07:47
So Jetzt gibt es auch eine dll mit der man die RGB daten bekommt. Ein VB6 Beispiel wie man an die Daten Kommt habe ich auch bei gepackt. Für die dot-net Freaks unter uns die dll soll über interop ein zu binden sein.

Damit sollte es jetzt genung Clients geben mit den wieder an die daten des Video Server's ran kommt. Und jetzt Mache ich das RN-Com für VB6

Gruß

marvin42x
01.03.2007, 12:50
@NumberFive:

RnNetworkLayer.exe:
Läuft und registriert wenn das RnComDataCenter Startet.

RnComDataCenter:
Das RnComDataCenter logt jetzt in meiner MYSQL- Datenbank ein. Richtig mit Username und Passwort.
Sie meldet sich offensichtlich auch am RnServer an, weil der ein Accept ausgibt. Nur im Server- Tree ist sie bei mir noch nicht zu sehen.

Video:
Der Video Server läuft, wissen wir ja schon.
Der Client auch.
Dein VB6 Beispiel läuft im Prinzip auch schon, Ich habe erstmal einfach meine IP in den Code geschrieben. Nur macht er ein Fenster auf in dem Text ausgegeben wird. Kann sein, das ich da noch was nicht richtig mache?
Wenn ich weis was das ist versuche ich auch mal das in vb2005 einzubauen.


Eine nette Familie, die Du da gründest :-)

Netter Gruß

NumberFive
01.03.2007, 19:41
nein in der dll war ein fehler.
habe das zip update dort ist jetzt ein neuer dir damit sollte das problem weg sein. sie hat jetzt auch die Funktion WithHeader dann ist in den ARRAY of byte der komplette BITMAPheader drin. für die funktion die ein kompletest bimap brauchen

NumberFive
02.03.2007, 06:56
@marvin42x

Hast du vielleicht eine Cisco VPN Client auf dem rechner ?
Wenn ja schalte mal dort die Firewall ab das war auf meinen Nootebook das problem obwohl der Clien nicht aktiv war hat er die RNCom protokoll geblock bzw. die Packte geroutet. Vielleicht sieht's du dann die Anmeldung im RN Server. Ih habe das hier echt an sehr vielen Rechner auf probiert tut überall. Wenn das bei dir nicht hin bekommen kannst du nicht weiter Testen.

@All Niemand hat gestern Abend die StreamToBitmap noch in die GUI ein gebaut so das jetzt die Bilder des VideoServer's in der GUI angezeigt werden können.

Ist da draussen den keiner der mir Mal Test Feedback's geben kann ? laut server log gab es dort ganz Viele downloads der Datenen / des Zipfiles.

Gruß

NumberFive
02.03.2007, 07:11
http://www.pearl.de/product.jsp?pdid=PE5858&catid=1413&vid=916&curr=DEM

Eigendlich sollten wir hier den treiber Knacken und ein binden währe doch mal lustig oder ?

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=24477

Das hat mich auf die Idee gebracht.

marvin42x
02.03.2007, 13:28
Help:
Mal was Anderes, ich möchte einen Vorschlag zu einem einheitlichen Programm- Help- System vorstellen.
Das System hat aus meiner Sicht ein paar Vorteile die für unsere Situation ganz nützlich erscheinen.

Der Umgang mit den Programmen kann damit erleichtert werden.
Ein Wieder- Erkennung- Faktor. Einmal gekonnt immer gekonnt.
Umfangreiche Hilfe ohne viel Aufwand, da alles nur einmal erstellt werden muss.
Das Konzept der Netzwerkfähigkeit wird vollständig unterstützt.
Das Hilfesystem ist Plattform- Unabhängig.
Kann jeder ohne viel Mühe einbauen.

Das ganze ist nicht super originell, aber ich denke wir sollten darüber nachdenken.

Ich habe es mal zur Demonstration in den RnWizard eingebaut
www.marvins-lab.roboterbastler.de/Downloads/RnWizardDemo.rar

Downloaden,
Endpacken,
Einfach nur Die RnWizard.exe in ihrem Verzeichnis starten und anschließend den „Help“ Button im RnWizard drücken.

Bitte mal ein paar Meinungen und/oder Vorschläge, auch erwünscht von nicht direkt Beteiligten. Das hilft mir, Mir fehlt da einfach die nötige Distanz.

Netter Gruß

marvin42x
02.03.2007, 13:41
@NumberFive:
Dein Link Nummer 2 funst bei mir nicht?

Grundsätzlich gefällt mir das ganz gut. Wenn jemand zur Tür reinkommt und die Basis wendet sich dem Besucher zu hat man sofort ein gänzlich neues Gesprächsklima :-)

RnComDataCenter:
Ich habe jetzt eine andere Firewall installiert aber es geht noch nicht. Aber ich bleibe dran.

GUI MrNiemand:
Habe ich da was verpasst?
Kannst Du mal den Link dazu reinstellen?

Netter Gruß

NumberFive
03.03.2007, 10:29
das mit der html hilfe ist grunsätzlich mal ne gute idee nur die ganze hp das mit rein zu pachen finde ich net so gut. Würde dann eher nur ne start seite rein packen und den rest dann online holen macht den download kleiner und ist dann immer aktueller als so.

Für die GUI hab ich keinen Download link bekomme das zeug per ICQ oder Mail. da müssen wir mal mit Niemand reden. Vielleicht mach es uns ein Link.

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=26724

Der zweite link so sollte er tun.

marvin42x
03.03.2007, 15:42
Ja, ne gute Idee.
Ich werde mal sehen wie ich das hinbekomme.

Netter Gruß

NumberFive
04.03.2007, 07:46
Ich habe jetzt meiner AVR Sim mal 8 IO's verpasst da sie im Protokoll noch nicht definiert sind habe ich Ihnen jetzt mal die H83 verpasst. Die War noch frei und so kann ich weiter Testen

NumberFive
04.03.2007, 11:40
so schluß für heute Ich habe das Zip File auf dem server updatet.

Gruß

marvin42x
04.03.2007, 16:22
AVR Sim:
Ich habe mal ein Nullmodem- Kabel aufgetrieben und den AVR Sim angeworfen.
Der alte Täuscher meldet sich erstmal gleich richtig als RNBFRA 1.2 an :-)
Auch die beiden Schieberegler melden sich gleich mal als ADC’s an.
Was ich jetzt noch schön wäre wenn der Simulator anzeigt was er sendet.
Damit könnte man sehen ob das auf der anderen Seite auch so ankommt.
Schöne Sache das Teil.

Netter Gruß

NumberFive
04.03.2007, 19:13
Ich habe das Zip File auf dem server updatet. (Freudin mußte noch was Arbeiten *g*)

Übertreibt der neue Wizard es nicht ein bisschen mit den Lebenszeichen ?
entwas länger währe schön. Oder gar abschalt bar. die Microcotroller Adresse zu nehmen finde ich dan irgenwie auch nicht so prinkelt. was will der Controller damit mach nur die RS zu da zwischen Controller und RN_SERVER eh schnon ein Lebenzeichen aus getauscht wird.

Picknick währe hier auch mal gefragt den wie Lebens zeichen machen ohne das der Kram an den Controller geht ?

Gruß

marvin42x
04.03.2007, 20:47
(Freudin musste noch was Arbeiten *g*)
.................................................. ..., tanzen die Mäuse auf dem Tisch. :-)



Übertreibt der neue Wizard es nicht ein bisschen mit den Lebenszeichen ?

:-)
Ja, das hat aber mit dem Plug and Play Netzwerk zu tun. Da soll er nach momentanen Stand, ich glaube, spätestens alle 5 Sekunden was schicken damit er im Server nicht aus der Liste gestrichen wird.
Beim Testen kann er einem damit aber ganz schön auf den Keks gehen. Ich werde das mit einem Häkchen an und abschaltbar machen. Auch, dass das Alive Adressen enthält werde ich ändern. Ich hatte dafür bislang bequemer Weise einfach meine SendMessage Routine verwendet.

Ich mach mich mal ran an die neue Version von Dir und werde auch einen frischen Wizard mit wählbarem Alive fertigmachen.
Bislang hatte ich mich ja nur um die reine Grobkonstuktion gekümmert aber im Zuge des AVR Sim ist es die Gelegenheit den Datenverkehr zu harmonisieren.

Netter Gruß

marvin42x
05.03.2007, 00:55
So, ich mach erstmal Schluss.
Ich habe eine Zwischenversion reingestellt.
Die ist zwar unfertig aber der erste Schritt in die richtige Richtung.
Diese Version macht erstmal keinen Netzverkehr.
Da könne wir in Ruhe Testen.

Netter Gruß

NumberFive
06.03.2007, 06:39
So habe meine Dummen gefunden jetzt sollte sich der Netzwerklayer auch bei dir am RN-Server an melden. Machmal sieht man den wald vor lauter bäumen nicht.

Gruß

NumberFive
11.03.2007, 08:26
So Leute jetzt müssen wir ein bisschen gas geben. In 9 Monaten werde ich woll noch weniger Zeit haben.

Gruß

marvin42x
12.03.2007, 02:03
Gas geben:
Guter Plan :-)
Ich bin gerade dabei dem Wizard das Servern beizubringen.
Die Dll hat das ja drin und eine short Docu von PicNick habe ich auch noch dazu.
Leider ist mein Genius nicht so riesig, was arg aufs Tempo drückt.
Eigentlich wollte ich mich ja davor drücken weil das für mich nicht ganz ohne ist.
Aber nu, ich kann schon einen Serverport öffnen und meine Clients melden sich schon an und werden gelistet. Wenn das klappt, kann ich meine kleine Wizard Familie wahlweise auf einen anderen Port schicken und dort gezielt routen.
Das verringert den Datenverkehr und die CPU Last erheblich.
Zurzeit bekommen ja noch alle alles, und alle gucken rein, ob es für sie ist, da geht mein etwas ältlicher Rechner schon mal zart in die Knie.

Netter Gruß

Ps. Irgendwie erinnert mich die Zahl 9 Monate an was, wenn ich nur drauf kommen würde an was??
Aber das hatte irgendwie mit was Schönem zu tun, glaube ich.

NumberFive
12.03.2007, 05:57
So die 900 Antwort gehört mir.

Ja das ereignis in 9 Monaten ist sehr schön so hoffen wir mal.

Warum jetzt noch einen Server ? Ich finde das jetzt ein bisschen energie verschwendung wir habe jetzt schon zwei. Wenn deinem Rechner die Puste jetzt aus geht ist doch eher die Frage wo ist das Problem. Das Weg zu machen fände ich wichtiger als das du jetzt noch einen Server baut's ich werde mal versuchen das ich dir ein Beispiel für VB dot net und meinen Server mache dann haben wir vergleichs werde und können besser suchen. Es gibt so vieles wo wir der deine Genius besser brauchen können als dort. Versuche gerade mein eine Routing tabelle bei zu bringen so das schon im server kern das Problem hoffentlich elmierit wird. Wird brauche noch genung oberfläschen element für zum zeigen das nach meiner meinung du dort besser auf gehoben bist. Bist Picknick uns wieder am Server helfen kann.

Was hälst du von meinem Vorschlag ?

PS: Ich probiere mich parallel dazu ein ein Spielfeld karten module nach dem Packman prinzip. So das zu mindestens karte für eine Gewisse größe möglich sind.

marvin42x
12.03.2007, 12:03
Klaro, meine Serverei kann gut warten. Das ging mir nur drum das das Zeug erstmal geroutet wird damit etwas Ruhe in den Datenverkehr kommt.
Das Konzept mit vielen Netzteilnehmern hätte halt ohne Routing Leistungsmäßig Nachteile wenn alle immer gucken müssen.
Dass Du Deinem Server auch das Routen beibringen willst wusste ich nicht. Das ist prima.

Solange PicNick nicht da ist müssen wir eh ein wenig um ihn rum programmieren.
Ich hege ja sowieso eine Vorliebe für eine Vielfalt von Programmen, welche alle in das RnCom passen. Und wenn wir es fertig bringen das Netz mit unterschiedlichen Programmen zu betreiben bekommen wir das Netz sehr Alltagstauglich hin.
Da sind sicher noch einige Haken verborgen die wir begradigen müssen.

So eine Art Absprache wie wir weitermachen finde ich auch sinnvoll.
Dein Vorschlag ist in Ordnung, lass es uns so machen.
Über Beispiele in vb .Net freue ich mich immer.


Netter Gruß

marvin42x
13.03.2007, 00:19
@NumberFive:
Mir sind, als ich an Deinen Simulator gedacht habe ein paar Möglichkeiten durch den Kopf gegangen.
Wenn Du gerade an einem Spielfeld alla Packman baust, würde es doch auch möglich sein einen Packman darin laufen zu lassen. Mit einer Kollisionserkennung an den „Wänden“
Diese Packman würde laufend 2d Koordinaten plus Wandkontakt Plus Entfernung bis zum nächsten Hindernis plus Himmelsrichtung seiner Bewegung produzieren.
Da das ja sowieso Programm Variablen wären die eh mitlaufen.
Das wären alles Daten die Dein Simulator im AVR Format versenden könnte.
Versteckt z.B. in ADC Werten wie sie ein Infrarot oder US Entfernungssensor produziert.
Die bräuchtest Du dir nicht extra ausdenken, lass den doch rumlaufen.
Das ganze hätte auch eine gewisse Zufälligkeit.
Damit könnte man auch MrNiemand’s 3D Oberfläche füttern um sie zu Testen, und um sie zu Demonstrieren.
Wenn man 2 Rechner hat, kann man auf dem einen den Packman sehen und auf dem anderen die GUI und man könnte sehen, ob die GUI das korrekt wiedergibt.
Ich weis jetzt nicht genau an welcher Stelle Du das Karten Modul einsetzen willst. Es könnte aber sein das man es für die GUI- Seite und Die Simulatorseite nutzen könnte.
Das fiel mir nur so ein, ich weis nicht wie Programmieraufwändig das ist.
Aber im Extremfall ist Dein Konzept für einen Super Simulator gut.

Netter Gruß

NumberFive
13.03.2007, 20:55
erstmal zip file update habe jetzt auch ein VBNet Sample für die DLL drin.
KLar kann mein dll nicht alles was die andere kann aber damit kann man in meinem augen schnell und ein massive meneg an TCP nachrichten aus tauschen. ich muß zu geben die Hälfte der funktione in der ander dll habe ich noch garnicht verstanden.

Es soll halt ein karte werden die du dann beschreiben kannst so hier geht es lang hier nicht dann kannst du die fragen wie komme ich da hin. Mal ein Beispiel:

ACTION=InitMap, X=32, Y=32

Erzeugt ein spiel feld der Größe 32 x32 felder (Mühle/Dame /Schach)

ACTION=SetPackMan,X=0,X=0 Setz du Ihn nach rechts oben

ACTION=GetRouteto,X=12,Y=14 bekommst du wo du lang fahren/gehen muß.

Mit ACTION=SetWall,X=3,Y=3 markierst du den Bereich als nich befahrbar.

Das ist erstmal so das grobe Ziel genauer Befehls Syntax kommt dann wens funktioniert. Wenn ich mein robi so weit hätte das er mal daten liefert würd ich das alles gerne mal zu sammen test aber mir fehler zur Zeit zwei ent scheiden dinge die Drehsensoren und die gerade aussicht. und das richtige netz und speicher für mein epia board und für diese zwei sachen reicht das geld im moment einfach nicht.

gruß

marvin42x
13.03.2007, 23:22
Das .Net Beispiel ist ja interessant, ich habe schon mal reinschauen können. Leider habe ich die nächsten zwei Tage volles Programm und werde vermutlich zu nichts kommen. Danach mach ich mich aber dran.
Die Dll von PicNick hat eine ganze Menge drauf. Ich habe auch noch nicht alles implementiert.
Aber einige kann man im Wizard schon angucken.
Mit der Map bin ich ja mal gespannt. Das hört sich gut an.

Geld:
Im nächsten Leben kommen wir als Millionäre auf die Welt, da kaufen wir dann soviel wir wollen :-)

Netter Gruß

NumberFive
15.03.2007, 00:28
so zip Updatet

ACTION=SetWall,X=1,Y=2
ACTION=InitMap,X=32,Y=32

Diese zwei kann der DataCenter jetzt
bei init map die werte nicht über treiben geht sonst schnell aus ram.

da ich wegen der Kontrolle mir erst mal ein Graphi libary bauen mußte dauert es halt ein bisschen länger als geplant. aber das im source zu kapieren wenn der rouetn such macht kein spass so ist leichter.

Achtung auf lösung des Bildschrims muß bei an zeigen der Karte >= 800x600 sein.

Routing in meinem server mache ich erst wenn mir nix besseres ein fläält oder jedman mir zeigen kann das der server zu lagsam ist. habe auch schon ein Idee fürs routing aber denke von der karte haben wir im moment mehr. Klar wenn dir perfomens nicht aus reicht kommt das wieder nach oben in der Prio liste.

Gruß

marvin42x
15.03.2007, 08:49
Das mit der Priorität sehe ich auch so. Lass uns das ruhig so machen wie Du es gerade vorhast.
Schade, dass ich grad noch so im Stress bin, aber ab morgen sollte es wieder mehr Luft sein.

Rechenleistung:
Der Server frisst ja bei mir kaum Leistung. Es sind die Clients, die einzeln ja auch nicht ins Gewicht fallen, ca. 6-7% je Client, aber bei 10 Client hast Du halt 60-70% .
Aber das ist erstmal nicht so schlimm, da schaffen wir später Abhilfe.

Ich werde mich dann auch erstmal noch um die Ansteuerung von I/O Ports im Wizard kümmern. Ich habe mir dafür schon mal von MrNiemand eine Bit zu Byte und zurück Routine schreiben lassen. Da hat er mir viel Zeit gespart, ehe ich selber raus finde wie das geht.

Die Zeit nehme ich dann lieber dazu um die Dokumentation noch Praxisgerechter zu machen.
Da sind auch noch Sachen besser zu machen.

Dann werde ich auch noch Dein VB Beispiel ausprobieren. Das ist so klein, das will ich sehen wie Du das hinbekommen hast.
Also jede Menge zu tun :-)

Netter Gruß

marvin42x
17.03.2007, 15:23
@NumberFive:
Kleine Zwischenmeldung:
Das RNComDataCenter meldet sich jetzt beim mir am Server an.
Den Wert des Schiebereglers des RAVRSim kommt am Levelmeter des Wizards an.
Der StreamClient macht zur Zeit noch kein Bild bei mir sondern nur Text.
Ich habe auch schon mal versucht ob man den auf VB2005 konvertieren kann ;-)
Das VBNet Beispiel verbindet auch schon zum RNComDataCenter. Was ich noch nicht weis wie ich den empfangen kann

Man sieht schon wie das Netz zusammenwächst.

Einen Kundenwunsch hätte ich noch. Kannst Du dem Simulator einen Knopf machen der Ihn Einen Datenstrom senden lässt, wenn es geht mit einstellbarer Datenmenge?

Bei der Adresse frage ich mich ob wir die Identität 0 und die Klasse 0 benutzen sollten oder die 0 lieber für „Nichts“ oder „Alle“ verwenden sollten.
Da die Adressen auf Nutzerebene sind würde ein Nutzer auch mit 1 anfangen zu zählen.
Wir hätten die 0 dann auch frei für andere Bedeutungen.

Netter Gruß

NumberFive
18.03.2007, 06:38
So schön das du weiter gemacht hast.

Grundsätzliche Dinge:

Alle mein Componetengeben bei Init ein Class und adresse mit mit der sind dann auch zu erreichen. Eine ID von 0 und eine Class unter 100 sind nicht zulässig. In meine Kopf gilt die Definition das 0 Immer Broadcast nachrichten sind allso an alle. Und die Class 100 PC zu PC nachrichten.
Ich würde gerne noch die 101 und die 102 dazu nehmen dann sind es im ganzen 765 PC Programme die Adressiert werden können das sollte reichen. Picknick hat zwar irgendwann mal geschrieben das die ID und Class nur auf ein PC ein deutig sein muss dem Würde ist aber gerne wieder sprechen wollen. Leider ist der so wenig on das ich das mit Ihm nicht aus diskutieren kann.

Von meiner Seite gibt es immer nur einen Connect zum RN Server da er zur zeit eh immer alles an all schickt ist das auch kein Problem. Wenn er mal routen kann muß ich im sagen können das über den TCP Connect mehr als einer zu ereichen ist. (Dritte Ebene im Tree) so wie bei AVR halt auch Über die Com1 ist der IC2 zu erreichen.

Einzige ausnahme von der Regel ist nach das ein Device sich als Logger an melden darf das bekommt dann auch immer alles.

Wie bei Streamclient kommt nur Text ? das anzeigen des Bitmap's ist dort nicht aus programmiert. Weil Niemand schon wusste wie es geht bzw. die DLL sich sehr start an seinen wünschte oritiert hat.

Würde gerne noch weitere Dinge festlegen im Protokoll den so langsam bekomme ich auf anderem Wege mit das es ein paar leute gibt die mit mein sachen spielen und es zur Zeit an mach stellen ein wenig schwammig ist.

Ich bin jetzt mal Frech: Aber du draus dich ja nicht ohne Picknick *g*

Wirt lachen aber das mit AVRSim hatte ich schon im kopf wegen der Offline Simulation des Roboter / Wieder hol barkeit von Problem situatiuonen.

Muß mal zu sehen das ich mein erweiterten Defintionen irgend wo hin schreibe.

Gruß

marvin42x
18.03.2007, 13:48
Das mit der 0 und der 100-102 gefällt mir gut. Lass uns das erstmal so machen.
Jetzt wird es ja, wie Du schon richtig sagst, wichtig einige Sachen festzulegen.

Da wir noch in einem frühen Stadium sind sollten wir das einfach machen damit wir weiterkommen. Änderungen im Einzelnen lassen sich an der Stelle später noch recht einfach umsetzen.
Die Praxis bringt sicher auch noch das Eine oder Andere zum Vorschein.

Dass Du mit dem Simulator noch mehr vor hast freut mich. So ein Simulator ist schon eine feine Sache.

Traus Dich ja ohne PicNick nicht:
Stimmt :-)
Aber ganz so schlimm ist es nicht. Wenn wir was entscheiden müssen und er im Moment keine Zeit hat seine Meinung dazu zu geben, machen wir das eben. Du bist ja auch nicht von gestern und so falsch werden wir dann auch nicht liegen.

PicNick hat halt ungleich mehr Erfahrung und Kenntnis als ich auf diesem Gebiet.
Und wenn Du schaust wie er den ganzen Kram vorangebracht hat und mir immer wieder weitergeholfen hat mit meiner etwas eigenwilligen Wizard Konstruktion ist er für mich halt ein wichtiger Verbündeter den man nicht leichtfertig übergeht.

Festlegungen:
Provisorisch werde ich mich mit den Wizard Kinderchen mal die Klasse 100 greifen und darin die IDs ab 200. Damit bin ich keinem im Weg und kann schon mal was adressieren. Diese Adressen sind bei mir bei Bedarf später leicht änderbar.

Sag mal bitte welche Sachen wir noch festlegen sollten um dem Fortschritt nicht im Weg zu stehen.


Netter Gruß

NumberFive
18.03.2007, 14:39
Werde die Defintionen dem Nächst fertig habe weil ich die eh noch für meine Prg's zusammen schreiben muß. Leider hat mich das formu mal wieder nich benachrichtig deswegen kommt mein post erst jetzt.

Habe so eben das Zip updatet. Der AVRSim kann jetzt ganz einfach script datei lesen. Der Prüsummen und kodierung zum RNCom Programm passiert von alleine.

CRLF(Enter taste im Editor) heist neues Telegram jede zeile wird mit einem Abstan von ca. 100 mSec gesendet.

Datei inhalt

<00><01><02>
Hallo
jump 0

Das wird gesendet:

<A9><00><01><02><03><AA>
<A9><48><61><6C><6C><6F><46><AA>

das jump sprint wieder in die Zeile 0

Das sollte für die erst simulationen reichen.
Das jump ist nicht zingend ist da kein jump ende einfach mit der letzten Zeile.

Gruß

NumberFive
18.03.2007, 20:16
so jump und neuer befehl wait kann jetzt auch
wait 500 bedeutet warte mit der nächsten zeile 500 ms werte unter 10 ms macht er nicht. bei jump kann man auch ein zahl ran hängen die bei zurücksrpunk dann warten.

pro zeile sin 100 msec normal das habe ich halt so programmiert.

Gruß

marvin42x
18.03.2007, 21:22
Super, der Simulator läuft. Jetzt muss ich nicht immer meine Hardware anwerfen wenn ich was ausprobieren will.

Netter Gruß

NumberFive
19.03.2007, 05:50
das freut mich. Da sich die Mail's und die ICQ anfragen mit wie Funktiont das kann das oder das machen häufen muß ich heute wohl mal an die Doku ran.

Gruß

NumberFive
19.03.2007, 07:14
So habe mal an gefangen mein Les weiße des protokolls und mein erweiterten defintionen in ein Text datei zusammen zu Packen. Die wir dem zip File bei gepackt. Hier eine Vorab version zu beurteilung.



Grundsätzlich gelten Natürlich die Defintionen und Regeln
für das Protokoll so Wie es Marvin und PicNick es definiert
haben mein Definition sind nur erweiterung damit die Schnistelle
EasyToUse wird bzw bleibt. Und die Komponenten so einfach sein Können.

Da PickNick zur Zeit in anderen Projekten gebunden ist kann auch nicht
mit Ihm die Erweiterung abstimmen aber ich denke er liest mit und würde
sich schon bitter beschweren wenn so sehr aus dem Runder läuft.

Haupt unterschied zwischen meiner Implementierung des TCP Stack's (heist das so?)
Und dem von PickNick ist der das PickNick eine TCP verbindung für jeden Client hält.
Und ich auf MultiCast als Übertragungsweg setze.

Damit gilt den rn_server brauche ich nur einmal im Netz und die RNComNetworkLayer
muß auf jeden Rechner der am RNCom-Netz teilnehmen möchte.

Vor und nach Teile:
RN_SERVER RNComNetworkLayer


Um nun von einem Teil netz in das andere zu kommen braucht man keine besonderheiten
sonder muß nur Irgendwo den Übergang definieren.

In dem man in der RNComNetwork.ini
StartTCPConnect=1
RN_ServerIP=192.168.2.10
die Obigen werte anpasst.

Im RN_SERVER wir immer nur 1 Client angezeigt nämlich der Networklayer. Da PickNick zur
Zeit mehr als 1 Client am TCP Prot nicht darstellen kann. Da aber eh alles an alle
geschickt wird ist das kein Problem.

Da ich auch eine Weile gebraucht habe bis ich das Protokoll geblick habe folge hier jetzt
die Zusammenfassung nach meine Verständnis mit meinen erweiterungen.

Zur Darstellung:
<00> Bedeutet 1 Byte mit dem Wert 0 die Darstellung ist HEX also <FF> für den wert 255.

Der TCPTeil:
POS Wert Bedeutung
0 beliebig Lowbyte der länge des TCP Telegramms
1 beliebig HighByte der Länge des TCP Telegramms
Damit ergibt sich eine Maximal länge des Telegrams von 65535 Bytes
aber in meinen Componeten ist bei 10240 ist Schluß das liegt an dem
TCP Stack von window mehr Byte kann ich nicht auf einmal senden.
2 beliebig Class an die Gesendet werden soll.
Der wert 4 = AVR an Com1 es wird da von Ausgangen das es nur eine Serialen
übergang zum Microcontroller gibt.
Bis hier Standart defintion RNCom.
Meine erweiterung 100,101,102 Sind PC Programme also <64>,<65>,<66>
3 beliebig ID des Programmes 1 - 255 die 0 steht für Broadcast an alle oder alle der selben
Klasse jenach dem was in der Class drin steht
4 beliebig Absender Class also im Normalfall 100,101,103
5 beliebig Absender ID

ab hier Folgen die Daten

6 Abhängig davon was in der Absender klasse steht
Ist der Absender der Class 10X dann muß Hier <01> Kommen
Für ein KeyValue String (0 Bytes nicht zulässig). Meine erweiterung ist hier eine <02>
Ist das Nachfolgende Binärdaten also 0 Bytes zulässig. Format anwendungs spezifisch.
Ist die Absender Class <82> dann ist in Byte 6 und 7 der wert des AD-Wandlers des AVR's
die ID gibt an welcher es war da die Max auf lösung des AVR Ad's 10 Byte sind also max 1023
werden hier zwei byte benötigt
Meine erweiterung: Absender Class <83> ist das Byte nummer 6 der wert der IO Port's in ID steht welcher


Gruß

marvin42x
19.03.2007, 08:08
Das mit der Docu ist prima.
Wenn Du nichts dagegen hast werde ich das schrittweise mit in die gesamt Docu übernehmen.
Da Du ja den Multicast Zweig verfolgst brauchen wir da eine Beschreibung.
Ich muss mal sehen, dass ich Deine Komponenten auch korrekt in meinen Grafiken wiedergebe.
Ich mache zurzeit vieles der Docu in Powerpoint weil es sich für diese Sache als recht praktisch erwiesen hat. Falls Du was Grafisches machen willst kann ich das empfehlen. Da kann man schön Verbindungslinien, Grafiken, Textfelder und sonstiges einbinden.

Netter Gruß

NumberFive
19.03.2007, 08:13
Klar habe ich da nichts gegen wenn du das in die Gesamt doku auf nimmst.
Multicast werden ich beschreiben kein Problem.

Ich nehme Visio zum erzeugen der Bilder das finde dort auch sehr einfach.

Gruß

NumberFive
22.03.2007, 07:47
so aber nächsten winter muß er fertig sein ich hasse so was am frühen morgen.

siehe:

https://www.roboternetz.de/phpBB2/viewtopic.php?p=265999#265999

marvin42x
22.03.2007, 11:38
Genau genommen sollte es schon früher fertig sein.
Die Vogonen haben zwar vergangenes Jahr das Graswachstum abgeschaltet.
Ich vermute aber, dass das nicht von Dauer ist. Und ich bald wieder von Hand den Rasen mähe. Das ist für jemanden der vor geraumer Zeit beschlossen hat einen automatischen Rasenmäher zu bauen eine echte Niederlage.
Ich baue gerade einen schnelleren Rechner für mich zusammen.
Vielleicht geht es dadurch schneller ;-)

Ansonsten sieht es für ein erstes einfaches Grundsystem schon gar nicht schlecht aus. Da wir bereits Adressen festlegen und Die Messages über RS232 und TCP/IP laufen lassen.

Auf dem Level 3, also Bedeutung des Messages –Inhalts sollten wir für eine erste Ausführung auch schon was festlegen.
Was ich meine:
ADC Wandler: Integer und davon 10 bit
Servo: Integer Bereich 600 -2200
Kompass: Integer: Bereich 0-360
Koordinaten: x Integer, y Integer. Format erst x dann y innerhalb einer Message.

Das ist jetzt als Beispiel gedacht. Aber wenn wir wollen, dass ein allgemeines Zusammenspiel stattfindet sollten wir da mal was vorläufiges festlegen.

Und am Ende des Jahres fegt nur noch der Roboter Schnee.

Netter Gruß

NumberFive
23.03.2007, 06:17
Hat den dein Roboter das Mechanisch potenzial den Rassen zu mähen ?
Hätte hier so ca. 8000 m² übungs Fläsche *g*. Ausmähen wenn die Pferde nicht drauf sind.

Hättest du vieleicht mal luß hier her zu kommen ? Niemand habe ich fast so weit. Dann könnten wir bei mir mal ein RNCom Workshop machen.

Hätte auch ein geschlosse Halle (400 m²) zu Testen so fern das wetter so gut ist das wir die Pferde raus schmeissen können oder Offenstall fertig ist.

Zu Definitionen schreibe ich getrennt was da muß ich noch mal überlegen.

So weit

marvin42x
23.03.2007, 10:22
@NumberFive:

Mein Projekt bezieht sich auf ca. 100m² Rasen.
Der kleine Kerl würde sich ja fürchten auf Deiner Wiese :-)

Gib mal bei www.Youtube.com „Rasenmäher ferngesteuert“ ein.

Einiges in der Art ist dann das Ergebnis
http://www.youtube.com/watch?v=viU4rnPpV4o

Ich habe einen Freund der ganz interessiert an meinem Projekt ist und immer fragt wann es soweit ist, dass wir seinen Rasenmäher umbauen. Der hat auch so ein großes Gelände.

Also das mit dem Rasenmähen für große Flächen habe ich durchaus im Auge. Und was man Fernsteuern kann, das kann man auch zum Roboter machen.

Wenn unsere Sache grundsätzlich läuft, was ja meiner Meinung nach nicht mehr so lange dauert sollen die Programme auch ganz konkrete Aufgaben übernehmen.

Deswegen bin ich sehr daran interessiert die Daten bis ran an die I2C Geräte und Sensoren auszuformulieren. Ich habe beispielsweise I2C Motorendstufen, Kompass, Display, Tastatur, US Entfernungsmesser, Infrarot Entfernungsmesser usw.
Die müssen alle angesteuert werden.

Wir sollten ruhig etwas hemdsärmelig alles mal festlegen.
Nach meiner Erfahrung entwickelt es sich an laufenden Systemen viel besser. Weil die Fragestellungen und Anforderungen dadurch klarer sind.

Nach Deiner Postleitzahl wohnst Du ja ewig weit weg. Das wäre was für einen Sommerausflug.

Netter Gruß

NumberFive
24.03.2007, 08:14
Hallo,

irgend wie ist das Definieren doch nicht so leicht aber ich habe jetzt mal an gefangen.



Grundsätzlich gelten Natürlich die Defintionen und Regeln
für das Protokoll so Wie es Marvin und PicNick es definiert
haben mein Definition sind nur erweiterung damit die Schnistelle
EasyToUse wird bzw bleibt. Und die Komponenten so einfach sein Können.

Da PickNick zur Zeit in anderen Projekten gebunden ist kann auch nicht
mit Ihm die Erweiterung abstimmen aber ich denke er liest mit und würde
sich schon bitter beschweren wenn so sehr aus dem Runder läuft.

Haupt unterschied zwischen meiner Implementierung des TCP Stack's (heist das so?)
Und dem von PickNick ist der das PickNick eine TCP verbindung für jeden Client hält.
Und ich auf MultiCast als Übertragungsweg setze.

Damit gilt den rn_server brauche ich nur einmal im Netz und die RNComNetworkLayer
muß auf jeden Rechner der am RNCom-Netz teilnehmen möchte.

Vor und nach Teile:
RN_SERVER RNComNetworkLayer


Um nun von einem Teil netz in das andere zu kommen braucht man keine besonderheiten
sonder muß nur Irgendwo den Übergang definieren.

In dem man in der RNComNetwork.ini
StartTCPConnect=1
RN_ServerIP=192.168.2.10
die Obigen werte anpasst.

Im RN_SERVER wir immer nur 1 Client angezeigt nämlich der Networklayer. Da PickNick zur
Zeit mehr als 1 Client am TCP Prot nicht darstellen kann. Da aber eh alles an alle
geschickt wird ist das kein Problem.

Da ich auch eine Weile gebraucht habe bis ich das Protokoll geblick habe folge hier jetzt
die Zusammenfassung nach meine Verständnis mit meinen erweiterungen.

Zur Darstellung:
<00> Bedeutet 1 Byte mit dem Wert 0 die Darstellung ist HEX also <FF> für den wert 255.

Der TCPTeil:
POS Wert Bedeutung
0 beliebig Lowbyte der länge des TCP Telegramms
1 beliebig HighByte der Länge des TCP Telegramms
Damit ergibt sich eine Maximal länge des Telegrams von 65535 Bytes
aber in meinen Componeten ist bei 10240 ist Schluß das liegt an dem
TCP Stack von window mehr Byte kann ich nicht auf einmal senden.
2 beliebig Class an die Gesendet werden soll.
Der wert 4 = AVR an Com1 es wird da von Ausgangen das es nur eine Serialen
übergang zum Microcontroller gibt.
Bis hier Standart defintion RNCom.
Meine erweiterung 100,101,102 Sind PC Programme also <64>,<65>,<66>
3 beliebig ID des Programmes 1 - 255 die 0 steht für Broadcast an alle oder alle der selben
Klasse jenach dem was in der Class drin steht
4 beliebig Absender Class also im Normalfall 100,101,103
5 beliebig Absender ID

ab hier Folgen die Daten

6 Abhängig davon was in der Absender klasse steht
Ist der Absender der Class 10X dann muß Hier <01> Kommen
Für ein KeyValue String (0 Bytes nicht zulässig). Meine erweiterung ist hier eine <02>
Ist das Nachfolgende Binärdaten also 0 Bytes zulässig. Format anwendungs spezifisch.
Ist die Absender Class <82> dann ist in Byte 6 und 7 der wert des AD-Wandlers des AVR's
die ID gibt an welcher es war da die Max auf lösung des AVR Ad's 10 Byte sind also max 1023
werden hier zwei byte benötigt
Meine erweiterung: Absender Class <83> ist das Byte nummer 6 der wert der IO Port's in ID steht
welcher.

Zusammen Fassung der Klassen:

Geräte auf der Roboter Seite:

<01>(01) Heartbeat nur Zwischen PC und Roboter
<05>(02) Next nur Zwischen PC und Roboter Nächste Adresse im Roboter
<09>(09) IAM nur Zwischen PC und Roboter Ich bin ein ?
<0D>(13) ASK nur Zwischen PC und Roboter (Habe ich auch noch net geblickt)
<11>(17) UART vom PC nach COM1 ohne Interpreation des Inhalts (Bypass)
<15>(21) VAL Meßwert
<19>(25) Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf
<1D>(29) Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf

Klasse(Dezimal) Bedeutung
<01>(01) RN-SERVER System Class
<42>(66) PCF Expander (Hier fehlt mir noch der Daten Aufbau)
<53>(83) SERVO (RNSNET) 600 - 2000 µS 2 Bytes also werte zwischen 0-65535 wo bei die Forderen werte wirklich gehen
<62>(98) RNBFRA 1.2
<64>(100) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<65>(101) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<66>(102) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<82>(130) AD-Wandler im Roboter (es kann maximal 256 stück geben) Auflösung 2Byte also 0 - 65535
<83>(131) I/O Port (es kann maximal 256 stück geben) Auflösung 1 Byte also 0-255
<84>(132) Schrittmotor (Hier fehlt mir noch der Daten Aufbau)
<85>(133) Getriebemotor (Hier fehlt mir noch der Daten Aufbau)
<86>(134) Roboterlage (Kompass) 2,4,6 Byte 2 Byte muß 6 können
Die ersten 2 Himmelesrichtung 0-3600 (wert dur 10 teilen)
Die zweiten 2 Kippwinkel rechts/Links
Kippwinkel = 0 Lage normal
Kippwinkel = 900 Roboter liegt auf der Linken seite
Kippwinkel = 1800 Roboter liegt auf auf dem Kopf
Kippwinkel = 2700 Roboter liegt auf dr Rechten Seite
Die dritten 2 Kippwinkel Vorne/Hinten
Kippwinkel = 0 Lage normal
Kippwinkel = 900 Roboter Steht auf der Nase
Kippwinkel = 1800 Roboter liegt auf auf dem Kopf
Kippwinkel = 2700 Roboter Sitze auf dem Hintern




Init PC <-> Roboter:
PC hält den Comport offen Roboter muß sich melden.
Daten was geht wirklich über V24 Richtung Bedeutung
<01><00><00><00> <A9><01><00><00><00><01><AA> Robi -PC Heartbeat
<05><00><09><00><00> <A9><05><00><09><00><00><0C><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 0
<09><00><25><00><01><82><00> <A9><09><00><25><00><01><82><00><AF><AA> Robi -PC IAM Ich bin ein ADC habe die Adresse <25> und es gibt noch mehr Geräte nächste Adresse ist die 1
<05><00><09><00><01> <A9><05><00><09><00><01><0D><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 1
<09><00><29><00><02><82><01> <A9><09><00><29><00><02><82><01><A1><AA> Robi -PC IAM Ich bin ein ADC habe die Adresse <29> und es gibt noch mehr Geräte nächste Adresse ist die 2
<05><00><09><00><02> <A9><05><00><09><00><02><0E><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 2
<09><00><30><00><03><83><00> <A9><09><00><30><00><03><83><00><B9><AA> Robi -PC IAM Ich bin ein IO Port habe die Adresse <30> und es gibt noch mehr Geräte nächste Adresse ist die 3
<05><00><09><00><03> <A9><05><00><09><00><03><0F><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 3
<09><00><00><00><FF><62><00> <A9><09><00><00><00><FF><62><00><94><AA> Robi -PC IAM Ich bin ein RNBFRA 1.2 habe die Adresse <00> und es Gibt keine Weiteren geräte Mehr



Kompass ist jetzt drin (Lage).
US Entfernungsmesser, Infrarot Entfernungsmesser müssen nicht definiert werden den das sind AD's oder man mach noch so was wie entfernung und richtung aber bestimmt nich den Typ das währe in Meinen augen ja kontra produktiv den alles soll ja mit allen können. Was interessiert mich wie die Daten erzeugt werden.

Display, Tastatur ist das einzig wo ich überhaupt keine Idee habe.

So jetzt muß ich mal was für den Hof machen vielleicht heut nacht mehr mal sehen.

Gruß

PS: 492.77 km Berlin -> Freiensteinau

marvin42x
24.03.2007, 10:37
Da hast Du Dir richtig Arbeit gemacht.
Ich habe es in die Webseite eingestellt damit das da auch komplett ist.
Das erweitere ich dann nach Bedarf, wenn noch was dazukommt, oder sich was ändert.
Danke noch mal für die Hilfe bei der Arraylist of Structure

Netter Gruß

NumberFive
25.03.2007, 09:17
http://www.marvins-lab.roboterbastler.de/html/tcpmessage.html

Die Seite müsste man jetzt glaub ich ein bisschen überarbeiten.
Das du eigendlich zugriff auf die Server Statistiken für die Seite ?
Würde mich mal Intersieren was da so los ist.



Grundsätzlich gelten Natürlich die Defintionen und Regeln
für das Protokoll so Wie es Marvin und PicNick es definiert
haben mein Definition sind nur erweiterung damit die Schnistelle
EasyToUse wird bzw bleibt. Und die Komponenten so einfach sein Können.

Da PickNick zur Zeit in anderen Projekten gebunden ist kann auch nicht
mit Ihm die Erweiterung abstimmen aber ich denke er liest mit und würde
sich schon bitter beschweren wenn so sehr aus dem Runder läuft.

Haupt unterschied zwischen meiner Implementierung des TCP Stack's (heist das so?)
Und dem von PickNick ist der das PickNick eine TCP verbindung für jeden Client hält.
Und ich auf MultiCast als Übertragungsweg setze.

Damit gilt den rn_server brauche ich nur einmal im Netz und die RNComNetworkLayer
muß auf jeden Rechner der am RNCom-Netz teilnehmen möchte. Auch die Implemtierung
des jeweiligen Client Interfaces ist unterschiedlich. Ich versuche das die Protokoll
im Plemtierung dem User so weit wie Möglich abzunehmen. Die RnRegist.dll enthält
viele Hilfst funktionen aber Letzlich ist ein Relativ hohes verständnis des Protokols
notwenig um es Interpretieren zu können. Ich will nicht verschweigen das meine
Implemetierung ein gefahr bringt nämlich die Sollte sich massiv was am Protokoll ändern
Ändert sie das Client Interface. RnRegist.dll ist in Dot-net Implemetiert und stehn so mit
erst in Programmier Sprachen zu verfügung die das auch können. Meine Implemtierung ist unter
COM das heist das es aus fast alle Sprachen zu erreichen ist.

Was besser oder Schlechter ist kann und will ich nicht sagen. Deshalb hier eine Auflistung der
Unterschiede zwischen beiden Ansetzen:

Unterschiede:
RN_SERVER RNComNetworkLayer
Netzwerkserver und RS232 Reiner Netzwerk Server
Einmal im Netz Auf jedem Rechner der mit dem RN-Com Netz arbeiten soll
TCP Verbindung zu Jedem Client Nur eine TCP (Multicast) verbindung. COM für jeden Client.
Alles muß zu allen gesendet werden Ein mal senden den rest macht das netz
Client Interface RnRegist.dll RNProtClient2.dll


Um nun von einem Teil netz in das andere zu kommen braucht man keine besonderheiten
sonder muß nur Irgendwo den Übergang definieren.

In dem man in der RNComNetwork.ini
StartTCPConnect=1
RN_ServerIP=192.168.2.10
die Obigen werte anpasst.

Im RN_SERVER wir immer nur 1 Client angezeigt nämlich der Networklayer. Da PickNick zur
Zeit mehr als 1 Client am TCP Prot nicht darstellen kann. Da aber eh alles an alle
geschickt wird ist das kein Problem.

Da ich auch eine Weile gebraucht habe bis ich das Protokoll geblick habe folge hier jetzt
die Zusammenfassung nach meine Verständnis mit meinen erweiterungen.

Zur Darstellung:
<00> Bedeutet 1 Byte mit dem Wert 0 die Darstellung ist HEX also <FF> für den wert 255.

Der TCPTeil:
POS Wert Bedeutung
0 beliebig Lowbyte der länge des TCP Telegramms
1 beliebig HighByte der Länge des TCP Telegramms
Damit ergibt sich eine Maximal länge des Telegrams von 65535 Bytes
aber in meinen Componeten ist bei 10240 ist Schluß das liegt an dem
TCP Stack von window mehr Byte kann ich nicht auf einmal senden.
2 beliebig Class an die Gesendet werden soll.
Der wert 4 = AVR an Com1 es wird da von Ausgangen das es nur eine Serialen
übergang zum Microcontroller gibt.
Bis hier Standart defintion RNCom.
Meine erweiterung 100,101,102 Sind PC Programme also <64>,<65>,<66>
3 beliebig ID des Programmes 1 - 255 die 0 steht für Broadcast an alle oder alle der selben
Klasse jenach dem was in der Class drin steht
4 beliebig Absender Class also im Normalfall 100,101,103
5 beliebig Absender ID

ab hier Folgen die Daten

6 Abhängig davon was in der Absender klasse steht
Ist der Absender der Class 10X dann muß Hier <01> Kommen
Für ein KeyValue String (0 Bytes nicht zulässig). Meine erweiterung ist hier eine <02>
Ist das Nachfolgende Binärdaten also 0 Bytes zulässig. Format anwendungs spezifisch.
Ist die Absender Class <82> dann ist in Byte 6 und 7 der wert des AD-Wandlers des AVR's
die ID gibt an welcher es war da die Max auf lösung des AVR Ad's 10 Byte sind also max 1023
werden hier zwei byte benötigt
Meine erweiterung: Absender Class <83> ist das Byte nummer 6 der wert der IO Port's in ID steht
welcher.

Zusammen Fassung der Klassen:

Geräte auf der Roboter Seite:

<01>(01) Heartbeat nur Zwischen PC und Roboter
<05>(02) Next nur Zwischen PC und Roboter Nächste Adresse im Roboter
<09>(09) IAM nur Zwischen PC und Roboter Ich bin ein ?
<0D>(13) ASK nur Zwischen PC und Roboter (Habe ich auch noch net geblickt)
<11>(17) UART vom PC nach COM1 ohne Interpreation des Inhalts (Bypass)
<15>(21) VAL Meßwert
<19>(25) Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf
<1D>(29) Interne sachen von Picknick vielleicht klärt uns irgend wann mal auf
<42>(66) PCF Expander
<53>(83) SERVO (RNSNET)
<62>(98) RNBFRA 1.2
<72>(114) RN-Control
<82>(130) AD-Wandler
<83>(131) I/O Port
<84>(132) Schrittmotor
<85>(133) Getriebemotor
<86>(134) Roboterlage(Kompass)
<FE>(254) IN/OUT PUT oder STD oder Console Fenster

Klasse(Dezimal) Bedeutung
<01>(01) RN-SERVER System Class
<42>(66) PCF Expander (Hier fehlt mir noch der Daten Aufbau)
<53>(83) SERVO (RNSNET) 600 - 2000 µS 2 Bytes also werte zwischen 0-65535 wo bei die Forderen werte wirklich gehen
<62>(98) RNBFRA 1.2
<64>(100) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<65>(101) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<66>(102) PC zu PC im Byte 7 (Position 6) Steht welcher Typ von Daten <01> KeyValue <02> Binär
<82>(130) AD-Wandler im Roboter (es kann maximal 63 stück geben) Auflösung 2Byte also 0 - 65535
Auf Grund der Adressungsmethode auf dem MC
<83>(131) I/O Port (es kann maximal 63 stück geben) Auflösung 1 Byte also 0-255
Auf Grund der Adressungsmethode auf dem MC
<84>(132) Schrittmotor (Hier fehlt mir noch der Daten Aufbau)
<85>(133) Getriebemotor (Hier fehlt mir noch der Daten Aufbau)
<86>(134) Roboterlage (Kompass) 2,4,6 Byte 2 Byte muß 6 können
Die ersten 2 Himmelesrichtung 0-3600 (wert dur 10 teilen)
Die zweiten 2 Kippwinkel rechts/Links
Kippwinkel = 0 Lage normal
Kippwinkel = 900 Roboter liegt auf der Linken seite
Kippwinkel = 1800 Roboter liegt auf auf dem Kopf
Kippwinkel = 2700 Roboter liegt auf dr Rechten Seite
Die dritten 2 Kippwinkel Vorne/Hinten
Kippwinkel = 0 Lage normal
Kippwinkel = 900 Roboter Steht auf der Nase
Kippwinkel = 1800 Roboter liegt auf auf dem Kopf
Kippwinkel = 2700 Roboter Sitze auf dem Hintern
<FE>(254) IN/OUT PUT oder STD oder Console Fenster
Ist für die Ausgabe bzw. eingaben gemacht (Display und Tastatur)
Die länge ist nicht definert für die Darstellung von Buchstaben gilt
Der DOS Zeichensatz. Hier mit können auch einfacher Taster Abgebildet werden
Denen kann man ja einfach einen Buchstaben auf der MC Seite zu weissen.


KeyValue:
Erweiterung der Defintion:
\ Ist das Escape Zeichen für Steuerzeichen in Halb der KeyValue String's

NAME=Michael\,Nenninger Der Parameter Name hat den Wert Michael,Nenninger
FRAGE=3\=3 Der Parameter Frage hat den Wert 3=3
FRAGE=3\\3 Der Parameter Frage hat den Wert 3\3


Beispiele:

Init PC <-> Roboter:
PC hält den Comport offen Roboter muß sich melden.
Nach dem Ersten Heartbeat "Scannt" der PC die Angemeldet Hardwardware

Aufpassen Alle Geräte die Am MC Dreckt sind müssen eine 1 im Letzten Bit der adresse haben.
siehe https://www.roboternetz.de/wissen/index.php/Network_Controller/PC#Pfade
Aufgrund desen würde im Unteren Beispie der IO Port am I²C hängen

Darstellung für die Adresse Auf dem MC
Die Letzen 2 Bit's sind das Wo ist das Letzte Bit 0 dann ist es Ic2

Glütige Adresse für Sachen auf an / auf dem MC selbst (63):

76543210
00000001
00100001
00101001
00100101
00101101
00111101
11111101

Gültige Adresse für I²C :

76543210
00000000
00000010
10001010
11111110

Daten was geht wirklich über V24 Richtung Bedeutung
<01><00><00><00> <A9><01><00><00><00><01><AA> Robi -PC Heartbeat
<05><00><09><00><00> <A9><05><00><09><00><00><0C><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 0
<09><00><25><00><01><82><00> <A9><09><00><25><00><01><82><00><AF><AA> Robi -PC IAM Ich bin ein ADC habe die Adresse <25> und es gibt noch mehr Geräte nächste Adresse ist die 1
<05><00><09><00><01> <A9><05><00><09><00><01><0D><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 1
<09><00><29><00><02><82><01> <A9><09><00><29><00><02><82><01><A1><AA> Robi -PC IAM Ich bin ein ADC habe die Adresse <29> und es gibt noch mehr Geräte nächste Adresse ist die 2
<05><00><09><00><02> <A9><05><00><09><00><02><0E><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 2
<09><00><30><00><03><83><00> <A9><09><00><30><00><03><83><00><B9><AA> Robi -PC IAM Ich bin ein IO Port habe die Adresse <30> und es gibt noch mehr Geräte nächste Adresse ist die 3
<05><00><09><00><03> <A9><05><00><09><00><03><0F><AA> PC - Robi Next Gib mir Mal den Typ des gerätest 3
<09><00><00><00><FF><62><00> <A9><09><00><00><00><FF><62><00><94><AA> Robi -PC IAM Ich bin ein RNBFRA 1.2 habe die Adresse <00> und es Gibt keine Weiteren geräte Mehr


Das Dokumentieren macht keine Spass drum höre ich jetzt auf mal sehen vielleicht schreibe ich jetzt noch ein bisschen mehr code.

Gruß

marvin42x
25.03.2007, 18:04
Ich habe das mal hier reingestellt.
http://www.marvins-lab.roboterbastler.de/html/adressen__rncom.HTM

Ich musste es etwas bearbeiten damit es im Netz richtig dargestellt wird.
Wenn Du Zeit hast guck mal drüber ob es so für Dich OK ist.

Die restlichen Anpassungen mache ich auch demnächst.
Will ja auch noch was Programmieren :-)

Die Zugangsdaten zur Webseite habe ich Dir gemailt.
Da kannst Du Dir die Statistik in Ruhe angucken.

Netter Gruß

NumberFive
26.03.2007, 06:16
So weit so gut. Ich glaube nur den Text müsste mal jemand überarbeiten.
Mal gucken wer mir da helfen kann. (Sprachlich stolpersteine, Rechtschreibung).

http://www.marvins-lab.roboterbastler.de/html/noch_zu_tun.html
PC Seite ich glaube nicht das es ein noch einfachers Interface geht als meines aus der DLL.

Gruß

marvin42x
26.03.2007, 07:28
Wenn Du magst kann ich die Docu auch noch etwas aufarbeiten.
Obwohl sie so schon gut ist.

Einfach:
Ja, Dein Interface ist erfreulich einfach und eine echte Bereicherung.
Wie Du richtig hinweist, genau das, was ich mir noch gerne gewünscht hätte.

Dann haben wir für jeden Geschmack etwas.
Und das Konzept von einem gemeinsamen Netz, mit den unterschiedlichsten Komponenten, wird erkennbarer.


Netter Gruß

NumberFive
26.03.2007, 07:39
So zip File Updatet.

ACTION=SetWall,X=1,Y=2 -- Wand machen
ACTION=SetFree,X=1,Y=2 -- Als Frei markieren
ACTION=SetRobo,X=1,Y=2 -- Roboter setzen
ACTION=InitMap,X=32,Y=32 -- Karte erzeugen
ACTION=FindWay,X=16,Y=10 -- Weg Finden nach

Die Neuen Befehle für den Datacenter. Viel Spaß beim Packman spielen.
Sicher sin noch nicht alle Fehler ab fängere drin und karte speicher und laden fehlt noch und auch das zurück geben des weges aber durch die Darstellung am Bildschirm sollte man er kennen können wo es hin geht.

Gruß

NumberFive
31.03.2007, 06:53
Hallo Leute,

fahre heute zum Robotest in hoffung das ich den Frust er tragen kann die andern mit Ihren machinen zu sehen. Hier ist ganz schon ruhig geworden
hat mein leztes update euro rechner zerstört ?

Gruß

marvin42x
31.03.2007, 15:58
Bin leider etwas behindert weil ich gerade mein System erneuert habe. Dabei hat alles was nicht klappen konnte auch nicht geklappt. Stoff für ein Buch. Aber solche Bücher gibt es ja schon :-)
Jetzt scheint aber erstmal das Grundsätzliche zu laufen und ab morgen bin ich wieder beim Thema.
Viel Spaß im Fahrerlager der Roboterbauer.

Netter Gruß

NumberFive
01.04.2007, 09:12
Deshalb war's du so ruhig.

Es war ein schöner Super organisierter Wettbewerb. Sehr profi organisiert.
Leider kommt man an die Roboterbauer nachmittags einfach nicht ran oder nur sehr schlecht (Stress). Und man ist halt doch "nur" besucher auch wenn ich später mal mein kiste dort stehen hatte. So lange sie nicht läuft er zählt man halt nur.

Entweder bring ich jetzt zu laufen oder brauche nicht mehr hinfahren.
Ausser natürlich zum gucken.

So wit mein resume des gestrigen tages also ein lachendes und ein weinens auge.

Gruß

marvin42x
03.04.2007, 08:48
Veranstaltung:
Ja, kann ich verstehen, wer einmal im Fahrerlager war tut sich als Zuschauer etwas schwer :-)
Ich habe nach meiner aktiven Zeit oft die technische Abnahme gemacht um mal wieder bei den wilden Jungs zu sein.

Bei mir läuft es zeitlich im Moment nicht optimal. Darum habe ich Deinen Pack mann noch nicht an.
Aber ich lass mich da nicht abdrängen.
Ich habe eine neue Demo des Wizards, wie ich mir das unter anderem vorstelle bald fertig. Da ist dann ein kleines Unternetz mit direkter Adressierung aktiv. Auch optisch gibt es eine Erweiterung.
Also nicht wundern, wenn ich etwas abwesend wirke. Ich bin hartnäckig dran :-)

Roboter:
Was verwendest Du als Controller Board auf Deinem Roboter?
Und wie sieht Dein Betriebssystem dazu aus?
Wie läuft letztendlich die Kommunikation bei Dir?

Netter Gruß

marvin42x
11.04.2007, 08:12
Hier mal ein Querverweis zu parallelen Aktivitäten:

https://www.roboternetz.de/phpBB2/viewtopic.php?p=271183#271183

Netter Gruß

NumberFive
14.04.2007, 06:19
So habe mal wieder das Zip updatet die Anfänge des Routing sieht man jetzt. und die Client DLL kann jetzt auch binäre daten verschicken.

Der Sover über wacht jetzt die verfügbarkeit der Clients (5 sec).
Wenn ein weg fliegt oder beenden wird werden die andere informiert.

Die ID 45 in der CLass 100 ist zur zeit fest vergeben.

Viel spaß damit.

marvin42x
16.04.2007, 08:33
Kann sein, dass ich noch was falsch mache. Das neue RNComNetworkLayer stürzt bei mir ab sobald sich einer verbindet.

Der Versuch an einem anderen Rechner brachte die Fehlermeldung LIBMYSQL.Dll nicht gefunden.

Ich werde das heute Abend noch mal detaillierter ausprobieren.
Also erstmal schauen was bei mir hakt.

Insgesamt ist die Sache mit den Dll’s aber immer ein besonders neuralgischer Punkt.
Da sind wir keine Ausnahme.

Netter Gruß

NumberFive
17.04.2007, 05:01
jetzt sind da so vielle Try catch blöcke drin und er sollte so viel erzählen komisch das es immer noch zu abstürzen kommt. Hätte gerne mal die logs wenn du die noch hast.

Fehlermeldung LIBMYSQL.Dll nicht gefunden ist klar da di so riesig ist habe
ich die wieder aus dem Zip genommen und ich darf die da auch einlich nicht dirn haben weil die ja zu MYsql gehört. Das werde ich dann wohl um bauen müssen.

Bei Niemand läuft alles. Der hat sein GUI jetzt sogar dran leider bin ich noch nicht zu testen gekommen.

Gruß

NumberFive
18.04.2007, 06:53
Zip updatet.

Gruß

marvin42x
18.04.2007, 10:16
Sorry wenn das etwas still von meiner Seite her ist.
Das ist nur vorübergehend.

Danke für das Update, ich schau mal.

ng

NumberFive
19.04.2007, 06:05
So habe jetzt noch mal updatet.

Die Konfig versucht sich jetzt selbst zu heilen das Problem scheint wirklich zu sein das es zu schwierig ist in einer ini die richtig IP einzu stellen.

Sorry mußte jetzt mal raus.

Gruß

NumberFive
21.04.2007, 06:30
So der DataCenter mit sein karte ist jetzt am zusammen wachsen mit Niemands GUI. die Wände (Hindernisse) werden jetzt in einer Internen Test version an die Gui weitergeben. so das dort mo man in der Karte hindernisse ein trägt in der GUI berge wachsen.

So weit das Informations update.

marvin42x
22.04.2007, 10:34
3D:
Das mit dem Zusammenkommen euerer beider Programme finde ich sehr spannend.


Absturz:
Mir scheint es so als wäre Programmtechnisch alles in Ordnung.
An dem RNServer kann ich das DataCenter kurz sehen dann kommt ein disconnect.
Und weg ist es aus der Serverliste obwohl es immer noch läuft
Für mich sieht es so aus als glaube das RNComNetworkLayer der letzte Client habe sich abgemeldet denn es setzt die Anzahl der Clients noch auf 0 bevor es sich beendet.

Also kein Absturz, sondern ein Verständigungsproblem.

Hier mal das Log:


22.04.2007 11:06:43,793 CMain ************************************************** ********
22.04.2007 11:06:43,793 CMain First Trace Entry from Version Version : 1, 0, 0, 1
22.04.2007 11:06:43,793 CMain ************************************************** ********
22.04.2007 11:06:44,324 CMain CRNNetworkConnect E:\1_1NumberFive\RN-Protokoll_22_4_2007\RNComNetworkLayer.exe
22.04.2007 11:06:44,324 CMain CRNNetworkConnect Path E:\1_1NumberFive\RN-Protokoll_22_4_2007\
22.04.2007 11:06:44,324 CMain CRNNetworkConnect Gefundene IP <192.168.178.5>
22.04.2007 11:06:44,324 CMain CRNNetworkConnect m_csOwnIPAdress <192.168.178.5>
22.04.2007 11:06:44,324 CMain CRNNetworkConnect MultiIP <224.0.0.0>
22.04.2007 11:06:44,324 CMain CRNNetworkConnect MultiPort <44000>
22.04.2007 11:06:44,324 CMain CRNNetworkConnect m_csRN_ServerIP <192.168.178.5>
22.04.2007 11:06:44,324 CMain CRNNetworkConnect Multcast Started
22.04.2007 11:06:44,324 CMain CRNNetworkConnect TCP Thread is Running
22.04.2007 11:06:44,324 CMain CRNNetworkConnect Try to Connect to 192.168.178.5:42
22.04.2007 11:06:44,340 CMain RNNetworkConnect Started
22.04.2007 11:06:44,340 CMain CRNNetworkConnect MsgWindow Created
22.04.2007 11:06:44,340 CMain CRNNetworkConnect InitStreamSokect OK
22.04.2007 11:06:44,340 CMain CRNNetworkConnect WSA Message
22.04.2007 11:06:44,340 CMain CRNNetworkConnect FD_WRITE
22.04.2007 11:06:44,340 CMain CRNNetworkConnect Daten TraceIt von RN_SERVER
22.04.2007 11:06:44,340 CMain CRNNetworkConnect Bind local TCP to 192.168.178.5:60000
22.04.2007 11:06:44,340 CMain CRNNetworkConnect Daten TraceIt von RN_SERVER
22.04.2007 11:06:44,340 CMain Database Started Try to Connect
22.04.2007 11:06:44,340 CMain Connected !!!
22.04.2007 11:06:44,340 CMain CRNNetworkConnect Bind is OK
22.04.2007 11:06:44,340 CMain CRNNetworkConnect Daten Connected von RN_SERVER
22.04.2007 11:06:44,340 CMain CRNNetworkConnect A<00>IDC=100,IDI=45,NAME=RNComNetworkLayer,MOTHERPID=No Mother,PID=5760
22.04.2007 11:06:49,324 CMain CRNNetworkConnect Letzter Client Abgemeldet Deinit Multicast
22.04.2007 11:06:54,496 CMain App ends

Netter Gruß

NumberFive
23.04.2007, 05:31
Du hast recht irgendwie denk der das der letzte client ab gemeldet worden ist und beendet sich. warum auch immer den bei Niemand läuft alles normal.

Ein known bug ist zur Zeit das wenn ein Client sich mit einer doppelten ID Class an meldet dann passiert das aber das sieht man garnicht oben im log.

Muß mal noch mehr Traceing bauen und version nummer noch setzen habe das gefühl du hast nicht die richtigen versionen.

Edit1: So jetzt mal das zip Updatet.

Gruß

marvin42x
23.04.2007, 20:50
Kein Absturz .
Es erfolgt eine Anmeldung am RnServer.
Wenige Sekunden später registriert der RnServer offensichtlich ein Disconnect uns löscht das RNComDataCenter
oder das
RNComMotorControll
oder
RNComMRobotControl
aus der Liste.
Alle 3 haben das selbe Verhalten.
Das Layer glaubt scheinbar auch das keiner mehr da ist und setzt Client auf 0 und beendet sich.


Hier mal das neue Log.

23.04.2007 21:31:11,742 CMain ************************************************** ********
23.04.2007 21:31:11,742 CMain First Trace Entry from Version Version : 1, 0, 0, 2
23.04.2007 21:31:11,742 CMain ************************************************** ********
23.04.2007 21:31:12,274 CMain CRNNetworkConnect E:\1_1NumberFive\RN-Protokoll_23_4_2007\RNComNetworkLayer.exe
23.04.2007 21:31:12,274 CMain CRNNetworkConnect Path E:\1_1NumberFive\RN-Protokoll_23_4_2007\
23.04.2007 21:31:12,274 CMain CRNNetworkConnect Gefundene IP <192.168.178.5>
23.04.2007 21:31:12,274 CMain CRNNetworkConnect m_csOwnIPAdress <192.168.178.5>
23.04.2007 21:31:12,274 CMain CRNNetworkConnect MultiIP <224.0.0.0>
23.04.2007 21:31:12,274 CMain CRNNetworkConnect MultiPort <44000>
23.04.2007 21:31:12,274 CMain CRNNetworkConnect m_csRN_ServerIP <192.168.178.5>
23.04.2007 21:31:12,274 CMain CRNNetworkConnect RNComNetworkLayer is Version 1, 0, 0, 5
23.04.2007 21:31:12,289 CMain CRNNetworkConnect Multcast Started
23.04.2007 21:31:12,289 CMain CRNNetworkConnect TCP Thread is Running
23.04.2007 21:31:12,289 CMain CRNNetworkConnect Try to Connect to 192.168.178.5:42
23.04.2007 21:31:12,289 CMain RNNetworkConnect Started
23.04.2007 21:31:12,289 CMain CRNNetworkConnect MsgWindow Created
23.04.2007 21:31:12,305 CMain Database Started Try to Connect
23.04.2007 21:31:12,430 CMain Connected !!!
23.04.2007 21:31:12,430 CMain CRNNetworkConnect InitStreamSokect OK
23.04.2007 21:31:12,430 CMain CRNNetworkConnect 10 Bytes gesendet
23.04.2007 21:31:12,430 CMain CRNNetworkConnect WSA Message
23.04.2007 21:31:12,430 CMain CRNNetworkConnect FD_WRITE
23.04.2007 21:31:12,430 CMain CRNNetworkConnect Daten TraceIt von RN_SERVER
23.04.2007 21:31:12,430 CMain CRNNetworkConnect Bind local TCP to 192.168.178.5:60000
23.04.2007 21:31:12,430 CMain CRNNetworkConnect Daten TraceIt von RN_SERVER
23.04.2007 21:31:12,430 CMain CRNNetworkConnect Bind is OK
23.04.2007 21:31:12,430 CMain CRNNetworkConnect Daten Connected von RN_SERVER
23.04.2007 21:31:12,430 CMain CRNNetworkConnect A<00>IDC=100,IDI=45,NAME=RNComNetworkLayer,MOTHERPID=No Mother,PID=5388
23.04.2007 21:31:12,430 CMain CRNNetworkConnect WSA Message
23.04.2007 21:31:12,430 CMain CRNNetworkConnect FD_READ
23.04.2007 21:31:12,430 CMain CRNNetworkConnect recvfrom 192.168.178.5 len: 10 Data <08><00>d2d<FE><02><00>d<0A>
23.04.2007 21:31:12,445 CMain CRNNetworkConnect New Data 10 <08><00>d2d<FE><02><00>d<0A>
23.04.2007 21:31:12,445 CMain Länge des TCP Telegrams 8
23.04.2007 21:31:12,445 CMain Länge OK Anlyse DATEN
23.04.2007 21:31:12,445 CMain Von 254 für 50
23.04.2007 21:31:12,445 CMain CRNNetworkConnect Sende an RN_Server
23.04.2007 21:31:17,289 CMain CRNNetworkConnect Letzter Client Abgemeldet Deinit Multicast
23.04.2007 21:31:50,320 CMain App ends

Netter Gruß

NumberFive
24.04.2007, 07:19
Ganz eherlich ich verstehe es nicht.

Habe das Zip file noch mal updatet. Hast du den RNComNetworkLayer.exe mal mit /RegServer auf gerufen ?
Die Dll noch mal regestriet ?

Gruß

marvin42x
26.04.2007, 19:58
Gute Kunde von der Userfront:
Ich hatte eine etwas ältere Lib in system32 gefunden.
/regserver habe ich sicherheitshalber auch noch mal ausgeführt.
Alles läuft wunderbar.

Das sieht ja schon ganz schön komplett aus.
Da wirst Du ja Deinen Robi mit dem neuen System bald am laufen haben.
Dann darfst Du wieder ins Fahrerlager ;-)

Netter Gruß
Aus dem sonnigen Berlin

NumberFive
27.04.2007, 04:45
Das hoffe ich sehr !

Schön das jetzt auch bei dir alles Läuft dachte schon ich bin doof.
Naja komplett ist was anders aber es gibt realtiv viel.
Aber wenn ich erhlich bin ist das vielleicht 10 % von dem was gehen können sollte.

Gruß

NumberFive
20.05.2007, 10:07
So gestern Nacht wurde mit Stupsi zusammen die Ansteuerung der RN-Power 4.2 (Noch Beta) implementiert und getestet. Die RN-Power ist ein Motorcontroller für 2x 480 Watt motoren. Seid einer woche liegen hier auch zwei E-Socter Motoren rum. Ich müsste ich nur alles mal zusammen bauen damit ich auch mal sehen kann ob es real tut.

Ein Paar macken gibt es auch noch in der Controller Software aber die werden wir wohl auch noch raus bekommen.

So weit mein update schade das von den andere gerade nix mehr kommt.

Gruß

marvin42x
20.05.2007, 13:46
2x480 Watt, damit kannst Du die Tour de France gewinnen. Die Jungs treten da auch so um die 500 Watt rum.

Ja es ist im Moment etwas ruhiger hier. Aber es handelt sich wohl eher nicht um eine Grabesstille sondern mehr um eine Denkpause.

Was ist Phase? :
Ich habe die Funktion des TreeView inzwischen einigermaßen kapiert und bin recht weit in der Einbindung des Selbigen in denWizard.
Das hat mich in meinem Anfängertum etliche graue Haare gekostet.
Aber ich finde das Ding gut und darum musste er rein :-)
Die Gesamtlösung ist nachher ganz witzig. Aber eben noch nicht ganz fertig.
Es wird eine Session geben in der sich alle Wizard Kinder unter der Leitung von Mama Wizard die Arbeit teilen. Mamma Wizard hat das Routen ein bisschen gelernt und macht das schon ganz gut für ihre Kinderchen.
Bei Vista machen Sie ja auch gerade viel Lärm um ihre Gadgets :-)
So was Ähnliches haben wir dann auch, selbstverständlich Multiprozessorfähig.

Ich hatte die Absicht, wenn es fertig ist mich zu melden aber irgendwie ist es wohl auch gut ab und an ein Lebenszeichen von sich zu geben.
Sollen ja die Programme nachher auch machen damit sie nicht aus de Liste genommen werden.

In dem Sinn lass uns einfach so weitermachen. Step by Step.

Netter Gruß
Aus dem sonnigen Berlin

Ps. Und lass es mal so richtig Rauchen. Bei einem KW Antriebsleistung sollten von 0-100 in unter 5 Sekunden drin sein ;-)

stupsi
20.05.2007, 20:10
hi marvin,
numberfive hat keine 480W-Motore drinne, er hat kleinere Motore.
nur die Motorsteuerung kann die 480W. (24V- 20A Dauerstrom)
sie ist hier beschrieben: RN-POWER-V4.2 (http://technik.team-firebird.net/RN-POWER-V4/rn-power-hardware-v4-2a.pdf)

grüsse aus kreuzberg...

Helmut

marvin42x
20.05.2007, 20:51
Da kann ich ja Entwarnung geben. Aber das Board ist schon recht beeindruckend.
Danke für den Link.

Netter Gruß
aus Buckow

Ps. Da reicht es ja wenn ich Dir eine sonnige Woche wünsche. Dann hab ich die gleich selber mit. Da zeigt sich der viel zitierte Segen der guten Tat :-)

NumberFive
21.05.2007, 06:47
Ich muß Stupsi recht geben die Motoren die Hier rum stehen habe nur 250 WatT pro Stückt. Das ist die Abgabeleistung. Brauchen tun sie 14 A bei 24 Volt. Hoffentlich bekomme ich das passende Getrieb zusammen brauche noch eine Untersetzung den 2500 U/min ist zu viel.

Gruß

marvin42x
09.06.2007, 13:53
Mal ein Lebenszeichen damit keiner glaubt hier passiert nichts.
Klar, wir reden grad nicht so viel aber es geht unbeirrt weiter.
Ich habe mal eine Demo ins Netz gestellt.
http://www.marvins-lab.roboterbastler.de/html/demo.HTM

Die Frage war: Warte ich mit der Sache bis alles ausgereift ist oder mach ich ein Lebenszeichen mit einem Einblick in den Stand der Dinge.
Also bitte ich das gezeigte nur als Lebenszeichen und Konzeptstudie zu sehen.
Der stabile Zustand liegt aber auch nicht mehr so weit weg.

Das Ziel eine leicht konfigurierbare GUI zu bekommen wird sicherlich demnächst erreicht werden.
Ob das ganze noch unkompliziert Anfängertauglich programmiert ist sei mal dahingestellt.
Kann sein, dass ich mich irgendwann noch mal an eine Simpellösung unter Verwendung der Programmbeispiele von PicNick mache. Na wie auch immer, man wird sehen.

Der Wizard verwendet jetzt ausgiebig die Fähigkeiten der Dll von PicNick inclusive TreeView, eine Sache vor der ich mich etwas gegrault habe weil sie doch etwas Komplexer ist.
Die Server Fähigkeit der Dll wird ebenfalls benutzt um die gestarteten Einzelkomponenten zu betreuen.
Der Wizard macht für seine Childs jetzt ein Unternetz auf (Port 10042) in dem er selber routet.
Das ist ein bisschen aus der Not entstanden da der RnServer nicht routet, was bei vielen Komponenten auf einem Rechner die CPU-Last in die Höhe treibt weil sich alle angesprochen fühlen und Nachrichten nachgucken die nicht für sie sind.
Auch Die Config Fähigkeiten der Dll werden jetzt exzessiv genutzt um das Session Konzept zu realisieren. Das wird ganz witzig. Ist aber noch instabil da ich in der Pfadlänge noch auf 64 Zeichen begrenzt bin und etwas rum tricksen muss.

Mit Optimistischem Gruss

dremler
25.07.2007, 16:14
ich hab mir den thread jetzt net durchgelesen....aber ich hab ne frage zum 1. post.....auf den bild sieht man das du 13 COM schnittstellen zur verfügung hast?!?!?!? was ist denn das für ein PC? ur interessehalber....

danke

marvin42x
25.07.2007, 16:29
Das sieht schlimmer aus als es ist.
Der PC hatte nur zwei echte, dazu einen USB zu Seriell Adapter, besagten Com13 der Rest ist von einer Bluetooth Anwendung und einer Fritz ISDN-Box die für diverse Dienste virtuelle Com Ports installiert haben. Da ich die nicht ohne weiteres löschen konnte habe ich halt damit leben müssen.

Netter Gruß

dremler
25.07.2007, 16:41
achso...ich dachte schon das wäre ja ein ultimativer steuer pc^^

marvin42x
28.07.2007, 14:59
Totgesagte leben länger habe ich mal gelesen.
Hoffen wir, dass das stimmt.
Leider hält mich das Universum manchmal davon ab die Sache zu machen die mir Spaß machen.
Jetzt habe ich aber wieder etwas mehr die Möglichkeit das RnCom zu beleben.

Aufhänger ist Der Wunsch in der Gemeinde das Microsoft Robotic Studio an RN Hardware anzubinden:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=20855&postdays=0&postorder=asc&start=0

Unser Projekt könnte an dieser Stelle einiges Beitragen ohne dass wir was extra machen müssten.
Wir haben einiges an Komponenten und einiges an Erfahrungen was geht und was nicht geht.
Und es wäre schade wenn sich die beiden Projekte inkompatibel aneinander vorbei entwickeln würden.

Ich würde alle Beteiligten mal zum Meinung sagen einladen wollen. Ohne dass jemand dem anderen gleich Arbeit aufhalst die im Moment nicht zu machen ist.
Allein die eine oder andere kund getane Meinung hat ja schon oft eine Menge bewirkt.

Netter Gruß

marvin42x
13.09.2008, 18:02
Inzwischen hat sich auch hier etwas bewegt.
Ich habe jetzt aus der Notwendigkeit heraus mich auf das Gebiet des Controller Programms gewagt.
Aus den drei Beispielprogrammen von Picnick bas1.bas, sys.bas und rnmaster.bas, die ja jeweils bestimmte Themenbereiche beispielhaft umfassen, habe ich angefangen ein Komplettsystem zu schreiben.
Es heißt erstmal sysmaster.bas, in Anlehnung an die „Eltern“
Klar, ich bin nicht gut im programmieren aber die Komponenten die ich zur Verfügung habe sind gut. Und es lohnt sich einfach das mal ans laufen zu bringen. Zumal ich irgendwann mal meinen Rasen automatisch gemäht haben will :-)

Zum Testen der ganzen Sache habe ich einige einfache PC-Beispielprogramme in VB2005 geschrieben. In diesen wird die Benutzung der dll und einiges andere anschaulich.
Das ganze ist wesentlich einfacher als der RnWizard gehalten um es auch als weiterverwendbare Komponente zu benutzen.
Weitere Komponenten sind in Arbeit und folgen demnächst.

Für das Programmieren von Bascom Programmen mit über 2000 Zeilen habe ich mir eine alternativen Editor zurechtgemacht. Der ist extra auf die Programmkomponenten von Picnick abgestimmt und lässt die Herkunft der Funktionen sehr leicht farblich erkennen.

Das alles ist nicht fertig und fehlerbehaftet.
Aber die Alternative erst was zu berichten wenn alles perfekt ist schien mir dann auch nicht so toll.
Es ist halt ein fortschreitendes Projekt.


Das ganze kann man sich bei Interesse dort genauer ansehen:
http://www.marvins-lab.roboterbastler.de/html/new_demos_.html


Netter Gruß

NumberFive
14.09.2008, 07:04
Schön das du Zeit geffunden hast was neues zu machen.
Ich hoffe ich habe bald zeit mir das mal genauer anzu sehen.

Aber ich will zugeben wenn ich zur Zeit für Roboterei habe ist
mir meiner Lieber. Habe ich letzer Zeit ein bisschen an TCP
Übertragung gebastelen und An Fifo speichern (Software Technisch)
Ich denke das ich jetzt endlich die Performens habe die ich brauche.

Zur zeit ich aber alles nur Probier Software. Achso mit GPS-Mouse habe
ich mich auch beschäftigt und muss sagen das ist ein Heisses Thema
wenn man gescheite Postionen bei stand ohen sehr Langsam geschwindigkeiten haben möchte.

Gruß

marvin42x
14.09.2008, 16:29
Freut mich von Dir zu hören und das Du noch am Entwickeln bist
Das mit dem angucken muss man nicht übereilen.
Mir ging es erstmal nur darum den Riemen wieder auf die Orgel zu werfen.
Das interessiert mich natürlich was Du gerade machst. Kannst Du dazu näheres erzählen?
An Inspiration bin ich immer interessiert und insgesamt wollen wir ja alle irgendwas machen was funktioniert.

Was jetzt bei mir mit dem symaster.bas schon mal läuft ist ein Betriebssystem das in alle Richtungen ausbaufähig ist. Mit der Unit Methode kann man jede beliebige Hardware quasi wie einen Treiber ins System hängen.
Sämtliche Adressen sind in einem einzigen Text als Include und nicht über das Programm zerstreut. Sozusagen als zentrale Adressverwaltung. Wenn sich Adressen ändern, ändert man das nur dort.
Na und alle die anderen Goodys die Picnick da halt eingebaut hat.

Ich glaube ich sollte dazu mal so eine kleine Gesamtübersicht machen, obwohl das alles ja sehr gut von Ihm kommentiert ist.
Manchmal fehlt er mir schon wenn es um Frage der Programmarchitektur geht.
So mache ich das halt so gut wie ich es verstehe.

Auf jeden Fall laufen schon mal:
die ADCs
Die Getriebemotoren
Die IO Ports
Der Servo-Co-Controller im coolen 400KHz I2C-Multimaster
Das RN-Lcd-Key als Ausgabe Einheit
Na und natürlich die Rn Kommunikation über alles also I2C, RS232, TCP/IP
Alles meldet sich brav am Server an, also so ein bisschen Plug and Play Netzwerk.
Und das alles schon ein bisschen Multithread :-) freu freu

Demnächst kommt noch:
Schrittmotoren
der Kompass
Externe Motorendstufen
Na und sonst so allerhand I2C Aspiranten
Und eine Unit mir Verhalten, also das interne Hirn sozusagen.
Im ersten Durchlauf soll das aber noch der PC mitmachen.

Ich freu mich richtig, dass es insgesamt weitergeht.

Netter Gruß

NumberFive
30.11.2008, 07:44
Naja der letzte eintrag ist mal wieder ne weile her.
Wie weit bis du jetzt ?
Ich bin Programm technisch nicht weiter gekommen versuche zur zeit viel zu organisieren so das von dem Bisschen zeit was ich für den bot habe nicht viel zu programmieren bleibt. Habe immer noch das leidige Thema Motorkontroller und getriebe an der backe erst wenn das sauber läuft kann wirklich weiter machen.

Gruß

marvin42x
01.12.2008, 11:49
Ich hatte in letzter Zeit auch wenig Gelegenheit weiterzumachen.
Im Moment bin ich ja am Betriebssystem für das RNBFRA was sich aber auch leicht auf andere Boards transferieren lässt.
Ich habe jetzt die direkte Durchleitung der Messages auf den Servo-Cokontroller doch geändert und lasse die Servos jetzt wahlweise im Hauptprogramm verwalten.
Wenn der später etwas autonomes Verhalten beigebracht bekommt soll er auch ruhig alles unter Kontrolle haben, besonders die jeweiligen Ist-Zustände.
Das Durchrouten geht deswegen aber trotzdem, inklusive des Multimaster Betriebs.
Hier macht sich die Modulare Struktur der Sache angenehm bemerkbar.
Also alles so Schleifarbeiten am System. auch die I2C-Interruptfähigkeit habe ich inzwischen implementiert. Das muss ich aber noch im Downloadpacket aktualisieren.


Netter Gruß
und viel Erfolg an der Watt Leistungsfront :-)

Vogon
01.12.2008, 22:40
Hi,
mit dem Projekt gehts doch noch weiter.

Meine Idee war Teile der Haus- und Garten-Elektronik damit zu vernetzen. Denke da an Heizung, Rasenmäher, Rolladensteuerung usw. Praktischer weise sollt es dazu auch im Wohnbereich Displays mit Tastatur geben. Zum Server möchte ich die FritzBox befördern. Die macht sowieso 24 Std Dienst und sollte den Nebenjob noch verkraften.

Habe leider keine Quellen zum Server gefunden. Auch keine Doc wie er arbeiten soll, oder habe ich da Tomaten auf den Augen ? Auf der Fritzbox werkelt ein Linux, liebt deshalb C, VB ist bei der nicht so angesagt.

Wo finde ich, oder wer hat was für mich ? :Weihnacht

marvin42x
01.12.2008, 23:41
Das freut ja, die Vogonen haben alles im Blick. Erstmal ein freundliche Winkerchen an Prostetnic. Aber wie das letzte Mal mit der Erde wahrscheinlich wieder den falschen Planeten erwischt. Der richtige dafür ist vermutlich der:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=43234&postdays=0&postorder=asc&start=22
Die dazugehörigen Baunterlagen liegen hier zur Einsicht aus:
http://www.opencontrol.net/

Andererseits bist Du hier aber auch richtig.
Dazu muss ich aber ein paar, eigentlich zurückgehaltener Interna ausplaudern. Wir schaffen gerade IO-Boards von Pollin an(Mega32 drauf, netzwerkfähig) um in unserer Haustechnik einzelne verteilte technische Einrichtungen überwachen zu können. Dort wollen wir auch das RnCom einsetzen um die Kommunikation abzuwickeln da wir alle Komponenten über das Hausinterne LAN TCP/IP miteinander verbinden können.
Also es wird in Bälde auch eine Ausformung in Richtung Hauskontrolle geben.
Bei dir liegt der Fall sehr ähnlich.
Du musst m.E. aber an der Fritzbox nichts machen, die routet brav, so wie es ihr befohlen ist und stellt sogar W-LAN zur Verfügung, mehr muss sie nicht.
Wenn das Haus eine gewisse Intelligenz benötigt, ja ich weis, viele Häuser besitzen die bereits in Form einer weiblichen Steuerinstanz, also, naja, jedenfalls würde man dann einen kleinen Rechner vorziehen.
Eventuell so ein neues ITX-Board mit Atom Prozessor… minimaler Stromverbrauch, Grafik on Board, na usw.
Interessant wird es wenn wir die erste Hardware am laufen haben dann stelle ich das hier, oder in einem extra Thread zur Verfügung.
Demnächst mehr.

Netter Gruß

NumberFive
03.12.2008, 06:23
Hallo ihr zwei,

ich glaube ihr habt an einander vorbei geschätzt. Der RN-Server routet nur die Nachrichten und bezitzt auch nur die interligenz dazu.
Die Fritzbox hat aber meines Wissens keine Seriale Schnittstelle oder doch ? Steuert interlegenz liegt alles in den Applikationen da hinter.
Ergo entwder an die Fritzbox ne RS232 darn bassteln und den AVR dran hängen oder man muss vorher schon aufs netz also irgen was wie das ding von Pollin. Bei ding von pollin muss man sich nur im Klaren sein das man dort die Komplette Firmware neu schreiben muss wenn man das Teil benutzen will. Die Vorhande Firma kommt nur mit set eingang und geteingang also ganz Profan. Auch das http://www.opencontrol.net/ bassiert der Server auf windows ergo viel arbeit bei Protieren.

@Vogon ich habe mal den Server mit MS VC6 selbst geschrieben wenn du magst kannst du meine Source angucken.

Gruß

marvin42x
03.12.2008, 09:06
@NumberFive
Mit dem Pollin IO-Board hast Du recht, das ist noch unflexibel. das kannst Du im Moment nur über sein eigenes Protokoll ansprechen, na immerhin.
Aber ich habe schon das Grundgerüst einer Software in Bascom gesehen. Da wird schon dran gearbeitet.
Wenn alles gut läuft übernehmen wir demnächst die Herrschaft über das Pollin IO :-)
es gibt auch hier im Forum schon eine Angriffswelle dazu:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=43095&highlight=avrnetio
und hier noch weitere Aktivitäten:
http://www.mikrocontroller.net/topic/109988#988386
http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin
Zur Fritzbox kann ich sagen, dass die gehobeneren Modelle mit zusätzlichen Netzbuchsen ausgestattet sind.
Sie sind in der Lage das W-LAN und das LAN zu verbinden und innerhalb dieses Netzes zu routen. zusätzlich können sie natürlich DSL zum Internet und als W-LAN-Repeater kann man sie auch verwenden..
Die IP Dll von Picnick kann übrigens auch zum routen genommen werden, Ich habe den Wizard damit ausgestattet.
Der empfängt TCP/IP und routet das an seine ihm bekannten Clients weiter.
Ist in VB2005 geschrieben, also nicht sehr geheimnisvoll.
Das hatte ich gemacht damit nicht jeder alles empfängt und dabei Rechenleistung verbrät.

Netter Gruß

Vogon
03.12.2008, 15:50
Hallo,
komme gerade vom Scheeschippen .... nun kann ich in ruhe meine Mails lesen.

Die Geschichte mit Opencontrol und dem Pollin-IO ist auch eine Option. Die werde ich in meine Überlegungen einbeziehen.

Der Fritzbox den Job zu geben sollte einige Vorteile haben. Sie ist die Spinne im Netz(werk) und mit ihrer Hauptaufgabe bei weitem nicht ausgelastet. Wie man hier sieht - http://www.wehavemorefun.de/fritzbox/Serielle_Konsole - an der Seriellen fehlt es ja auch nicht.

@NumberFive
Wenn ich mir deine Sourcen mal angucken darf, habe ich die halbe Arbeit schon im Sack. Von VC6 zu GCC sollte es ja keine unüberwindlichen Hindernisse geben. Mein Hauptarbeit sehe ich dann eher in der Anpassung an Linux.

marvin42x
05.12.2008, 07:11
Die Fritzbox ist ja ein absolut interessantes Teil.
Wusste gar nicht was für einen Tausendsassa ich da am laufen habe.
Das ist klar, dass die übernommen werden muss.
Da Haustechnik in der Regel auch nicht so hektisch abläuft könnte man da auch Schaltintelligenz hinterlegen und würde sich den Dauerbetrieb eines Rechners ersparen.

Die neuesten Nachrichten sprechen übrigens davon, dass die alternative Bascom-Firmware für das Pollin IO-Board DHCP können wird.
Das Board könnte sich also automatisch an so einer Fritzbox anmelden, da die ja ein DHCP-Server laufen hat.
Auch andere Boards (RNBFRA oder so), die über RS232 und PC, und dem darauf laufenden RnServer am TCP/IP Datenverkehr teilnehmen könnten über die Fritzbox geroutet werden oder auch direkt von Ihr Befehle bekommen oder Messwerte annehmen.
Wenn das dann noch über ein einheitliches Protokoll abgewickelt würde, öhemm…. wir hätten da zufällig eins auf Lager (RnCom)…….
Na ja, auf jeden Fall hört sich das sehr vielversprechend an.

Netter Gruß

NumberFive
06.12.2008, 06:55
@marvin42x
Du musst noch viel über Netze lernen. DHCP braucht man nicht damit
es funktioniert. ich finde es eher Falsch in nur was für faule.

@all
Habe jetzt auch ein Fritzbox. Eingendlich habe ich dir mir für was ganz anderes besorgt den ich arbeite zur Zeit an einem GSM Gateway für TCP sprich GPRS und UMTS. Da bei sich wie analoge Modems verhalte kann die ersten Test mit meine modems machen um die Test kosten etwas niedriger zu gestalten. Dafür die Fritzbox. Mein Netz ist auch nicht mehr so einfach wie bei andere zu hause. Feste IP Internet stand leitung und so.

@Vogon
das mit dem Schnee schippen war hart diese woche oder ? habe mein Trecker das ein oder andere mal fest gefahren. Wir hatten hier ca. 20 cm Neu Schnee.

www.i-do-more.de/mine-robo/download/RN-Protokoll.zip
da ist alles was ich zu diesem Projekt mal gemacht habe.
http://www.marvins-lab.roboterbastler.de/html/numberfive.html
da ist ein bisschen doku da zu.
den Source vom Server schicke ich dir oder packe ihn auch auf den Webspace leider habe ich die zugangs daten jetzt nicht. (Neuer rechner)
Was ist dir lieber E-Mail oder runter laden ?

Gruß

marvin42x
06.12.2008, 10:08
Es stimmt, dass ich noch viel über das Netz lernen muss.
Aber hier im praktischen Fall sollen die kleinen IOs bei mir in einem sehr großen LAN mit Admins und strengen Regeln brav ihren Dienst tun.
Das bedeutet sie MÜSSEN sich per DHCP eine IP holen und zwitschern dann auf einem genehmigten Port miteinander.
Wenn ich hier mit einer festen IP komme gibt es Ärger.
Feste IPs kannst Du nur da machen wo Du auch vollständig Herr über das Netz bist. In Netzen mit wechselnden Mitgliedern ob nun W-LAN oder Kabel kommst Du um DHCP nicht rum.
Es ist halt manchmal nicht nur Faulheit
Es ist meines Erachtens eine flexible Netzvariante durch Selbstorganisation.
Meine Situation ist der Grund warum ich mich so darüber freue das DHCP geht und ich vermute auch, dass es andere gibt die auch vor so einem Problem stehen könnten.
Ansonsten ist klar, feste IP und Ruhe ist :-)

@NumberFive:
Wenn Du brauchst:
Die Zugangsdaten zum Webspace von RnCom kann ich Dir zuschicken, würde ich per Mail machen.
Ich kann auch ein Verzeichnis für Dich einrichten, oder Du Dir selber, wo Du eigen Sachen reintuen kannst, auch Webseiten die ich dann einbinde. Ich bin leider durch den Webseitengenerator etwas gebunden sonst könntest Du auch die Seiten die ich gemacht habe verändern. Aber da würde der Generator wahrscheinlich nicht mit klarkommen.

Netter Gruß

NumberFive
07.12.2008, 06:46
@marvin42x
Das Hause verliert nix. Machmal finde ich es nur nicht gleich.
Habe mal meine Seite bei dir Updatet. *g*
Jetzt kann man dort den Source runter laden.

@all
Zum Source: Die COM implentierung ist mit ATL gemacht und die Dialoge mit der WTL so ganz die Umsetzung mit GCC nicht ganz so einfach sein dürfte.
Aber vielleicht hilft der source bei verstehen wo die Reise mal hingen soll.

Ich finde die Idee nach wie vor gut auch wenn mir nach wie vor noch ein paar defitionen zu weich sind und auch Andere sachen mir zuviel leitung fressen.

Ich würdee mich freuen wenn's weiter geht und bin mal gespann ob jetzt hier wieder leben gibt vielleich schaffen wir es ja zum Längsten Thread im Forum *g* dann können wir ein buch draus machen.
Wie schon angedeute entwickle ich zur Zeit nich an dieser Basis son beschäftig mich mich andern Sachen was aber ja nicht heist das es mich nicht interressiert. Sonder ich denke ich habe hier was mit dem man spielen kann und wenn weiter geht bin ja da mit lesen tue ich auf jeden fall. Jetzt sind aber erst mal andere Dran.

marvin42x
30.01.2009, 13:05
Kleine Auflockerung am Rande, damit keiner denkt hier passiert nichts.

Das Pollin IO Board läuft bereits unter Bascom in einem sehr großen LAN mit DHCP.
Es meldet sich beim DHCP Server, holt sich eine Adresse und ist damit online.

Es kann über die IP oder seinen Namen angesprochen werden.
Als Dialog kann es schon das RnCom Protokoll (freu freu).
Mit dem Protokoll kann man bereits die ADC abfragen.
Es folgen jetzt noch die IO-Pins und was man sonst noch so braucht.
Eigentlich kann es schon viel mehr, aber ich glaube ich soll das noch nicht sagen :-)

Dazu gibt es auch eine VB2005 Anwendung, Open Source, mit der man das bewerkstelligt.
Das ganze mit dem RnCom Protokoll.
Die Anwendung kann man dann als Grundlage eigener Anwendungen benutzen.

Es ist noch einiges zu tun aber wir sind dran.
Wenn es soweit ist gibt es auch was zum runterladen.

Netter Gruß

Ps. Diese Wochenende sind die Seiten Von Roboterbastler, wo auch RnCom gehostet ist wegen Umbauarbeiten nicht erreichbar.

NumberFive
01.02.2009, 05:58
Wer hat bitte ein Ganze Netz auf dem Bot. Ich bin ja schon verrückt aber ein ganzen Lan auf den Bot zu bauen auf die Idee bin auch nicht gekommen.

Gruß

marvin42x
01.02.2009, 13:15
:mrgreen:
Nein, das habe ich dann missverständlich geschrieben :-)
Kein Netz auf einem Bot.
Nur ein großes Firmennetz mit vielen Rechnern in dem eine kleine Pollin-IO-Platine schüchtern ihren Dienst tut.

Wenn sie mal groß ist darf sie auch an einer Haustechnische Anlage was schalten und Störmeldungen versenden.
Im Moment darf sie das noch nicht, da macht sie das symbolisch.

Netter Gruß

NumberFive
02.02.2009, 05:30
Aber werden jetzt dann nicht sachen in das Protokoll gemixt die ein bisschen sehr weit weg sind für das was es mal gedacht war ?

marvin42x
02.02.2009, 12:47
Mit dem sehr weit weg könnte man meinen.
Aber:

Der TCP/IP Dialog ist reines RnCom.
Also
Ein Anmeldestring am Server (in unserem Fall macht das IO-Board den Server) damit der (z.B. VB2005)Client akzeptiert wird

Ein Messageaufbau wie in RnCom definiert, mit länge, Target Class, Target ID, Source Class, Source ID, Command Byte, Daten. Eben das was wir vereinbart haben.
Der Inhalt der Kommunikation ist ganz normales Zeug wie: Lese ADC-Wandler, lese Pin oder Port, setze Pin oder Port.
Was nun an den Ports dran hängt ist dem RnCom ja ein bisschen egal.

Was hier im Moment rausfällt ist der RnServer, da wir ja keine serielle Verbindung handhaben müssen.

Also eine nach dem Reinheitsgebot gebraute Verbindung :-)

Eine Sofware auf der Fritzbox könnte jetzt z.B. direkt mit dem IO kommunizieren wenn sie sich an das RnCom-Protokoll hält.

Netter Gruß

Am Rande:
Alle Adressen sind inzwischen als Konstanten definiert und in einer Textdatei. Man braucht nur die aktuelle Adressdatei einbinden und alle Adressen, ob in Bascom oder VB sind aktuell richtig.
Man braucht keine Adressen mehr im Programm ändern wenn irgendwas umdefiniert wird.
Am Rande Ende