266 lines
8.8 KiB
C#
266 lines
8.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace TempFlansh
|
|
{
|
|
public class TempHelper
|
|
{
|
|
[DllImport("GMH3x32E.dll")]
|
|
public static extern Int16 UniversalOpenCom(Int16 ini16COMPortNumber, UInt32 inui32BaudRate, Int16 inui16ConverterType, Int16 ini16Parity, Int16 ini16StoppBits);
|
|
[DllImport("GMH3x32E.dll")]
|
|
public static extern Int16 GMH_CloseCom();
|
|
[DllImport("GMH3x32E.dll")]
|
|
public static extern UInt32 GetAdditionalDelay();
|
|
[DllImport("GMH3x32E.dll")]
|
|
public static extern UInt32 SetAdditionalDelay(UInt32 inui32AdditionalDelay);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_GetType(Int32 inui32StatusCode, byte* outcarrStatusText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern byte GMH_GetUnit(Int16 inui16UnitCode, byte* outcarrUnitText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_Transmit(Int16 ini16DeviceAddress, Int16 ini16TransmitCode, Int16* refi16ptrPriority, double* refdblptrFloatValue, Int32* refi32ptrIntegerValue);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern byte GMH_GetMeasurement(Int16 ini16MeasurementCode, byte* outcarrMeasurementText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_GetErrorMessageRet(Int16 ini16ErrorCode, byte* outcarrErrorText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_GetStatusMessage(UInt32 inui32StatusCode, byte* outcarrStatusText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_GetErrorMessageFL(double indblErrorCode, byte* outcarrErrorText);
|
|
[DllImport("GMH3x32E.dll")]
|
|
public static extern Int16 GMH_GetVersionNumber();
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_ReadLogger(Int16 ini16Adresse, UInt32 inui32FileNumber, UInt32* ini32ptrNumberOfData, double* inOADateptrStartDate, double* outdblarrLoggerData);
|
|
[DllImport("GMH3x32E.dll")]
|
|
unsafe public static extern Int16 GMH_SearchForComPorts(Int16* refi16ArrComPortNumbers, out Int16 outi16LenghtOfArray);
|
|
|
|
Int16 i16ErrorCode = -1;
|
|
Int16 i16GMHAddress = -1;
|
|
Int16 i16ArrayLength = -1;
|
|
Int16 i16AnzahlDerComPorts = -1;
|
|
Int16 i16ComPortNummer = -1;
|
|
Int16[] i16ArrComPortArray = new Int16[255];
|
|
Int32 i32GMHSerialNumber = -1;
|
|
String strGMHTypeString;
|
|
String strErrorMessage;
|
|
String strMeasurementText;
|
|
String strUnitText;
|
|
|
|
public enum GHM_TransmitFunktion : short
|
|
{
|
|
AnzeigewertLesen = 0,
|
|
AnzeigewertSetzen,
|
|
//2
|
|
SystemstatusLesen = 3,
|
|
ACK,
|
|
//5
|
|
MinwertspeicherLesen = 6,
|
|
MaxwertspeicherLesen = 7,
|
|
//8
|
|
//9
|
|
//10
|
|
//11
|
|
IDNummerLesen = 12,
|
|
AdresseZuweisen,
|
|
AdresseLesen,
|
|
//15
|
|
//16
|
|
//17
|
|
//18
|
|
//19
|
|
//20
|
|
//21
|
|
MinAlarmgrenzeLesen = 22,
|
|
MaxAlarmgrenzeLesen,
|
|
AlarmverzögerungLesen,
|
|
AlarmfunktionLesen,
|
|
//26
|
|
//27
|
|
//28
|
|
//29
|
|
//30
|
|
//31
|
|
KonfigurationsflagLesen = 32,
|
|
//33
|
|
//34
|
|
//35
|
|
//36
|
|
//37
|
|
//38
|
|
//39
|
|
//40
|
|
//41
|
|
SchaltausgangEinschaltpunktLesen = 42,
|
|
SchaltausgangEinschaltpunktSetzen,
|
|
SchaltausgangAusschaltpunktLesen,
|
|
SchaltausgangAusschaltpunktSetzen,
|
|
//46
|
|
//47
|
|
//48
|
|
//49
|
|
SchaltausgangVerzögerungLesen = 50,
|
|
SchaltausgangVerzögerungSetzen,
|
|
SchaltausgangFunktionLesen,
|
|
SchaltausgangFuntkonSetzen,
|
|
//54
|
|
//...
|
|
//99
|
|
StatusLöschenOderSetzen = 100,
|
|
//101
|
|
MinAlarmgrenzeSetzen = 103,
|
|
MaxAlarmgrenzeSetzen,
|
|
AlarmverzögerungSetzen,
|
|
AlarmfunktionSetzen,
|
|
//106
|
|
//...
|
|
//159
|
|
KonfigurationsflagSetzen = 160,
|
|
//161
|
|
//...
|
|
//173
|
|
MinwertspeicherSetzen = 174,
|
|
MaxwertspeicherSetzen,
|
|
MinMessbereichLesen,
|
|
MaxMessbereichLesen,
|
|
MessbereichEinheitLesen,
|
|
MessbereichDezimalpunktLesen,
|
|
MessbereichMessartLesen,
|
|
//181
|
|
//...
|
|
//190
|
|
AnzeigeMessartSetzen = 191,
|
|
MinAnzeigebereichSetzen,
|
|
MasAnzeigebereichSetzen,
|
|
AnzeigeEinheitSetzen,
|
|
AnzeigeDezimalpunktSetzen,
|
|
//196
|
|
//197
|
|
//198
|
|
AnzeigeMessartLesen = 199,
|
|
MinAnzeigebereichLesen,
|
|
MaxAnzeigebereichLesen,
|
|
AnzeigeeinheitLesen,
|
|
BatteriezustandLesen,
|
|
AnzeigeDezimalpunktLesen,
|
|
AnzeigeMessartErweiterungLesen,
|
|
//206
|
|
//207
|
|
KanalzahlLesen = 208,
|
|
MasterFunktion209,
|
|
ElektrodenzustandLesen,
|
|
Masterfunktion211,
|
|
Masterfunktion212,
|
|
Masterfunktion213,
|
|
SteigungsKorrekturLesen = 214,
|
|
SteigungsKorrekturSetzen,
|
|
OffsetkorrekturLesen,
|
|
OffsetkorrekturSetzen,
|
|
KorrekturfaktorFürOberflächenMessungLesen,
|
|
KorrekturfaktorFürOberflächenMessungSetzen,
|
|
AltitudeLesen,
|
|
AltitudeSetzen,
|
|
AbschaltverzögerungLesen,
|
|
AbschaltverzögerungSetzen,
|
|
LoggerdatenLesen = 224,
|
|
LoggerzyklusLesen,
|
|
LoggerzyklusSetzen,
|
|
LoggeraufzeichnnungStarten,
|
|
AnzahlDerLoggerDatenLesen,
|
|
LoggerzustandLesen,
|
|
LoggerLesezeigerSetzen,
|
|
LoggerStartStoppzeitLesen,
|
|
LoggerStartStoppzeitSetzen,
|
|
EchtzeituhrLesen = 233,
|
|
EchtzeituhrSetzen,
|
|
ZeitpunktDerLetztenZeitkorrekturLesen,
|
|
LoggerspeichergrösseLesen,
|
|
LoggerFilezahlLesen,
|
|
LoggerFilezeigerSetzen,
|
|
LoggerFilelesenAufzeichnungInfo,
|
|
SonsormodulRücksetzen,
|
|
SensormodulNeustart,
|
|
//242
|
|
//...
|
|
//247
|
|
GerätespezifischeFunktion = 248,
|
|
//249
|
|
//...
|
|
//253
|
|
ProgrammkennungLesen = 254,
|
|
//255
|
|
//...
|
|
//259
|
|
LoggerdatenLesenManuellerLogger = 260,
|
|
GrösseFreierLoggerspeicherLesen,
|
|
AnzahlFreieLoggerfilesLesen,
|
|
LoggerGilelesenKanalinfo
|
|
}
|
|
|
|
public enum Sprache : short
|
|
{
|
|
Deutsch = 0x0000,
|
|
Englisch = 0x1000,
|
|
Tschechisch = 0x2000,
|
|
Spanisch = 0x3000,
|
|
}
|
|
|
|
public enum Fehlermeldungen : short
|
|
{
|
|
NegativeQuittung = -38,
|
|
KonnteNachrichtNichtSendenCTSTimeout,
|
|
RückgabewetIstFehlercode,
|
|
EchodatenUnvollständig,
|
|
KeineEchodatenEmpfangen,
|
|
WertAusserhalbDesGültigenBereichs,
|
|
FFeldNichtKorrekt,
|
|
DezimalPunktInformationenUngültig,
|
|
|
|
ÜbergebenerCodeUngültig = -30,
|
|
EchodatenNichtIdentisch,
|
|
Testcode,
|
|
KonntePortNichtSchliessen,
|
|
RückgeleseneAdresseFalsch,
|
|
CRCCodeFalsch,
|
|
NachrichtenlängeFalsch,
|
|
SensormodulAntwortetNicht,
|
|
KonnteNachrichtNichtSenden,
|
|
KonnteSchnittstelleNichtInitialisieren,
|
|
KonnteDCBNichtBilden = -20,
|
|
|
|
NichtUnterstützteBaudrate = -12,
|
|
UngültigeBytegrösse = -11,
|
|
HardwareNichtVorhanden = -10,
|
|
|
|
PegelwandlerWirdNichtUnterstützt = -6,
|
|
FehlerInStandardParametern,
|
|
KannKeineWarteschlangeEinrichten,
|
|
PortNichtBereit,
|
|
PortBereitsGeöffnet,
|
|
UngültigePortNummer,
|
|
OK = 0,
|
|
}
|
|
|
|
public double ReadCurrentDisplayValue()
|
|
{
|
|
Int16 i16Priority;
|
|
double dblFloatValue;
|
|
Int32 i32IntergerValue;
|
|
unsafe
|
|
{
|
|
this.i16ErrorCode = GMH_Transmit(1, (Int16)GHM_TransmitFunktion.AnzeigewertLesen, &i16Priority, &dblFloatValue, &i32IntergerValue);
|
|
}
|
|
if (i16ErrorCode < 0)
|
|
{
|
|
return double.MinValue;
|
|
}
|
|
else
|
|
{
|
|
return dblFloatValue;
|
|
}
|
|
}
|
|
}
|
|
}
|