http://satellite-board.de

Aktuelle Zeit: So 12. Mai 2024, 21:54

Alle Zeiten sind UTC




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Wie kann ich FV3 HNF-Files mit VB6 ...
BeitragVerfasst: Mo 31. Jul 2000, 11:14 
Offline
registered

Registriert: So 30. Jul 2000, 22:00
Beiträge: 6
Wie kann ich FormulaV3 HNF-Files mit VisualBasic6 lesen/schreiben? Ich möchte mir einen eigenen Settingseditor für den IRCI-5400 programmieren, habe aber keine Ahnung, wie mit den HNF-Files umgehen muß.

Ich habe es mit den APIs probiert, mein Programm stürzt jedoch nach Funktionen mit Parameterübergabe gnadenlos ab. Einzig die OAKABOUT-Funktion wird ordnungsgemäß ausgeführt.

Hier mein Quellcode:

'
' OAK-API 0.90
'
Declare Function OAKAbout Lib "FV3DLL.DLL" () As Long
Declare Function HnfToHDF Lib "FV3DLL.DLL" (infilename As String, outfilename As String, ByVal systemtype As String) As Long
Declare Function RawToHnf Lib "FV3DLL.DLL" (infilename As String, outfilename As String, ByVal systemtype As String) As Long
'
' OAK-API 0.93
'
Declare Function UploadData Lib "FV3DLL.DLL" (ByVal port As String, ByVal baudrate As String, filename As String) As String
Declare Function UploadSystmID Lib "FV3DLL.DLL" (ByVal port As String, ByVal baudrate As String, filename As String) As String
Declare Function DownloadData Lib "FV3DLL.DLL" (ByVal port As String, ByVal baudrate As String, filename As String) As String
'
' OAK-API 0.94
'
Declare Function HnfToV3Hnf Lib "FV3DLL.DLL" (infilename As String, outfilename As String) As Long
Declare Function V3HnfToHnf Lib "FV3DLL.DLL" (infilename As String, outfilename As String) As Long
Declare Function GetIRDModel Lib "FV3DLL.DLL" (ByVal port As String, ByVal baudrate As String) As String

Sub oaktest()

Dim FunctionResult As Long
Dim InFile As String, OutFile As String, systemtype As String
'
' OAK-About (funktioniert!)
'
FunctionResult = OAKAbout()
'
' Settings-File verarbeiten:
'
InFile = "c:\Test\Sat_Fan2907.hnf"
OutFile = "c:\Test\Test.hnf"
FunctionResult = V3HnfToHnf(InFile, OutFile)
InFile = "c:\Test\Test.hnf"
OutFile = "c:\Test\Test.hdf"
systemtype = "5"
FunctionResult = HnfToHDF(InFile, OutFile, systemtype)

End Sub


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr 28. Sep 2001, 06:40 
Offline
Junior Member
Benutzeravatar

Registriert: Do 6. Sep 2001, 22:00
Beiträge: 47
hallo,

ist zwar schon lange aus, daß dieser beitrag erstellt wurde nur stehe ich vor dem selbigen problem.

_________________
mfg satmedia

Satmedia


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr 28. Sep 2001, 13:17 
Offline
Moderator
Benutzeravatar

Registriert: Di 10. Okt 2000, 22:00
Beiträge: 2831
Ich hatte mal eine kleine Shell geschrieben gehabt zum packen/entpacken der HNFs: FV3DLL Shell

Wenn ich nächste Woche dran denke (und zwischenzeitlich an meine Sourcen rankomme :D ) kann ich dir einige Deklarationen geben.

Als Tip vorneweg: in den Functions in denen du die DLL aufrufst oben direkt "ON ERROR RESUME NEXT" einfügen, dann läuft die ganze API Ansteuerung etwas stabiler.
Außerdem immer nur mit der fertig compilierten EXE testen. Wenn innerhalb der IDE während der Laufzeit die DLL angesteuert wird schmierts meistens ab.

