AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Unterstüzung bei Codeübertragung C->Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Unterstüzung bei Codeübertragung C->Delphi

Ein Thema von Metschu · begonnen am 4. Sep 2014 · letzter Beitrag vom 4. Sep 2014
Antwort Antwort
Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Unterstüzung bei Codeübertragung C->Delphi

  Alt 4. Sep 2014, 08:28
Hallo zusammen,

zur Kommunikation mit einem USB-CAN Modul bräuchte ich ein klein wenig Unterstützung bei der Codeübersetzung.
Senden - Empfangen auf dem CAN-Bus klappt ohne Probleme, nun möchte ich noch die Hardware-Infos aus dem Modul auslesen, bzw das was ich schon auslesen konnte "lesbar" machen.


Hier mal der Codeausschnitt:
Code:
typedef struct
{
DWORD m_dwSize; // Anzahl der Bytes dieser
// Struktur
tUcanHandle m_UcanHandle; // USB-CAN-Handle
BYTE m_bDeviceNr; // Gerätenummer
DWORD m_dwSerialNr; // Seriennummer
DWORD m_dwFwVersionEx; // Firmware Version
DWORD m_dwProductCode; // Hardware-Typ
} tUcanHardwareInfoEx;

UCANRET bRet;
tUcanHandle UcanHandle;
tUcanHardwareInfoEx HwInfoEx;
...
// USB-CANmodul initialisieren
bRet = UcanInitHardware (&UcanHandle, USBCAN_ANY_MODULE, NULL);
if (bRet == USBCAN_SUCCESSFUL)
{
memset (&HwInfoEx, 0, sizeof (HwInfoEx));
HwInfoEx.m_dwSize = sizeof (HwInfoEx);
// erweiterte Hardwareinformationen holen
bRet = UcanGetHardwareInfoEx2 (UcanHandle, &HwInfoEx,
NULL, NULL);
if (bRet == USBCAN_SUCCESSFUL)
{
TRACE1 ("product code = 0x%04X\n",                               // <-- hier wird der ausgelesene Wert umgewandelt
HwInfoEx->m_dwProductCode & USBCAN_PRODCODE_MASK_PID);
// prüfen, ob zwei CAN-Kanäle zur Verfügung stehen
if (USBCAN_CHECK_SUPPORT_TWO_CHANNEL (&HwInfoEx))
{
...
}
...
}
...
Wie wird "TRACE1 ("product code = 0x%04X\n", HwInfoEx->m_dwProductCode & USBCAN_PRODCODE_MASK_PID);" nach Delphi übersetzt?

Hier meine Variablenstrucktur / Code in Delphi:

Delphi-Quellcode:
type THardwareInfoVar = packed Record
 Size : longWORD;
 thd : thandle;
 DeviceNr : byte;
 SerialNr : longWord;
 FwVersionEx : longWord;
 ProductCode : longWord;
end;

Function tUSB_Kom.HWinfo;
var hwi : tHardWareInfoVar;

begin
 fCode:=HardWareInfo(modul,hwi,NIL,NIL);

 ... // hier fehlt mir die Umwandlung aus C :(
end;
Danke schonmal für die Hilfe!

Gruß

Torsten
Torsten
  Mit Zitat antworten Zitat
DelphiProgrammierer1

Registriert seit: 5. Feb 2012
2 Beiträge
 
#2

AW: Unterstüzung bei Codeübertragung C->Delphi

  Alt 4. Sep 2014, 08:40
Hallo Torsten,

suche doch bitte mal im C Source nach TRACE1. Dies müsste ein Makro sein hinter der sich eine Funktion verbirgt.

http://msdn.microsoft.com/de-de/libr...=vs.90%29.aspx

Gruß

Ulrich
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Unterstüzung bei Codeübertragung C->Delphi

  Alt 4. Sep 2014, 20:00
Ist vermutlich ein Alias für printf, das Delphi-Äquivalent dazu ist die Delphi-Referenz durchsuchenFormat-Routine.

WriteLn(Format('product code = 0x%04X', [HwInfoEx.m_dwProductCode and USBCAN_PRODCODE_MASK_PID]));
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz