848 lines
32 KiB
VB.net
848 lines
32 KiB
VB.net
Attribute VB_Name = "modMBUS_SMS"
|
|
Option Explicit
|
|
|
|
Private Const OFFSET_4 = 4294967296# ' 2^32
|
|
Private Const MAXINT_4 = 2147483647 ' 2^31 -1
|
|
|
|
Private Const OFFSET_2 = 65536 '2^16
|
|
Private Const MAXINT_2 = 32767 '2^15-1
|
|
|
|
Public Const MBUS_SMS_ERR_OK = &H0
|
|
Public Const MBUS_SMS_ERR_PORT_NOT_INITIALIZED = &H1
|
|
Public Const MBUS_SMS_ERR_WRITECOMM_ERROR = &H2
|
|
Public Const MBUS_SMS_ERR_TIMEOUT = &H3
|
|
Public Const MBUS_SMS_ERR_PROT_CHECKSUM_ERROR = &H4
|
|
Public Const MBUS_SMS_ERR_ECHO_ONLY = &H5
|
|
Public Const MBUS_SMS_ERR_NO_ECHO = &H6
|
|
Public Const MBUS_SMS_ERR_ASCIIHEX_TO_BIN_CONV_ERROR = &H7
|
|
Public Const MBUS_SMS_ERR_ASSIGNMENT_CFIELD_CIFIELD = &H8
|
|
Public Const MBUS_SMS_ERR_NO_RECEIVED_DATA_ASSIGNMENT = &H9
|
|
Public Const MBUS_SMS_ERR_WRITECOMM_ABOVE_1024_CHARS = &HA
|
|
Public Const MBUS_SMS_ERR_READCOMM_ABOVE_1024_CHARS = &HB
|
|
Public Const MBUS_SMS_ERR_SETCOMMSTATE_SET_BAUDRATE = &HC
|
|
Public Const MBUS_SMS_ERR_A_FIELD_TX_RX_DIFFERENCE = &HD
|
|
Public Const MBUS_SMS_ERR_C_FIELD_VALUE_INVALID = &HE
|
|
Public Const MBUS_SMS_ERR_OPENCOMM = &HF
|
|
Public Const MBUS_SMS_ERR_BUILDCOMMDCB = &H10
|
|
Public Const MBUS_SMS_ERR_SETCOMMSTATE = &H11
|
|
Public Const MBUS_SMS_ERR_COMPORT_CANNOT_BE_CHANGED = &H12
|
|
Public Const MBUS_SMS_ERR_CLOSEHANDLE = &H13
|
|
Public Const MBUS_SMS_ERR_DELAYTIME_NO_BAUDRATE_SET = &H14
|
|
Public Const MBUS_SMS_ERR_RECEIVE_BUFFER_TOO_SMALL = &H15
|
|
Public Const MBUS_SMS_ERR_OPTO_ON = &H16
|
|
Public Const MBUS_SMS_ERR_OPTO_OFF = &H17
|
|
Public Const MBUS_SMS_ERR_OPTO_ERROR1 = &H18
|
|
Public Const MBUS_SMS_ERR_VARDEF_FILE_NOT_FOUND = &H19
|
|
Public Const MBUS_SMS_ERR_CANNOT_LOAD_FILE = &H1A
|
|
Public Const MBUS_SMS_ERR_VARDEF_FILE_FIELD_COUNT_LOW = &H1B
|
|
Public Const MBUS_SMS_ERR_VARDEF_INVALID_VARIABLE_TYPE = &H1C
|
|
Public Const MBUS_SMS_ERR_VARDEF_INVALID_ADDRESS = &H1D
|
|
Public Const MBUS_SMS_ERR_VARDEF_INVALID_LENGTH = &H1E
|
|
Public Const MBUS_SMS_ERR_UNKNOWN_VARIABLE = &H1F
|
|
Public Const MBUS_SMS_ERR_RECEIVE_TELEGRAM_ERROR = &H20
|
|
Public Const MBUS_SMS_ERR_VARIABLE_NOT_IN_CRC_SECTION = &H21
|
|
Public Const MBUS_SMS_ERR_INVALID_CRC_SECTION_NAME = &H22
|
|
Public Const MBUS_SMS_ERR_CRC_SECTION_INVALID_CHECKSUM = &H23
|
|
Public Const MBUS_SMS_ERR_RESOURCE_ACCESS_ERROR = &H24
|
|
Public Const MBUS_SMS_ERR_UNKNOWN_ERROR = &HFFF
|
|
|
|
Public Const MBUS_SMS_BAUDRATE_300 = &HB8
|
|
Public Const MBUS_SMS_BAUDRATE_2400 = &HBB
|
|
|
|
Public Const MBUS_SMS_TEST1_ID_LCD_ON = &HE1
|
|
Public Const MBUS_SMS_TEST1_ID_LCD_OFF = &HE3
|
|
Public Const MBUS_SMS_TEST1_ID_FZV_FZE = &HE0
|
|
Public Const MBUS_SMS_TEST1_ID_SELFTEST = &HE2
|
|
Public Const MBUS_SMS_TEST1_ID_TEST_CS = &HE8
|
|
Public Const MBUS_SMS_TEST1_ID_COPY_RAM_EEPROM = &HEA
|
|
Public Const MBUS_SMS_TEST1_ID_START_FLOW_SIMU = &HDC
|
|
Public Const MBUS_SMS_TEST1_ID_STOP_FLOW_SIMU = &HDD
|
|
|
|
Public Const MBUS_SMS_TEST2_ID_ADC = &HD0
|
|
Public Const MBUS_SMS_TEST2_ID_ENERGY = &HD6
|
|
Public Const MBUS_SMS_TEST2_ID_US = &HDA
|
|
|
|
Public Const MBUS_SMS_AUTO_INIT_OFF = &H0
|
|
Public Const MBUS_SMS_AUTO_INIT_IEC = &H1
|
|
Public Const MBUS_SMS_AUTO_INIT_IEC_SCHICHT2 = &H2
|
|
|
|
Public Const INIT_PSE = &H1
|
|
Public Const INIT_KEV1 = &H2
|
|
Public Const INIT_HISTORICAL_DATA = &H4
|
|
Public Const INIT_LOGGER_HOURLY = &H8
|
|
Public Const RESET_PSE = &H10
|
|
Public Const RESET_KEV1 = &H20
|
|
Public Const INIT_LOGGER_DAILY = &H40
|
|
|
|
|
|
Private MBUS_SMS_Status As Long
|
|
|
|
Public gblnMapfileLoaded As Boolean
|
|
Public gblnOptoAktiv As Boolean
|
|
|
|
|
|
' void CALLCONV Init_MBUS_SMS();
|
|
Public Declare Sub Init_MBUS_SMS Lib "MBUS_SMS.dll" ()
|
|
' void CALLCONV SetDebugView(BOOL on);
|
|
Private Declare Sub SetDebugView Lib "MBUS_SMS.dll" (ByVal blnON As Boolean)
|
|
' void CALLCONV SetAutoInit(BYTE autoinit);
|
|
Private Declare Sub SetAutoInit Lib "MBUS_SMS.dll" (ByVal autoinit As Byte)
|
|
|
|
' IECCOM_InitCom2(UINT ComPort, UINT BaudRate, UINT ByteSize, UINT Parity, UINT StopBits);
|
|
Private Declare Function IECCOM_InitCom2 Lib "MBUS_SMS.dll" (ByVal comport As Integer, ByVal BAUDRATE As Integer, ByVal ByteSize As Integer, ByVal Parity As Integer, ByVal StopBits As Integer) As Integer
|
|
|
|
'typedef UINT (CALLBACK *lpIECCOM_InitSchicht2_2)(BYTE A_Feld, BYTE Mode, UINT Timeout, UINT repeat);
|
|
Private Declare Function IECCOM_InitSchicht2_2 Lib "MBUS_SMS.dll" (ByVal A_Feld As Byte, ByVal Mode As Byte, ByVal Timeout As Integer, ByVal repeat As Integer) As Integer
|
|
|
|
Private Declare Function LoadVarDef Lib "MBUS_SMS.dll" (ByVal filename As String) As Integer
|
|
|
|
Public Declare Function SND_NKE Lib "MBUS_SMS.dll" () As Integer
|
|
Public Declare Function REQ_UD2 Lib "MBUS_SMS.dll" (ByVal lpstr_received_buffer As String) As Integer
|
|
|
|
' UINT CALLCONV IECCOM_SetKopfOn(UINT Timeout);
|
|
Public Declare Function IECCOM_SetKopfOn Lib "MBUS_SMS.dll" (ByVal Timeout As Integer) As Integer
|
|
|
|
' UINT CALLCONV IECCOM_SetKopfOff(void);
|
|
Public Declare Function IECCOM_SetKopfOff Lib "MBUS_SMS.dll" () As Integer
|
|
|
|
' UINT CALLCONV IECCOM_SwitchOpto(UINT OptoFlag);
|
|
Public Declare Function IECCOM_SwitchOpto Lib "MBUS_SMS.dll" (ByVal OptoFlag As Integer) As Integer
|
|
|
|
|
|
' typedef UINT (CALLBACK *lpIECCOM_SelectOptoHeader)(UINT SetBaudFlag);
|
|
Public Declare Function IECCOM_SelectOptoHeader Lib "MBUS_SMS.dll" (ByVal SetBaudFlag As Integer) As Integer
|
|
|
|
' UINT CALLCONV IECCOM_SendOptoHeader(void);
|
|
Public Declare Function IECCOM_SendOptoHeader Lib "MBUS_SMS.dll" () As Integer
|
|
|
|
Public Declare Function IECCOM_CloseCom Lib "MBUS_SMS.dll" () As Integer
|
|
|
|
|
|
|
|
' MBUS_SMS_Status CALLCONV read_Byte(LPCSTR varname, BYTE *value);
|
|
Public Declare Function read_Byte Lib "MBUS_SMS.dll" (ByVal Varname As String, ByRef value As Byte) As Integer
|
|
' MBUS_SMS_Status CALLCONV read_Word(LPCSTR varname, WORD *value);
|
|
Public Declare Function read_Word Lib "MBUS_SMS.dll" (ByVal Varname As String, ByRef value As Integer) As Integer
|
|
' MBUS_SMS_Status CALLCONV read_ULong(LPCSTR varname, ULONG *value);
|
|
Public Declare Function read_ULong Lib "MBUS_SMS.dll" (ByVal Varname As String, ByRef value As Long) As Integer
|
|
' MBUS_SMS_Status CALLCONV read_Float(LPCSTR varname, float *value);
|
|
Public Declare Function read_Float Lib "MBUS_SMS.dll" (ByVal Varname As String, ByRef value As Single) As Integer
|
|
'write_Byte(LPCSTR varname, BYTE value)
|
|
Public Declare Function write_Byte Lib "MBUS_SMS.dll" (ByVal Varname As String, ByVal value As Byte) As Integer
|
|
|
|
'write_CP16(LPCSTR varname, LPSTR value)
|
|
'write_CP32(LPCSTR varname, LPSTR value)
|
|
'write_EEPROM(WORD address, LPSTR write_buffer, BYTE length)
|
|
|
|
'write_Float(LPCSTR varname, float value)
|
|
Public Declare Function write_Float Lib "MBUS_SMS.dll" (ByVal Varname As String, ByVal value As Single) As Integer
|
|
|
|
'write_Memory(CString memtype, BYTE typebyte, WORD address, LPSTR write_buffer, BYTE length)
|
|
'write_Memory(TVarMemType memtype, WORD address, LPSTR write_buffer, BYTE length)
|
|
'write_RAM(WORD address, LPSTR write_buffer, BYTE length)
|
|
|
|
'write_ULong(LPCSTR varname, ULONG value)
|
|
Public Declare Function write_ULong Lib "MBUS_SMS.dll" (ByVal Varname As String, ByVal value As Long) As Integer
|
|
|
|
'write_Var(LPCSTR varname, LPSTR write_buffer)
|
|
'write_Var_Typed(CString vartype, LPCSTR varname, BYTE *value, long excpected_size)
|
|
|
|
'write_Word(LPCSTR varname, WORD value)
|
|
Public Declare Function write_Word Lib "MBUS_SMS.dll" (ByVal Varname As String, ByVal value As Integer) As Integer
|
|
|
|
'MBUS_SMS_Status CALLCONV NOWA_start()
|
|
Public Declare Function NOWA_START_FW2 Lib "MBUS_SMS.dll" Alias "NOWA_start" () As Integer
|
|
|
|
'MBUS_SMS_Status CALLCONV NOWA_stop()
|
|
Public Declare Function NOWA_STOP_FW2 Lib "MBUS_SMS.dll" Alias "NOWA_stop" () As Integer
|
|
|
|
'MBUS_SMS_Status CALLCONV Init_FW2(BYTE cmd)
|
|
Public Declare Function Init_FW2 Lib "MBUS_SMS.dll" (ByVal command As Byte) As Integer
|
|
|
|
|
|
' MBUS_SMS_Status CALLCONV do_test2(BYTE test, BYTE index);
|
|
Public Declare Function do_test2 Lib "MBUS_SMS.dll" (ByVal bTest As Byte, ByVal nIndex As Byte) As Integer
|
|
|
|
' MBUS_SMS_Status CALLCONV do_test3(BYTE test, BYTE para1, BYTE para2);
|
|
' pDo_test2(0xE8,0x5a);
|
|
' MBUS_SMS_Status CALLCONV do_test2(BYTE test, BYTE index)
|
|
|
|
' Schloss öffnen / Schliessen
|
|
Public Declare Function open_fw2 Lib "MBUS_SMS.dll" Alias "open" () As Integer
|
|
Public Declare Function close_fw2 Lib "MBUS_SMS.dll" Alias "close" () As Integer
|
|
|
|
|
|
'INITSCHICHT2 init_para;
|
|
'LPTSTR Getsleer()
|
|
'LPTSTR Getsnull()
|
|
'MBUS_SMS_Status CALLCONV DefineEastExtendedLogger(BYTE loggertype, BYTE packageflag)
|
|
'MBUS_SMS_Status CALLCONV GetEastExtendedLoggerConfig(BYTE loggertype, BYTE *type, WORD *Index, BYTE *size, BYTE *config,WORD *LastBlockNr)
|
|
'MBUS_SMS_Status CALLCONV GetSMS_DLLVersion(LPTSTR version)
|
|
'MBUS_SMS_Status CALLCONV Init_FW2(BYTE cmd)
|
|
'MBUS_SMS_Status CALLCONV LoadVarDef(LPCSTR filename)
|
|
'MBUS_SMS_Status CALLCONV NOWA_start()
|
|
'MBUS_SMS_Status CALLCONV NOWA_stop()
|
|
'MBUS_SMS_Status CALLCONV REQ_UD2(LPSTR receive_buffer)
|
|
'MBUS_SMS_Status CALLCONV SND_NKE()
|
|
'MBUS_SMS_Status CALLCONV application_reset()
|
|
'MBUS_SMS_Status CALLCONV check_section_crc(LPCSTR sectionname, WORD &crc_calced, WORD &crc_stored)
|
|
'MBUS_SMS_Status CALLCONV check_var_section_crc(LPCSTR varname, WORD &crc_calced, WORD &crc_stored)
|
|
'MBUS_SMS_Status CALLCONV close()
|
|
'MBUS_SMS_Status CALLCONV deselection()
|
|
'MBUS_SMS_Status CALLCONV do_test1(BYTE test)
|
|
'MBUS_SMS_Status CALLCONV do_test2(BYTE test, BYTE index)
|
|
'MBUS_SMS_Status CALLCONV do_test3(BYTE test, BYTE para1, BYTE para2)
|
|
'MBUS_SMS_Status CALLCONV jump_display_level(BYTE userlevel,BYTE position)
|
|
|
|
|
|
'MBUS_SMS_Status CALLCONV open()
|
|
|
|
|
|
'MBUS_SMS_Status CALLCONV read_Byte(LPCSTR varname, BYTE *value)
|
|
'MBUS_SMS_Status CALLCONV read_CP16(LPCSTR varname, LPSTR value)
|
|
'MBUS_SMS_Status CALLCONV read_CP32(LPCSTR varname, LPSTR value)
|
|
|
|
'MBUS_SMS_Status CALLCONV read_EEPROM(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
''' versuch Public Declare Function read_EEPROM Lib "MBUS_SMS.dll" (int_address As Integer, byte_length As Byte, ByVal lpstr_receive_buffer As String, lng_buffer_size As Long) As Integer
|
|
|
|
'MBUS_SMS_Status CALLCONV read_Float(LPCSTR varname, float *value)
|
|
|
|
'MBUS_SMS_Status CALLCONV read_RAM(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
''' versuch Public Declare Function read_RAM Lib "MBUS_SMS.dll" (int_address As Integer, byte_length As Byte, ByVal lpstr_receive_buffer As String, lng_buffer_size As Long) As Integer
|
|
|
|
'MBUS_SMS_Status CALLCONV read_ULong(LPCSTR varname, ULONG *value)
|
|
|
|
'MBUS_SMS_Status CALLCONV read_Var(LPCSTR varname, LPSTR receive_buffer, long buffer_size)
|
|
Public Declare Function read_Var Lib "MBUS_SMS.dll" (ByRef Varname As String, ByRef receive_buffer As String, ByRef buffer_size As Long) As Integer
|
|
|
|
|
|
|
|
'MBUS_SMS_Status CALLCONV read_Var_Typed(CString vartype, LPCSTR varname, BYTE *value, long excpected_size)
|
|
'MBUS_SMS_Status CALLCONV read_Word(LPCSTR varname, WORD *value)
|
|
'MBUS_SMS_Status CALLCONV read_bigEEPROM(DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status CALLCONV recalc_section_crc(LPCSTR sectionname, WORD &crc_calced, WORD &crc_stored)
|
|
'MBUS_SMS_Status CALLCONV recalc_section_crc2(LPCSTR sectionname)
|
|
'MBUS_SMS_Status CALLCONV recalc_var_section_crc(LPCSTR varname, WORD &crc_calced, WORD &crc_stored)
|
|
'MBUS_SMS_Status CALLCONV recalc_var_section_crc2(LPCSTR varname)
|
|
'MBUS_SMS_Status CALLCONV reset_errortime()
|
|
'MBUS_SMS_Status CALLCONV reset_maxima()
|
|
'MBUS_SMS_Status CALLCONV select_baud(Baudrate_ID baudrate)
|
|
'MBUS_SMS_Status CALLCONV select_telegram(BYTE type)
|
|
'MBUS_SMS_Status CALLCONV selection(Selection_ID id, WORD man, BYTE gen, BYTE med)
|
|
'MBUS_SMS_Status CALLCONV set_BonusMalusTarif(QUADBYTE password,BYTE OnOff, float temperature, BYTE powermode)
|
|
'MBUS_SMS_Status CALLCONV set_CzechiaTarif(QUADBYTE password,DWORD Flow)
|
|
'MBUS_SMS_Status CALLCONV set_FZE_FZV(BYTE type, float value)
|
|
'MBUS_SMS_Status CALLCONV set_ID1(QUADBYTE SC)
|
|
'MBUS_SMS_Status CALLCONV set_ID2(QUADBYTE SC, WORD man, BYTE gen, BYTE med)
|
|
'MBUS_SMS_Status CALLCONV set_InitCounter1(QUADBYTE value)
|
|
'MBUS_SMS_Status CALLCONV set_InitCounter2(QUADBYTE value)
|
|
'MBUS_SMS_Status CALLCONV set_ParameterCounter1(QUADBYTE fabnr,QUADBYTE index, BYTE medium, BYTE scaling ,float value)
|
|
'MBUS_SMS_Status CALLCONV set_ParameterCounter2(QUADBYTE fabnr,QUADBYTE index, BYTE medium, BYTE scaling ,float value)
|
|
'MBUS_SMS_Status CALLCONV set_PrimAdr_Counter1(BYTE adress)
|
|
'MBUS_SMS_Status CALLCONV set_PrimAdr_Counter2(BYTE adress)
|
|
'MBUS_SMS_Status CALLCONV set_RomaniaTarif(QUADBYTE password,WORD ReturnTemp, WORD DeltaT)
|
|
'MBUS_SMS_Status CALLCONV set_SecAdr_Counter1(QUADBYTE adress)
|
|
'MBUS_SMS_Status CALLCONV set_SecAdr_Counter2(QUADBYTE adress)
|
|
'MBUS_SMS_Status CALLCONV set_address(BYTE address)
|
|
'MBUS_SMS_Status CALLCONV set_averaging_time(BYTE min1, BYTE min2)
|
|
'MBUS_SMS_Status CALLCONV set_cooling(float TV, float delta_T)
|
|
'MBUS_SMS_Status CALLCONV set_counter_1(UINT bcd_value)
|
|
'MBUS_SMS_Status CALLCONV set_counter_1_2(QUADBYTE ID1, BYTE VIF1, float value1, QUADBYTE ID2, BYTE VIF2, float value2)
|
|
'MBUS_SMS_Status CALLCONV set_counter_2(UINT bcd_value)
|
|
'MBUS_SMS_Status CALLCONV set_credit_off()
|
|
'MBUS_SMS_Status CALLCONV set_credit_on()
|
|
'MBUS_SMS_Status CALLCONV set_customer_loc(QUADBYTE NR)
|
|
'MBUS_SMS_Status CALLCONV set_date_time(BYTE year, BYTE month, BYTE day, BYTE hour, BYTE minute)
|
|
'MBUS_SMS_Status CALLCONV set_date_time_pw(BYTE year, BYTE month, BYTE day, BYTE hour, BYTE minute, QUADBYTE password)
|
|
'MBUS_SMS_Status CALLCONV set_display(DISPLAYBUF displaybuf)
|
|
'MBUS_SMS_Status CALLCONV set_fixed_date(USHORT date)
|
|
'MBUS_SMS_Status CALLCONV set_logger_intervall_time(WORD minuten)
|
|
'MBUS_SMS_Status CALLCONV set_password(QUADBYTE pw)
|
|
'MBUS_SMS_Status CALLCONV set_pulsmode(BYTE type, float val)
|
|
'MBUS_SMS_Status CALLCONV set_tarif(BYTE mode, float value)
|
|
'MBUS_SMS_Status CALLCONV set_tarif_time(WORD var1, WORD var2)
|
|
'MBUS_SMS_Status CALLCONV set_var_bits_Byte(LPCSTR varname, BYTE setmask, BYTE clearmask)
|
|
'MBUS_SMS_Status CALLCONV set_var_bits_Word(LPCSTR varname, WORD setmask, WORD clearmask)
|
|
'MBUS_SMS_Status CALLCONV show_display_level(BYTE levelN)
|
|
'MBUS_SMS_Status CALLCONV write_Byte(LPCSTR varname, BYTE value)
|
|
'MBUS_SMS_Status CALLCONV write_CP16(LPCSTR varname, LPSTR value)
|
|
'MBUS_SMS_Status CALLCONV write_CP32(LPCSTR varname, LPSTR value)
|
|
'MBUS_SMS_Status CALLCONV write_EEPROM(WORD address, LPSTR write_buffer, BYTE length)
|
|
'MBUS_SMS_Status CALLCONV write_Float(LPCSTR varname, float value)
|
|
'MBUS_SMS_Status CALLCONV write_Memory(CString memtype, BYTE typebyte, WORD address, LPSTR write_buffer, BYTE length)
|
|
'MBUS_SMS_Status CALLCONV write_Memory(TVarMemType memtype, WORD address, LPSTR write_buffer, BYTE length)
|
|
'MBUS_SMS_Status CALLCONV write_RAM(WORD address, LPSTR write_buffer, BYTE length)
|
|
'MBUS_SMS_Status CALLCONV write_ULong(LPCSTR varname, ULONG value)
|
|
'MBUS_SMS_Status CALLCONV write_Var(LPCSTR varname, LPSTR write_buffer)
|
|
'MBUS_SMS_Status CALLCONV write_Var_Typed(CString vartype, LPCSTR varname, BYTE *value, long excpected_size)
|
|
'MBUS_SMS_Status CALLCONV write_Word(LPCSTR varname, WORD value)
|
|
'MBUS_SMS_Status DoAutoInit()
|
|
'MBUS_SMS_Status GetSendDataStatus(UINT code)
|
|
'MBUS_SMS_Status NormalSendData(UINT CI_Field, CString &sdat)
|
|
'MBUS_SMS_Status read_Memory(CString memtype, BYTE typebyte, WORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status read_Memory(TVarMemType memtype, WORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status read_Memory_LowLevel(CString memtype, BYTE typebyte, WORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status read_bigMemory(CString memtype, BYTE typebyte, DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status read_bigMemory(TVarMemType memtype, DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status read_bigMemory_LowLevel(CString memtype, BYTE typebyte, DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size)
|
|
'MBUS_SMS_Status sendCI(UINT CI)
|
|
'SLAVEPARA slave_para_init;
|
|
'SLAVEPARA slave_para_temp;
|
|
'UINT init_repeat;
|
|
'UINT res;
|
|
'long CALLCONV get_var_adress(LPCSTR varname)
|
|
'long CALLCONV get_var_size(LPCSTR varname)
|
|
'static void wartezeit(UINT ms)
|
|
'static void wartezeit(UINT ms);
|
|
'void CALLCONV Init_MBUS_SMS()
|
|
'void CALLCONV SetAutoInit(BYTE autoinit)
|
|
'void CALLCONV SetDebugView(BOOL on)
|
|
'void CopyQB(QUADBYTE src, QUADBYTE &dest)
|
|
'void DebugOut(CString txt)
|
|
|
|
|
|
Public Function Errorstring(intErrorcode As Integer) As String
|
|
If intErrorcode = MBUS_SMS_ERR_OK Then Errorstring = "MBUS_SMS_ERR_OK"
|
|
If intErrorcode = 1 Then Errorstring = "MBUS_SMS_ERR_PORT_NOT_INITIALIZED"
|
|
If intErrorcode = 2 Then Errorstring = "MBUS_SMS_ERR_WRITECOMM_ERROR"
|
|
If intErrorcode = 3 Then Errorstring = "MBUS_SMS_ERR_TIMEOUT"
|
|
If intErrorcode = 4 Then Errorstring = "MBUS_SMS_ERR_PROT_CHECKSUM_ERROR"
|
|
If intErrorcode = 5 Then
|
|
Errorstring = "MBUS_SMS_ERR_ECHO_ONLY"
|
|
End If
|
|
If intErrorcode = 6 Then Errorstring = "MBUS_SMS_ERR_NO_ECHO"
|
|
If intErrorcode = 7 Then Errorstring = "MBUS_SMS_ERR_ASCIIHEX_TO_BIN_CONV_ERROR"
|
|
If intErrorcode = 8 Then Errorstring = "MBUS_SMS_ERR_ASSIGNMENT_CFIELD_CIFIELD"
|
|
If intErrorcode = 9 Then Errorstring = "MBUS_SMS_ERR_NO_RECEIVED_DATA_ASSIGNMENT"
|
|
If intErrorcode = 10 Then Errorstring = "MBUS_SMS_ERR_WRITECOMM_ABOVE_1024_CHARS"
|
|
If intErrorcode = 11 Then Errorstring = "MBUS_SMS_ERR_READCOMM_ABOVE_1024_CHARS"
|
|
If intErrorcode = 12 Then Errorstring = "MBUS_SMS_ERR_SETCOMMSTATE_SET_BAUDRATE"
|
|
If intErrorcode = 13 Then Errorstring = "MBUS_SMS_ERR_A_FIELD_TX_RX_DIFFERENCE"
|
|
If intErrorcode = 14 Then Errorstring = "MBUS_SMS_ERR_C_FIELD_VALUE_INVALID"
|
|
If intErrorcode = 15 Then Errorstring = "MBUS_SMS_ERR_OPENCOMM"
|
|
If intErrorcode = 16 Then Errorstring = "MBUS_SMS_ERR_BUILDCOMMDCB"
|
|
If intErrorcode = 17 Then Errorstring = "MBUS_SMS_ERR_SETCOMMSTATE"
|
|
If intErrorcode = 18 Then Errorstring = "MBUS_SMS_ERR_COMPORT_CANNOT_BE_CHANGED"
|
|
If intErrorcode = 19 Then Errorstring = "MBUS_SMS_ERR_CLOSEHANDLE"
|
|
If intErrorcode = 20 Then Errorstring = "MBUS_SMS_ERR_DELAYTIME_NO_BAUDRATE_SET"
|
|
If intErrorcode = 21 Then Errorstring = "MBUS_SMS_ERR_RECEIVE_BUFFER_TOO_SMALL"
|
|
If intErrorcode = 22 Then Errorstring = "MBUS_SMS_ERR_OPTO_ON"
|
|
If intErrorcode = 23 Then Errorstring = "MBUS_SMS_ERR_OPTO_OFF"
|
|
If intErrorcode = 24 Then Errorstring = "MBUS_SMS_ERR_OPTO_ERROR1"
|
|
If intErrorcode = 25 Then Errorstring = "MBUS_SMS_ERR_VARDEF_FILE_NOT_FOUND"
|
|
If intErrorcode = 26 Then Errorstring = "MBUS_SMS_ERR_CANNOT_LOAD_FILE"
|
|
If intErrorcode = 27 Then Errorstring = "MBUS_SMS_ERR_VARDEF_FILE_FIELD_COUNT_LOW"
|
|
If intErrorcode = 28 Then Errorstring = "MBUS_SMS_ERR_VARDEF_INVALID_VARIABLE_TYPE"
|
|
If intErrorcode = 29 Then Errorstring = "MBUS_SMS_ERR_VARDEF_INVALID_ADDRESS"
|
|
If intErrorcode = 30 Then Errorstring = "MBUS_SMS_ERR_VARDEF_INVALID_LENGTH"
|
|
If intErrorcode = 31 Then Errorstring = "MBUS_SMS_ERR_UNKNOWN_VARIABLE"
|
|
If intErrorcode = 32 Then Errorstring = "MBUS_SMS_ERR_RECEIVE_TELEGRAM_ERROR"
|
|
If intErrorcode = 33 Then Errorstring = "MBUS_SMS_ERR_VARIABLE_NOT_IN_CRC_SECTION"
|
|
If intErrorcode = 34 Then Errorstring = "MBUS_SMS_ERR_INVALID_CRC_SECTION_NAME"
|
|
If intErrorcode = 35 Then Errorstring = "MBUS_SMS_ERR_CRC_SECTION_INVALID_CHECKSUM"
|
|
If intErrorcode = 36 Then Errorstring = "MBUS_SMS_ERR_RESOURCE_ACCESS_ERROR"
|
|
If intErrorcode = 4095 Then Errorstring = "MBUS_SMS_ERR_UNKNOWN_ERROR"
|
|
End Function
|
|
|
|
|
|
Public Function WriteValueOhneWdh(ByRef Varname As String, ByVal value As Variant) As Long
|
|
Dim valbyte8 As Byte
|
|
Dim valint16 As Integer
|
|
Dim vallong32 As Long
|
|
Dim valdouble As Double
|
|
Dim valsingle As Single
|
|
|
|
Varname = LCase(Varname)
|
|
|
|
If Left(Varname, 2) = "u8" Then
|
|
valbyte8 = value
|
|
WriteValueOhneWdh = write_Byte(Varname, valbyte8)
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "u16" Then
|
|
If value > MAXINT_2 Then
|
|
valint16 = value - OFFSET_2
|
|
Else
|
|
valint16 = value
|
|
End If
|
|
|
|
WriteValueOhneWdh = write_Word(Varname, valint16)
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "u32" Then
|
|
If value > MAXINT_4 Then
|
|
vallong32 = value - OFFSET_4
|
|
Else
|
|
vallong32 = value
|
|
End If
|
|
|
|
WriteValueOhneWdh = write_ULong(Varname, vallong32)
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "i16" Then
|
|
valint16 = value
|
|
WriteValueOhneWdh = write_Word(Varname, valint16)
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "i32" Then
|
|
vallong32 = value
|
|
WriteValueOhneWdh = write_ULong(Varname, vallong32)
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 2) = "f_" And IsNumeric(value) Then
|
|
valsingle = CSng(value)
|
|
WriteValueOhneWdh = write_Float(Varname, valsingle)
|
|
Exit Function
|
|
End If
|
|
Exit Function:
|
|
Errorhandler:
|
|
WriteToLog "Fehler " & Err.Number & " in WriteValueOhneWdh('" & Varname & "') : " & Err.Description
|
|
End Function
|
|
|
|
|
|
' neu RH 23.11.2016
|
|
' Wrapper für ReadValue, der diesen Befehl bis zu 3 mal wiederholt, wenn es einen Fehler d.h. einen Rückgabewert <> 0 gibt
|
|
Public Function ReadValue(ByRef Varname As String, ByRef value As Variant) As Integer
|
|
Dim intWdh As Integer
|
|
Dim strMsg As String
|
|
On Error GoTo Errorhandler
|
|
strMsg = ""
|
|
intWdh = 0
|
|
Do
|
|
ReadValue = ReadValueOhneWdh(Varname, value)
|
|
If ReadValue <> 0 Then
|
|
strMsg = "ReadValue(" & Varname & ") Fehler " & ReadValue & "=" & Errorstring(ReadValue) & ", Wdh=" & intWdh & "/3"
|
|
End If
|
|
intWdh = intWdh + 1
|
|
Loop While ReadValue <> 0 And intWdh <= 3
|
|
If strMsg <> "" Then
|
|
LogIntoDB strMsg, "FW2"
|
|
End If
|
|
Exit Function
|
|
Errorhandler:
|
|
LogIntoDB "Fehler " & Err.Number & " in ReadValue(" & Varname & "): " & Err.Description, "FW2"
|
|
End Function
|
|
|
|
' neu RH 23.11.2016
|
|
' Wrapper für WriteValue, der diesen Befehl bis zu 3 mal wiederholt, wenn es einen Fehler, d.h. einen Rückgabewert <> 0 gibt
|
|
Public Function WriteValue(ByRef Varname As String, ByRef value As Variant) As Integer
|
|
Dim intWdh As Integer
|
|
Dim strMsg As String
|
|
On Error GoTo Errorhandler
|
|
strMsg = ""
|
|
intWdh = 0
|
|
Do
|
|
WriteValue = WriteValueOhneWdh(Varname, value)
|
|
If WriteValue <> 0 Then
|
|
strMsg = "WriteValue(" & Varname & "," & value & ") Fehler " & WriteValue & "=" & Errorstring(WriteValue) & ", Wdh=" & intWdh & "/3"
|
|
End If
|
|
intWdh = intWdh + 1
|
|
Loop While WriteValue <> 0 And intWdh <= 3
|
|
|
|
If strMsg <> "" Then
|
|
LogIntoDB strMsg, "FW2"
|
|
End If
|
|
Exit Function
|
|
Errorhandler:
|
|
LogIntoDB "Fehler " & Err.Number & " in WriteValue(" & Varname & ",...): " & Err.Description, "FW2"
|
|
End Function
|
|
|
|
|
|
|
|
' Lese eine FW2 Variable, Verzweigung in die typabhängigen Lesefunktionen je nach Variablentyp
|
|
' Rückgabewert -1 wenn Typ nicht bekannt
|
|
' sonst Rückgabewert = Rückgabewert aus Lesefunktion
|
|
Public Function ReadValueOhneWdh(ByRef Varname As String, ByRef value As Variant) As Integer
|
|
On Error GoTo Errorhandler
|
|
|
|
Dim errorcode As Long
|
|
|
|
Dim valbyte8 As Byte
|
|
Dim valint16 As Integer
|
|
Dim vallong32 As Long
|
|
Dim valdouble As Double
|
|
Dim valsingle As Single
|
|
|
|
Varname = LCase(Varname)
|
|
valbyte8 = 0
|
|
|
|
If Left(Varname, 2) = "u8" Then
|
|
ReadValueOhneWdh = read_Byte(Varname, valbyte8)
|
|
value = valbyte8
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "u16" Then
|
|
ReadValueOhneWdh = read_Word(Varname, valint16)
|
|
If valint16 < 0 Then
|
|
value = valint16 + OFFSET_2
|
|
Else
|
|
value = valint16
|
|
End If
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "u32" Then
|
|
ReadValueOhneWdh = read_ULong(Varname, vallong32)
|
|
If vallong32 < 0 Then
|
|
value = vallong32 + OFFSET_4
|
|
Else
|
|
value = vallong32
|
|
End If
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "i16" Then
|
|
ReadValueOhneWdh = read_Word(Varname, valint16)
|
|
value = valint16
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 3) = "i32" Then
|
|
ReadValueOhneWdh = read_ULong(Varname, vallong32)
|
|
value = vallong32
|
|
Exit Function
|
|
End If
|
|
|
|
If Left(Varname, 2) = "f_" Then
|
|
' single weil (read_Float Lib "MBUS_SMS.dll") auch single zurück gibt
|
|
ReadValueOhneWdh = read_Float(Varname, valsingle)
|
|
value = valsingle
|
|
Exit Function
|
|
End If
|
|
|
|
ReadValueOhneWdh = -1
|
|
WriteToLog "Unbekannter Typ der Variablen " & Varname
|
|
LogIntoDB "Unbekannter Typ der Variablen " & Varname, "FW2"
|
|
Exit Function
|
|
Errorhandler:
|
|
WriteToLog "Fehler " & Err.Number & " in ReadValueOhneWdh('" & Varname & "') : " & Err.Description
|
|
End Function
|
|
|
|
'UINT32 ReadValue(Char * varname, Float * value)
|
|
'{
|
|
'
|
|
' UINT32 errorcode=0;
|
|
' UINT8 val1=0;
|
|
' UINT16 val2=0;
|
|
' UINT32 val3=0;
|
|
' INT32 val5=0;
|
|
' float val4=0;
|
|
'
|
|
'
|
|
' wartezeit(DELAY_COM);
|
|
'
|
|
'
|
|
' if (strnicmp(varname,"U8",2)==0)
|
|
' {
|
|
' errorcode=pRead_Byte(varname,&val1);
|
|
' *value=(float) val1;
|
|
' return(errorcode);
|
|
' }
|
|
'
|
|
' if (strnicmp(varname,"U1",2)==0)
|
|
' {
|
|
' errorcode=pRead_Word(varname,&val2);
|
|
' *value=(float) val2;
|
|
' return(errorcode);
|
|
' }
|
|
'
|
|
' if (strnicmp(varname,"U3",2)==0)
|
|
' {
|
|
' errorcode=pRead_ULong(varname,&val3);
|
|
' *value=(float) val3;
|
|
' return(errorcode);
|
|
' }
|
|
'
|
|
' if (strnicmp(varname,"I1",2)==0)
|
|
' {
|
|
' errorcode=pRead_Word(varname,&val5);
|
|
' *value=(float) val5;
|
|
' return(errorcode);
|
|
' }
|
|
'
|
|
'
|
|
' if (strnicmp(varname,"I3",2)==0)
|
|
' {
|
|
' errorcode=pRead_ULong(varname,&val3);
|
|
' *value=(float) val3;
|
|
' return(errorcode);
|
|
' }
|
|
'
|
|
' if (strnicmp(varname,"F_",2)==0)
|
|
' {
|
|
' errorcode=pRead_Float(varname,&val4);
|
|
' *value =val4;
|
|
' return(errorcode);
|
|
' }
|
|
' return(errorcode);
|
|
'}
|
|
'
|
|
|
|
|
|
|
|
|
|
|
|
Public Function ScanPort(ByVal intPortNr As Integer) As Long
|
|
ScanPort = modMBUS_SMS.fw2_open_comport(intPortNr, 1, "", True)
|
|
If ScanPort > 0 Then
|
|
Exit Function
|
|
End If
|
|
|
|
ScanPort = modMBUS_SMS.SND_NKE()
|
|
|
|
If ScanPort <> 0 Then
|
|
Debug.Print "ScanPort Fehler " & ScanPort
|
|
Else
|
|
Debug.Print "ScanPort SND_NKE OK"
|
|
End If
|
|
|
|
IECCOM_CloseCom
|
|
End Function
|
|
|
|
Public Function SendNKE(intPortNr As Integer) As Integer
|
|
SendNKE = modMBUS_SMS.fw2_open_comport(intPortNr, 1, "", True)
|
|
If SendNKE <> 0 Then
|
|
Exit Function
|
|
End If
|
|
SendNKE = modMBUS_SMS.SND_NKE
|
|
Call IECCOM_CloseCom
|
|
End Function
|
|
|
|
Public Function GetFWGeneration(ByVal intPortNr As Integer, ByRef strFWGeneration As String) As Long
|
|
Dim sBuffer As String
|
|
|
|
GetFWGeneration = modMBUS_SMS.fw2_open_comport(intPortNr, 1, "", True)
|
|
If GetFWGeneration > 0 Then
|
|
Exit Function
|
|
End If
|
|
|
|
sBuffer = Space(250)
|
|
|
|
|
|
GetFWGeneration = modMBUS_SMS.REQ_UD2(sBuffer)
|
|
|
|
|
|
If GetFWGeneration = MBUS_SMS_ERR_OK Then
|
|
sBuffer = Trim(sBuffer)
|
|
|
|
' Debug.Print "000000000111111111122222222223"
|
|
' Debug.Print "123456789012345678901234567890"
|
|
' Debug.Print sBuffer
|
|
If Len(Trim(sBuffer)) > 1 Then
|
|
strFWGeneration = Mid(sBuffer, 13, 2)
|
|
Else
|
|
strFWGeneration = ""
|
|
End If
|
|
Else
|
|
Debug.Print modMBUS_SMS.Errorstring(CInt(GetFWGeneration))
|
|
End If
|
|
|
|
Call IECCOM_CloseCom
|
|
End Function
|
|
|
|
|
|
'
|
|
'/**
|
|
' -------------------------------------------------------------------------------
|
|
'
|
|
' @fn CloseComPort
|
|
'
|
|
' @brief schliessen der Schnittstelle am Ende oder beim Umschalten
|
|
'
|
|
' @return Fehlercode
|
|
'
|
|
' -------------------------------------------------------------------------------
|
|
' **/
|
|
'
|
|
'int close_comport(void)
|
|
'{
|
|
' return(pIECCOM_CloseCom());
|
|
'}
|
|
'
|
|
|
|
|
|
'static int open_comport(UINT portnr, UINT baudrate, UINT opto, char * mapfile)
|
|
Public Function fw2_open_comport(intPortNr As Integer, intBaudrate As Integer, strMapfile As String, Optional blnMitOptoHeader As Boolean = True, Optional kommunikations_repeats As Integer = 3) As Integer
|
|
On Error GoTo Errorhandler
|
|
Dim iReturncode As Integer
|
|
|
|
' int returncode=0;
|
|
' UINT16 bd=19200;
|
|
'
|
|
' // Display Taste muss für Opto einmal gedrückt werden
|
|
'
|
|
' optoAktiv=FALSE;
|
|
|
|
gblnOptoAktiv = False
|
|
|
|
' if(opto && Testsystem)
|
|
' pressDisplayTaste( 1, 500); // Display Taste muss für Opto einmal gedrückt werden
|
|
|
|
|
|
' pInit_MBUS_SMS();
|
|
Call Init_MBUS_SMS
|
|
|
|
' pSetDebugView(TRUE);
|
|
Call SetDebugView(True)
|
|
|
|
' pSetAutoInit(0);
|
|
Call SetAutoInit(0)
|
|
|
|
' if(!MapFileLoaded)
|
|
' {
|
|
' returncode=pLoadVarDef(MapFilePCE);
|
|
' MapFileLoaded=TRUE;
|
|
' if (returncode > 0)
|
|
' return returncode;
|
|
'
|
|
' }
|
|
|
|
If strMapfile <> "" Then
|
|
iReturncode = LoadVarDef(strMapfile)
|
|
gblnMapfileLoaded = True
|
|
If iReturncode <> 0 Then
|
|
fw2_open_comport = iReturncode
|
|
WriteToLog "Fehlercode LoadVarDef(" & strMapfile & ")=" & iReturncode
|
|
Exit Function
|
|
End If
|
|
End If
|
|
|
|
' returncode=pIECCOM_InitCom2(portnr, baudrate, 8, 2, 0);
|
|
' if (returncode > 0) return returncode;
|
|
|
|
' UINT ComPort; // Comport: 1=Com1, 2=Com2...
|
|
' UINT BaudRate; // Baudrate: 1....57600
|
|
' UINT ByteSize; // Datenbits 4-8
|
|
' UINT Parity; // Parity 0-4=none,odd,even,mark,space
|
|
' UINT StopBits; // StopBits 0,1,2 =1,1.5,2
|
|
|
|
' Folgendes geht nicht, aber wieso? Es gibt immer eine lange Wartezeit von 110 Sekunden und Reserve = 1245187
|
|
' DebugView bringt uns auch nicht weiter
|
|
'iReturncode = IECCOM_InitCom2(CInt(intPortNr) And 255, intBaudrate And 65535, 8, 2, 0)
|
|
|
|
' also wird nun Baudrate als Konstante codiert
|
|
iReturncode = IECCOM_InitCom2(CInt(intPortNr) And 255, 2400, 8, 2, 0)
|
|
|
|
If iReturncode > 0 Then
|
|
fw2_open_comport = iReturncode
|
|
WriteToLog "Fehlercode IECCOM_InitCom2(" & intPortNr & " and 255,2400,8,2,0)=" & iReturncode & ": " & Errorstring(iReturncode)
|
|
Exit Function
|
|
End If
|
|
|
|
|
|
' returncode= pIECCOM_InitSchicht2_2(0xFE, 50,600, kommunikations_repeats);
|
|
' if (returncode > 0) return returncode;
|
|
|
|
iReturncode = IECCOM_InitSchicht2_2(&HFE, 50, 600, kommunikations_repeats)
|
|
If (iReturncode > 0) Then
|
|
fw2_open_comport = iReturncode
|
|
WriteToLog "Fehlercode IECCOM_InitSchicht2_2(&HFE, 50, 600, " & kommunikations_repeats & ")=" & iReturncode
|
|
Exit Function
|
|
End If
|
|
|
|
|
|
' if(opto)
|
|
' {
|
|
' pIECCOM_SetKopfOn(800);
|
|
' pIECCOM_SwitchOpto(2); // OptoHeader über IECCOM
|
|
' pIECCOM_SelectOptoHeader(1);
|
|
' // pIECCOM_SendOptoHeader(); // macht die IEECOM32.DLL
|
|
' wartezeit(100);
|
|
' optoAktiv=TRUE;
|
|
'
|
|
' }
|
|
|
|
If blnMitOptoHeader Then
|
|
'Call IECCOM_SetKopfOn(800)
|
|
Call IECCOM_SwitchOpto(2)
|
|
Call IECCOM_SelectOptoHeader(1)
|
|
Sleep 100, False
|
|
gblnOptoAktiv = True
|
|
End If
|
|
|
|
' ist hier sowieso noch 0 sonst wär die Function schon früher beendet worden
|
|
fw2_open_comport = iReturncode
|
|
|
|
If (iReturncode > 0) Then
|
|
fw2_open_comport = iReturncode
|
|
WriteToLog "Fehlercode fw2_open_comport=" & iReturncode
|
|
Exit Function
|
|
End If
|
|
|
|
Exit Function
|
|
Errorhandler:
|
|
fw2_open_comport = Err.Number
|
|
g_strErrorDesc = Err.Description
|
|
End Function
|
|
|
|
|
|
|
|
Public Function GetNowaVolume(ByRef dblResult As Double) As Long
|
|
Dim lngReturn As Long
|
|
Dim strResult As String
|
|
Dim bytScaling As Byte
|
|
|
|
GetNowaVolume = read_Byte("u8_scaling", bytScaling)
|
|
If lngReturn <> 0 Then
|
|
GetNowaVolume = lngReturn
|
|
Exit Function
|
|
Else
|
|
Dim sngWert As Single
|
|
|
|
lngReturn = read_Float("f_nowa_volume", sngWert)
|
|
dblResult = CDbl(sngWert)
|
|
|
|
GetNowaVolume = lngReturn
|
|
If lngReturn = 0 Then
|
|
Select Case bytScaling
|
|
Case 0:
|
|
Case 1: dblResult = dblResult * 10
|
|
Case 2: dblResult = dblResult * 100
|
|
Case 3: dblResult = dblResult * 1000
|
|
Case Else
|
|
GetNowaVolume = -80 ' unkbown scaling
|
|
Exit Function
|
|
End Select
|
|
End If
|
|
End If
|
|
|
|
End Function
|
|
|
|
|
|
Public Function WarteAufOpto(EinbauplatzNr As Integer, Optional parenForm As Form) As Boolean
|
|
Dim objForm As frmUSFW2WarteAufOpto
|
|
Set objForm = New frmUSFW2WarteAufOpto
|
|
objForm.m_COMPort = Val(g_App.Settings.getUSComPort(EinbauplatzNr))
|
|
If objForm.m_COMPort > 0 Then
|
|
objForm.mstrText = "Keine Verbindung zum Rechenwerk an Einbauplatz " & EinbauplatzNr & ". Bitte roten Knopf drücken!"
|
|
objForm.m_iEinbauplatzNr = EinbauplatzNr
|
|
objForm.Show vbModal, parenForm
|
|
WarteAufOpto = objForm.mbln_Erfolg
|
|
End If
|
|
End Function
|
|
|
|
|
|
|
|
'Public Function FW2_ReadMemory(intPortNr As Integer) As Long
|
|
' FW2_ReadMemory = modMBUS_SMS.fw2_open_comport(intPortNr, 1, "", True)
|
|
' If FW2_ReadMemory <> MBUS_SMS_ERR_OK Then
|
|
' Exit Function
|
|
' End If
|
|
'
|
|
' Dim lngbufferlen As Long
|
|
' Dim ret As Integer
|
|
' Dim strBuffer As String
|
|
' Dim i As Long
|
|
'
|
|
' ret = read_EEPROM(0, 255, strBuffer, lngbufferlen)
|
|
' Debug.Print strBuffer
|
|
'
|
|
' Call IECCOM_CloseCom
|
|
'End Function
|