Ansonsten sind noch einige Feinheiten wie Pausen etc. einzubauen, da die Humax API ziemlich lausig programmiert wurde und äußerst instabil läuft.

Die API Beschreibungen sind auch für den Arsch, da sie oftmals absolut falsch oder überholt sind. Bild
Zum Teil gabs Änderungen bei bereits vorhandenen API Aufrufen nach Version 0.93 der API.

Wie die Humax Jungs überhaupt ne lauffähige Receiverfirmware hingekriegt haben ist mir nach der Arbeit mit der API ein absolutes Rätsel... Bild

_________________
Lostech

Visit my Homepage


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo 1. Okt 2001, 08:28 
Offline
Moderator
Benutzeravatar

Registriert: Di 10. Okt 2000, 22:00
Beiträge: 2831
Code:
Declare Sub V3HnfToHnf Lib "FV3Dll.dll" (ByVal infilename As String, ByVal outfilename As String)
Declare Sub HnfToV3Hnf Lib "FV3Dll.dll" (ByVal InputFile As String, ByVal OutputFile As String)
Declare Sub OAKAbout Lib "FV3Dll.dll" ()


V3HnfToHnf wandelt die normalen HNF Settings zu ASCII Dateien um, der umgekehrte Weg mit HnfToV3Hnf.
OAKAbout ruft die Versionsinfo der FV3DLL.DLL auf.

Hatte auch noch weitere API Deklarationen für VB, die sind aber auf einem anderem Rechner.

P.S.: Man sollte die DLL Funktionsaufrufe als SUB und nicht als Function deklarieren, da die API keine Rückgabewerte liefert.

[ 01. Oktober 2001: Beitrag editiert von: Lostech ]

_________________
Lostech

Visit my Homepage


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo 1. Okt 2001, 11:10 
Offline
Newbie

Registriert: Do 1. Jun 2000, 22:00
Beiträge: 11
Hallo Lostech,

hast du die Funktion HnfToHDF() schon mal "getestet"? Weder in der DLL-Version 0.94 noch v0.97 komme ich damit zurande. Mit V3HNFs gibt's eine Fehlermeldung "Corrupt data table..." mit den Text-HNFs einen Stackfehler und eine darauf folgende Schutzverletzung.

-Sundance


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo 1. Okt 2001, 11:23 
Offline
Moderator
Benutzeravatar

Registriert: Di 10. Okt 2000, 22:00
Beiträge: 2831
Ja, ich hatts mal versucht aber es lief nie sauber. Wenns auf einem Rechner lief konnte es trotzdem passieren, daß es auf nem anderem Rechner nicht mehr ging.

Hast du denn schon ne saubere Text HNF vorliegen? Wenn nicht erzeuge dir mal eine mit meinem Tool FV3DLL Shell mal eine Text HNF und versuch mit dieser mal eine HDF zu erzeugen.

Soweit ich mich erinnern kann wurden V3HNFs zu HDFs konvertiert, wenn aber reguläre Settings vom Editor (also HNFs) die Fehlermeldung "Corrupt Data table" bringen sinds wohl doch die ASCII HNFs.

Als Tip: benutze nur die aktuelle V0.97 API, da bei den älteren APIs die Funktionen anders sind bzw. auch anders deklariert werden.

Beim Aufruf HnfToHDF gabs z.B. mal so eine Änderung. Da wurde aus Receivertype Flashtype und noch irgendwas.

Beim Aufruf der HnfToHdf wird auch noch die entsprechende SystemID angegeben. Das kuriose daran war, das die ID "0016.000" z.B. kein Integer Wert war, sondern ein Hex Wert.
Das bedeutet, du mußt die entsprechenden System IDs verwenden, kannst diese aber nicht direkt an die API übergeben, sondern mußt die ID noch als Integer bzw. Long Wert umrechnen.
Das steht bei keiner API Beschreibung von Humax drin :(

[ 01. Oktober 2001: Beitrag editiert von: Lostech ]

_________________
Lostech

Visit my Homepage


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de