848 lines
32 KiB
QBasic
848 lines
32 KiB
QBasic
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 <20>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<62>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<75>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<64>ckt werden
|
||
'
|
||
' optoAktiv=FALSE;
|
||
|
||
gblnOptoAktiv = False
|
||
|
||
' if(opto && Testsystem)
|
||
' pressDisplayTaste( 1, 500); // Display Taste muss f<>r Opto einmal gedr<64>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 <20>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<66>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<64>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
|