Hi
Zunächst mal wünsche ich euch allen ein schönes Weihnachtsfest.
Nun zu meiner Frage, ich habe hier die dll des Modulherstellers Deditec importiert, hier gibt es eine Funktion die sich "DapiOpenModuleEx" nennt mit der man ein Modul mit Parameter öffnen kann.
Diese Parameter sind die IP Adresse, der Port und einTimeout.
Die Beschreibung zu dieser Funktion sieht so aus:
Zitat:Beschreibung:
Diese Funktion öffnet gezielt ein Modul mit Ethernet-Schnittstelle. Dabei
können die Parameter IP-Adresse, Portnummer und die Dauer des Timeouts
bestimmt werden.
Das Öffnen des Moduls geschieht dabei unabhängig von den im DELIB
Configuration Utility getroffenen Einstellungen.
Definition:
ULONG DapiOpenModuleEx(ULONG moduleID, ULONG nr, unsigned char* exbuffer, 0);
Parameter:
moduleID = Gibt das Modul an, welches geöffnet werden soll (siehe delib.h)
nr = Gibt an, welches (bei mehreren Modulen) geöffnet werden soll.
nr = 0 -> 1. Modul
nr = 1 -> 2. Modul
exbuffer = Buffer für IP-Adresse, Portnummer und Dauer des Timeouts
Return-Wert:
handle = Entsprechender Handle für das Modul
handle = 0 -> Modul wurde nicht gefunden
Bemerkung:
Der von dieser Funktion zurückgegebene Handle wird zur Identifikation des
Moduls für alle anderen Funktionen benötigt.
Dieser Befehl wird von allen Modulen mit Ethernet-Schnittstelle unterstützt.
Programmierbeispiel:
// Open ETH-Module with parameter
DAPI_OPENMODULEEX_STRUCT open_buffer;
strcpy((char*) open_buffer.address, "192.168.1.10");
open_buffer.portno = 0;
open_buffer.timeout = 5000;
handle = DapiOpenModuleEx(RO_ETH, 0, (unsigned char*) &open_buffer, 0);
printf("Module handle = %x\n", handle);
und das Struct ist im Headerfile so definiert:
Zitat:typedef struct
{
unsigned char address[256];
ULONG timeout;
ULONG portno;
ULONG encryption_type;
unsigned char encryption_password[32];
} DAPI_OPENMODULEEX_STRUCT;
#define DAPI_OPEN_MODULE_OPTION_USE_EXBUFFER (1<<0) // Bit 0
#define DAPI_OPEN_MODULE_OPTION_NO_RESCAN (1<<1) // Bit 1
#define DAPI_OPEN_MODULE_OPTION_CANOPENSTICK_NO_REGISTER_REROUTE (1<<2) // Bit 2
#define DAPI_OPEN_MODULE_ENCRYPTION_TYPE_NONE 0
#define DAPI_OPEN_MODULE_ENCRYPTION_TYPE_NORMAL 1
#define DAPI_OPEN_MODULE_ENCRYPTION_TYPE_ADMIN 2
#define DAPI_OPEN_MODULE_ENCRYPTION_TYPE_ADMIN_TEMP 3
Da jedoch der Eingang am Knoten als String (C-String-Zeiger) definiert ist (siehe Bild im Anhang), jeodch drei Parameter übergeben werden sollen und ich in Sachen C keine Erfahrung habe, frag ich mich wie die übergenenen Daten an dem String-Eingang aussehen müssten.
Kann mir hier jemand einenTipp geben, werden die eizelnen Parameter etwa mit Komma getrennt angegeben oder müssen hier irgendwelche Leeezeichen eingehalten werden?