DAU braucht hilfe.

...für und mit Amiga OS4

Moderator: OS4Welt-Team

Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

DAU braucht hilfe.

Beitrag von Berny »

Ich hab seit kurzen ein Photovoltaik-Anlage auf dem Dach.
Der Wechselrichter hängt bei mir im Netzwerk sodas ich
über ein PC-Programm alle Daten erfassen kann.
Da man auch über einen Browser die Daten angezeigt bekommt,
hab ich mir gedacht das währe was um mal wieder auf dem Amiga
was zu machen.

So Daten kann ich auslesen, nur ich hab Probleme mit der Verarbeitung.

Folgendes hab ich gefunden um die Daten auszulesen : (nur ein Ausschnitt)


sprintf( buffer, "GET %s HTTP/1.0\r\n\r\n", Seite); //Wandle Zahl in String
send( sock, buffer, strlen( buffer), 0);

// Antwort hohlen
do {
count = recv( sock, buffer, sizeof(buffer), 0);
write( 1, buffer, count); // Auf Konsole ausgeben
strncat(WR_Daten, &buffer, count); // In Char-Variable anhängen
}
while (count > 0);

// Verbindung schließen
closesocket( sock);


Das Problem ist folgendes:
Ich bekomme den ersten Datenblock den mir der Server schickt nicht kopier,
oder nur Teilweise?!

Das sieht dann so aus:

Von write() ausgegeben:

6.AmigaOS:> Proggen:CodeBench/Projekte/AmigaPV/Hohle_Daten/hohle_daten
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 13304

Datei 2: Parameter
P 97 Datum = 12.11.2012
P 98 Zeit = 14:36:00
P149 Firmwarerelease = 2.62
P148 Seriennummer = 23012

P 1 Netzspannung = 228V
P 2 Gleichspannung = 378V
P 3 Netzstrom = 7.62A
P 4 Strom DC = 4.76A
P 5 Leistung AC = 1707W
P 6 Leistung DC = 1799W
P 7 Wirkungsgrad = 97.3
P 8 Energie Tag = 10.889kWh
P 9 Energie Woche = 10kWh
P 10 Energie Monat = 68kWh

und so liegt es in WR_Daten:
WR_Daten ------------->=
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 13304

Datei 2: Parameter
6 Leistung DC = 1799W
P 7 Wirkungsgrad = 97.3
P 8 Energie Tag = 10.889kWh
P 9 Energie Woche = 10kWh
P 10 Energie Monat = 68kWh


Was mach ich Unwissender falsch?
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Aramon
Beiträge: 512
Registriert: 7. Dezember 2009 00:19
Wohnort: Uelzen
Kontaktdaten:

Re: DAU braucht hilfe.

Beitrag von Aramon »

Hi Berny,

wo werden die Daten denn genau gespeichert? Musst du das Programm auf deinem Amiga installieren?
Wenn es eine reine Browser-App ist, solltest du das Programm eigentlich ohne Probleme auf deinem Amiga abrufbar sein. Dazu musst du nur die IP zu dem Programm eingeben. Gibt es eventuell Handbuch zu der Anlage? Oder hast du im Internet schon einmal geschaut?
Teste dein Wissen, auch auf dem Amiga: www.länder-quiz.de
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Das mit dem Browser auf dem Amiga über die IP des Wechselrichters funktioniert, siehe Bild.

Ich möchte aber ein Amiga-Programm machen.
In diesem Programm möchte ich die aktuellen Daten
und die Langzeitdaten anzeigen bzw. erfassen und bearbeiten.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Aussehen soll das mal so ähnlich!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Thomas
Beiträge: 123
Registriert: 2. Oktober 2009 16:27

Re: DAU braucht hilfe.

Beitrag von Thomas »

Berny hat geschrieben:Was mach ich Unwissender falsch?
Vermutlich hat der Server irgendwo ein 0-Byte in seinem Datenstrom. Beim Schreiben auf die Konsole fällt das nicht auf, sie ignoriert das einfach. Aber die String-Funktionen von C interpretieren die 0 als Ende vom String und schneiden alles andere ab.

Das könnte helfen:

Code: Alles auswählen

for (i = 0; i < count; i++)
   if (buffer[i] == 0)
      buffer[i] = ' ';
vor dem strncat.

Statt ' ' kannst du auch '-' oder sowas nehmen, dann siehst du, wo das 0-Byte war.
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Danke Thomas, genau das war der Fehler!

Du bist einfach der Beste! :anbet:
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Kleine aktuallisierung.

Daten hohlen und aufs Fenster ausgeben funktioniert soweit.

Hab noch das Problem das wenn ich die Daten ein zweitesmal hohle der Rechner einfriert. :klatsch:

Und was mir noch fehlt ist wie man Piktogramm-Merkmale ans Programm übergibt?!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Thomas
Beiträge: 123
Registriert: 2. Oktober 2009 16:27

Re: DAU braucht hilfe.

Beitrag von Thomas »

Berny hat geschrieben:Und was mir noch fehlt ist wie man Piktogramm-Merkmale ans Programm übergibt?!
Wenn das Programm von der Workbench aufgerufen wird, dann ist argc==0 und argv ein Pointer auf eine struct WBStartup. In der struct WBStartup stehen das Verzeichnis und der Name deines Programms sowie weiterer mit Shift-Click angewählter Icons. Mit diesen Informationen kannst du mit GetDiskObject oder GetIconTags das Icon öffnen und mit FindToolType oder ähnlichen Funktionen die Tooltypes auslesen. FreeDiskObject nicht vergessen!
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Danke Thomas, wird mir im Moment aber ein wenig zu viel.
Muß mich mal ein wenig in diese Materie einarbeiten.

Aber hier mal ein aktuelles Bild. Funktioniert soweit alles auf der ersten Seite. :mrgreen:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Benutzeravatar
Berny
Beiträge: 2265
Registriert: 26. September 2009 10:05
Wohnort: Jülich

Re: DAU braucht hilfe.

Beitrag von Berny »

Hab jetzt noch ein weiteres Fehlverhalten, siehe Bild.
Wenn ich das Programm starte fehlen Gadgets.
Wenn ich vorherCodebench starte erscheint das Programm "NORMAL"?!!?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
X5000--> mit OS4.1 FE pre release, 4GB RAM und 250X
Antworten