Diese strukturierten Daten werden über eine UDP-Verbindung gesendet. Ich kann die UDP-Pakete lesen, aber ich habe Probleme mit dem Parsen der Daten, die von diesem C++ Struct kommen.Lesen dieser C++ - Marshalled-Daten in C# über UDP-Verbindung
hier ist die Struct:
struct scanner_status{
// ---
u_short UDP_STATUS;
u_short TCP_COMMAND;
u_short TCP_LOGGING;
// scanner attributes
EPlatformModelNumber ModelNo;
string SerialNo;
bool bHasCT;
bool bHasPET;
bool bHasSPECT;
// physical
EBedType_mMM _eCurrBedType;
int_16 _CurrPallet;
bool _bTunnelPresent;
//
scanner_status()
: UDP_STATUS(u_short(~0))
, TCP_COMMAND(u_short(~0))
, TCP_LOGGING(u_short(~0))
, ModelNo(eUnknownPlatformModelNumber)
, bHasCT(false)
, bHasPET(false)
, bHasSPECT(false)
, _eCurrBedType(emMM_BedType_Unknown)
, _CurrPallet(-1)
, _bTunnelPresent(false)
{ }
};
decl_marshalling(scanner_status);
ich Hilfe dieses bei der Lektüre in C# erhalten möchte, und ich bin nicht wirklich vertraut mit C++ und mit Rangier-, ao ist jede Hilfe sehr geschätzt.
Vermutlich haben Sie ein 'byte []' mit den Rohdaten, richtig? Haben Sie [System.BitConverter] (http://msdn.microsoft.com/en-us/library/system.bitconverter.aspx) angeschaut? Padding ist die eine Sache, die dies verkompliziert, und ohne den Compiler und Compiler _settings_ zu kennen, die zum Erstellen des C++ - Codes verwendet werden, können wir nur raten. – ildjarn