Initial commit 6

This commit is contained in:
Rowlander 2021-10-01 11:15:26 +02:00
parent b8f8210e77
commit 5c4777fa54
209 changed files with 70841 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,91 @@
/*************************************************************************
***
*** Rocksoft 16 Bit CRC Algorithmen: Routinenpaket
***
*** Autor: cd
***
*** Datum Version Anmerkungen
*** ------------------------------------------------------------------
*** 24.09.03 0.01 Start
***
**************************************************************************/
/* CRC LOOKUP TABLE */
/* ================ */
/* The following CRC lookup table was generated automagically */
/* by the Rocksoft^tm Model CRC Algorithm Table Generation */
/* Program V1.0 using the following model parameters: */
/* */
/* Width : 2 bytes. */
/* Poly : 0x8005 */
/* Reverse : TRUE. */
/* */
/* For more information on the Rocksoft^tm Model CRC Algorithm, */
/* see the document titled "A Painless Guide to CRC Error */
/* Detection Algorithms" by Ross Williams */
/* (ross@guest.adelaide.edu.au.). This document is likely to be */
/* in the FTP archive "ftp.adelaide.edu.au/pub/rocksoft". */
#include "StdAfx.h"
#include "MBUS_SMS.h"
#define INIT 0x0000
#define XOROUT 0xffff
static const UINT16 crctable[256] =
{
0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040
};
/*************************************************************************
***
*** UP: crc16_block
***
*** Autor: Rocksoft CRC package
***
*** Datum Version Anmerkungen
*** ------------------------------------------------------------------
*** 29.09.03 0.01 Start
***
**************************************************************************/
UINT16 CALLCONV crc16_block(UINT8 *blk_adr, int blk_len)
{
UINT16 crc = INIT;
while (blk_len--)
{
crc = crctable[((crc >> 12) ^ *blk_adr++) & 0x00FF] ^ (crc << 4);
}
return (crc ^XOROUT);
}

View File

@ -0,0 +1,16 @@
; CLW file contains information for the MFC ClassWizard
[General Info]
Version=1
ClassCount=1
Class1=CMBUS_SMSApp
LastClass=CMBUS_SMSApp
NewFileInclude2=#include "MBUS_SMS.h"
ResourceCount=0
NewFileInclude1=#include "stdafx.h"
[CLS:CMBUS_SMSApp]
Type=0
HeaderFile=MBUS_SMS.h
ImplementationFile=MBUS_SMS.cpp
Filter=N

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,128 @@
; MBUS_SMS.def : Declares the module parameters for the DLL.
LIBRARY "MBUS_SMS"
DESCRIPTION 'MBUS_SMS Windows Dynamic Link Library'
EXPORTS
Init_MBUS_SMS
SetDebugView
SetAutoInit
LoadVarDef
GetSMS_DLLVersion
Init_FW2
set_PrimAdr_Counter1
set_PrimAdr_Counter2
set_SecAdr_Counter1
set_SecAdr_Counter2
set_ParameterCounter1
set_ParameterCounter2
set_InitCounter1
set_InitCounter2
SND_NKE
REQ_UD2
application_reset
selection
deselection
select_baud
set_address
set_ID1
set_ID2
set_customer_loc
set_date_time
set_date_time_pw
set_password
set_fixed_date
set_credit_on
set_credit_off
show_display_level
jump_display_level
reset_maxima
reset_errortime
set_display
open
close
set_averaging_time
set_logger_intervall_time
set_tarif
set_tarif_time
set_cooling
select_telegram
set_counter_1_2
set_FZE_FZV
set_pulsmode
NOWA_start
NOWA_stop
do_test1
do_test2
do_test3
read_RAM
write_RAM
read_EEPROM
read_bigEEPROM
write_EEPROM
set_BonusMalusTarif
set_RomaniaTarif
set_CzechiaTarif
; ReadEastExtendedLogger
DefineEastExtendedLogger
GetEastExtendedLoggerConfig
read_Var
write_Var
get_var_size
get_var_adress
read_Byte
read_Word
read_ULong
read_Float
read_CP16
read_CP32
write_Byte
write_Word
write_ULong
write_Float
write_CP16
write_CP32
set_var_bits_Byte
set_var_bits_Word
check_section_crc
check_var_section_crc
recalc_section_crc
recalc_var_section_crc
recalc_section_crc2
recalc_var_section_crc2
IECCOM_InitCom
IECCOM_InitCom2
IECCOM_InitCom3
IECCOM_CloseCom
IECCOM_InitSchicht2
IECCOM_InitSchicht2_2
IECCOM_InitSchicht2_3
IECCOM_ZVEI_Direkt
IECCOM_Normalize
IECCOM_RequestData
IECCOM_TC176_Direkt
IECCOM_Get_Spy
IECCOM_Get_Bytes
IECCOM_OutputTrace
IECCOM_Index_Fehlertext
IECCOM_GetDLLVersion
IECCOM_delaytime
IECCOM_Bin_AsciiHex
IECCOM_SetKopfOn
IECCOM_SetKopfOff
IECCOM_SwitchOpto
IECCOM_SendOptoHeader
IECCOM_SelectOptoHeader
IECCOM_SetStLeitOff
IECCOM_GetCommHnd
crc16_block

View File

@ -0,0 +1,239 @@
# Microsoft Developer Studio Project File - Name="MBUS_SMS" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** NICHT BEARBEITEN **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=MBUS_SMS - Win32 Debug LabView
!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
!MESSAGE
!MESSAGE NMAKE /f "MBUS_SMS.mak".
!MESSAGE
!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
!MESSAGE
!MESSAGE NMAKE /f "MBUS_SMS.mak" CFG="MBUS_SMS - Win32 Debug LabView"
!MESSAGE
!MESSAGE Für die Konfiguration stehen zur Auswahl:
!MESSAGE
!MESSAGE "MBUS_SMS - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
!MESSAGE "MBUS_SMS - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
!MESSAGE "MBUS_SMS - Win32 Release LabView" (basierend auf "Win32 (x86) Dynamic-Link Library")
!MESSAGE "MBUS_SMS - Win32 Debug LabView" (basierend auf "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "MBUS_SMS - Win32 Release"
# PROP BASE Use_MFC 5
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "c:\programme\firmware2"
# PROP Intermediate_Dir "c:\programme\firmware2\tmp"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WINDLL" /YX"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 ..\ieccom32\release\ieccom32.lib /nologo /subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "MBUS_SMS - Win32 Debug"
# PROP BASE Use_MFC 5
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WINDLL" /FR /YX"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\fw2_ieccom32\debug\fw2_ieccom32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "MBUS_SMS - Win32 Release LabView"
# PROP BASE Use_MFC 5
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "MBUS_SMS___Win32_Release_LabView"
# PROP BASE Intermediate_Dir "MBUS_SMS___Win32_Release_LabView"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_LabView"
# PROP Intermediate_Dir "Release_LabView"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /YX"stdafx.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /D "LABVIEW" /YX"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 ..\ieccom32\release\ieccom32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 ..\ieccom32\release\ieccom32.lib /nologo /subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "MBUS_SMS - Win32 Debug LabView"
# PROP BASE Use_MFC 5
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "MBUS_SMS___Win32_Debug_LabView"
# PROP BASE Intermediate_Dir "MBUS_SMS___Win32_Debug_LabView"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_LabView"
# PROP Intermediate_Dir "Debug_LabView"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /FR /YX"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /D "LABVIEW" /FR /YX"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 ..\ieccom32\debug\ieccom32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\fw2_ieccom32\debug\fw2_ieccom32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "MBUS_SMS - Win32 Release"
# Name "MBUS_SMS - Win32 Debug"
# Name "MBUS_SMS - Win32 Release LabView"
# Name "MBUS_SMS - Win32 Debug LabView"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\CRC.cpp
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS.cpp
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS.def
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS.rc
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS_IECCOM.CPP
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# Begin Source File
SOURCE=.\StringArrayEx.cpp
# End Source File
# Begin Source File
SOURCE=.\StringEx.cpp
# End Source File
# Begin Source File
SOURCE=.\Tools.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\MapEx.h
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS.h
# End Source File
# Begin Source File
SOURCE=.\MBUS_SMS_Intern.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# Begin Source File
SOURCE=.\StringArrayEx.h
# End Source File
# Begin Source File
SOURCE=.\StringEx.h
# End Source File
# Begin Source File
SOURCE=.\Tools.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\res\MBUS_SMS.rc2
# End Source File
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project

View File

@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "MBUS_SMS"=.\MBUS_SMS.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@ -0,0 +1,417 @@
// MBUS_SMS.h : main header file for the MBUS_SMS DLL
//
#if !defined(AFX_MBUS_SMS_H__9DACFBA8_105A_436F_89F8_F66437A101F8__INCLUDED_)
#define AFX_MBUS_SMS_H__9DACFBA8_105A_436F_89F8_F66437A101F8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
//#include "resource.h" // main symbols
#pragma pack(push)
#pragma pack(1)
#define MBUS_SMS_ERR_OK 0x0000
#define MBUS_SMS_ERR_PORT_NOT_INITIALIZED 0x0001
#define MBUS_SMS_ERR_WRITECOMM_ERROR 0x0002
#define MBUS_SMS_ERR_TIMEOUT 0x0003
#define MBUS_SMS_ERR_PROT_CHECKSUM_ERROR 0x0004
#define MBUS_SMS_ERR_ECHO_ONLY 0x0005
#define MBUS_SMS_ERR_NO_ECHO 0x0006
#define MBUS_SMS_ERR_ASCIIHEX_TO_BIN_CONV_ERROR 0x0007
#define MBUS_SMS_ERR_ASSIGNMENT_CFIELD_CIFIELD 0x0008
#define MBUS_SMS_ERR_NO_RECEIVED_DATA_ASSIGNMENT 0x0009
#define MBUS_SMS_ERR_WRITECOMM_ABOVE_1024_CHARS 0x000A
#define MBUS_SMS_ERR_READCOMM_ABOVE_1024_CHARS 0x000B
#define MBUS_SMS_ERR_SETCOMMSTATE_SET_BAUDRATE 0x000C
#define MBUS_SMS_ERR_A_FIELD_TX_RX_DIFFERENCE 0x000D
#define MBUS_SMS_ERR_C_FIELD_VALUE_INVALID 0x000E
#define MBUS_SMS_ERR_OPENCOMM 0x000F
#define MBUS_SMS_ERR_BUILDCOMMDCB 0x0010
#define MBUS_SMS_ERR_SETCOMMSTATE 0x0011
#define MBUS_SMS_ERR_COMPORT_CANNOT_BE_CHANGED 0x0012
#define MBUS_SMS_ERR_CLOSEHANDLE 0x0013
#define MBUS_SMS_ERR_DELAYTIME_NO_BAUDRATE_SET 0x0014
#define MBUS_SMS_ERR_RECEIVE_BUFFER_TOO_SMALL 0x0015
#define MBUS_SMS_ERR_OPTO_ON 0x0016
#define MBUS_SMS_ERR_OPTO_OFF 0x0017
#define MBUS_SMS_ERR_OPTO_ERROR1 0x0018
#define MBUS_SMS_ERR_VARDEF_FILE_NOT_FOUND 0x0019
#define MBUS_SMS_ERR_CANNOT_LOAD_FILE 0x001A
#define MBUS_SMS_ERR_VARDEF_FILE_FIELD_COUNT_LOW 0x001B
#define MBUS_SMS_ERR_VARDEF_INVALID_VARIABLE_TYPE 0x001C
#define MBUS_SMS_ERR_VARDEF_INVALID_ADDRESS 0x001D
#define MBUS_SMS_ERR_VARDEF_INVALID_LENGTH 0x001E
#define MBUS_SMS_ERR_UNKNOWN_VARIABLE 0x001F
#define MBUS_SMS_ERR_RECEIVE_TELEGRAM_ERROR 0x0020
#define MBUS_SMS_ERR_VARIABLE_NOT_IN_CRC_SECTION 0x0021
#define MBUS_SMS_ERR_INVALID_CRC_SECTION_NAME 0x0022
#define MBUS_SMS_ERR_CRC_SECTION_INVALID_CHECKSUM 0x0023
#define MBUS_SMS_ERR_RESOURCE_ACCESS_ERROR 0x0024
#define MBUS_SMS_ERR_UNKNOWN_ERROR 0x0FFF
#define MBUS_SMS_BAUDRATE_300 0xB8
#define MBUS_SMS_BAUDRATE_2400 0xBB
#define MBUS_SMS_TEST1_ID_LCD_ON 0xE1
#define MBUS_SMS_TEST1_ID_LCD_OFF 0xE3
#define MBUS_SMS_TEST1_ID_FZV_FZE 0xE0
#define MBUS_SMS_TEST1_ID_SELFTEST 0xE2
#define MBUS_SMS_TEST1_ID_TEST_CS 0xE8
#define MBUS_SMS_TEST1_ID_COPY_RAM_EEPROM 0xEA
#define MBUS_SMS_TEST1_ID_START_FLOW_SIMU 0xDC
#define MBUS_SMS_TEST1_ID_STOP_FLOW_SIMU 0xDD
#define MBUS_SMS_TEST2_ID_ADC 0xD0
#define MBUS_SMS_TEST2_ID_ENERGY 0xD6
#define MBUS_SMS_TEST2_ID_US 0xDA
#define MBUS_SMS_AUTO_INIT_OFF 0x00
#define MBUS_SMS_AUTO_INIT_IEC 0x01
#define MBUS_SMS_AUTO_INIT_IEC_SCHICHT2 0x02
typedef long MBUS_SMS_Status;
typedef BYTE QUADBYTE[4];
typedef QUADBYTE Selection_ID;
typedef BYTE DISPLAYBUF[12];
typedef BYTE TESTBUFFER[50];
typedef BYTE Baudrate_ID;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
#ifdef LABVIEW
#define CALLCONV
#else
#define CALLCONV __stdcall
#endif
extern "C"
{
void CALLCONV Init_MBUS_SMS();
void CALLCONV SetDebugView(BOOL on);
void CALLCONV SetAutoInit(BYTE autoinit);
MBUS_SMS_Status CALLCONV LoadVarDef(LPCSTR filename);
MBUS_SMS_Status CALLCONV GetSMS_DLLVersion(LPTSTR version);
////////////////////////////////////////////////////////
MBUS_SMS_Status CALLCONV SND_NKE();
MBUS_SMS_Status CALLCONV REQ_UD2(LPSTR receive_buffer);
MBUS_SMS_Status CALLCONV application_reset();
MBUS_SMS_Status CALLCONV selection(Selection_ID id, WORD man, BYTE gen, BYTE med);
MBUS_SMS_Status CALLCONV deselection();
MBUS_SMS_Status CALLCONV select_baud(Baudrate_ID baudrate);
MBUS_SMS_Status CALLCONV set_address(BYTE address);
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_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_password(QUADBYTE pw);
MBUS_SMS_Status CALLCONV set_fixed_date(USHORT date);
MBUS_SMS_Status CALLCONV set_credit_on();
MBUS_SMS_Status CALLCONV set_credit_off();
MBUS_SMS_Status CALLCONV show_display_level(BYTE levelN);
MBUS_SMS_Status CALLCONV jump_display_level(BYTE userlevel,BYTE position);
MBUS_SMS_Status CALLCONV reset_maxima();
MBUS_SMS_Status CALLCONV reset_errortime();
MBUS_SMS_Status CALLCONV set_display(DISPLAYBUF displaybuf);
MBUS_SMS_Status CALLCONV open();
MBUS_SMS_Status CALLCONV close();
MBUS_SMS_Status CALLCONV set_averaging_time(BYTE min1, BYTE min2);
MBUS_SMS_Status CALLCONV set_logger_intervall_time(WORD minuten);
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_cooling(float TV, float delta_T);
MBUS_SMS_Status CALLCONV select_telegram(BYTE type);
// alte Telegramme für externe Wasserzähler
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_1(UINT bcd_value);
MBUS_SMS_Status CALLCONV set_counter_2(UINT bcd_value);
// neues Telegramm für Initialisierungen über FW2
MBUS_SMS_Status CALLCONV Init_FW2(BYTE cmd);
// neue Telegramme für externe Wasserzähler
MBUS_SMS_Status CALLCONV set_PrimAdr_Counter1(BYTE adress);
MBUS_SMS_Status CALLCONV set_PrimAdr_Counter2(BYTE adress);
MBUS_SMS_Status CALLCONV set_SecAdr_Counter1(QUADBYTE adress);
MBUS_SMS_Status CALLCONV set_SecAdr_Counter2(QUADBYTE adress);
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_InitCounter2(QUADBYTE value);
MBUS_SMS_Status CALLCONV set_InitCounter1(QUADBYTE value);
// ----------------------------------------------------------------
// neue Telegramme für PSE
MBUS_SMS_Status CALLCONV set_BonusMalusTarif(QUADBYTE password,BYTE OnOff, float temperature, BYTE powermode);
MBUS_SMS_Status CALLCONV set_RomaniaTarif(QUADBYTE password,UINT ReturnTemp, UINT DeltaT);
MBUS_SMS_Status CALLCONV set_CzechiaTarif(QUADBYTE password,DWORD Flow);
MBUS_SMS_Status CALLCONV ReadEastExtendedLogger(BYTE loggertype, WORD index, LPSTR receive_buffer, long buffer_size);
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 set_Batterie(BYTE Batterietype);
// ----------------------------------------------------------------
MBUS_SMS_Status CALLCONV set_FZE_FZV(BYTE type, float value);
MBUS_SMS_Status CALLCONV set_pulsmode(BYTE type, float val);
MBUS_SMS_Status CALLCONV NOWA_start();
MBUS_SMS_Status CALLCONV NOWA_stop();
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 read_RAM(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
MBUS_SMS_Status CALLCONV write_RAM(WORD address, LPSTR write_buffer, BYTE length);
MBUS_SMS_Status CALLCONV read_EEPROM(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
MBUS_SMS_Status CALLCONV read_bigEEPROM(DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
MBUS_SMS_Status CALLCONV write_EEPROM(WORD address, LPSTR write_buffer, BYTE length);
MBUS_SMS_Status CALLCONV read_Var(LPCSTR varname, LPSTR receive_buffer, long buffer_size);
MBUS_SMS_Status CALLCONV write_Var(LPCSTR varname, LPSTR write_buffer);
long CALLCONV get_var_size(LPCSTR varname);
long CALLCONV get_var_adress(LPCSTR varname);
MBUS_SMS_Status CALLCONV read_Byte(LPCSTR varname, BYTE *value);
MBUS_SMS_Status CALLCONV read_Word(LPCSTR varname, WORD *value);
MBUS_SMS_Status CALLCONV read_ULong(LPCSTR varname, ULONG *value);
MBUS_SMS_Status CALLCONV read_Float(LPCSTR varname, float *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 write_Byte(LPCSTR varname, BYTE value);
MBUS_SMS_Status CALLCONV write_Word(LPCSTR varname, WORD value);
MBUS_SMS_Status CALLCONV write_ULong(LPCSTR varname, ULONG value);
MBUS_SMS_Status CALLCONV write_Float(LPCSTR varname, float 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 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 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 recalc_section_crc(LPCSTR sectionname, WORD &crc_calced, WORD &crc_stored);
MBUS_SMS_Status CALLCONV recalc_var_section_crc(LPCSTR varname, WORD &crc_calced, WORD &crc_stored);
MBUS_SMS_Status CALLCONV recalc_section_crc2(LPCSTR sectionname);
MBUS_SMS_Status CALLCONV recalc_var_section_crc2(LPCSTR varname);
////////////////////////////////////////////////
UINT CALLCONV IECCOM_InitCom(LPCOMPARA lpComPara);
UINT CALLCONV IECCOM_InitCom2(UINT ComPort, UINT BaudRate, UINT ByteSize, UINT Parity, UINT StopBits);
UINT CALLCONV IECCOM_InitCom3();
UINT CALLCONV IECCOM_CloseCom();
UINT CALLCONV IECCOM_InitSchicht2(LPINITPARA lpInitPara, UINT repeat);
UINT CALLCONV IECCOM_InitSchicht2_2(BYTE A_Feld, BYTE Mode, UINT Timeout, UINT repeat);
UINT CALLCONV IECCOM_InitSchicht2_3();
UINT CALLCONV IECCOM_ZVEI_Direkt(LPSTR SendeDaten,UINT LenSendeDaten, LPSTR EmpfangsDaten,UINT *LenEmpfangsDaten);
UINT CALLCONV IECCOM_Normalize();
UINT CALLCONV IECCOM_RequestData(LPSTR EDaten);
UINT CALLCONV IECCOM_TC176_Direkt(LPSTR SendeDaten, UINT LenSendeDaten, LPSTR EmpfangsDaten, UINT *LenEmpfangsDaten);
UINT CALLCONV IECCOM_Get_Spy(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten);
UINT CALLCONV IECCOM_Get_Bytes(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten);
void CALLCONV IECCOM_OutputTrace(LPSTR Text);
UINT CALLCONV IECCOM_Index_Fehlertext(UINT Fehlernr, BYTE Low_or_High);
UINT CALLCONV IECCOM_GetDLLVersion(void);
void CALLCONV IECCOM_delaytime(UINT ms);
void CALLCONV IECCOM_Bin_AsciiHex(LPSTR binbuffer, UINT lenbinbuffer, LPSTR asciibuffer);
UINT CALLCONV IECCOM_SetKopfOn(UINT Timeout);
UINT CALLCONV IECCOM_SetKopfOff(void);
UINT CALLCONV IECCOM_SwitchOpto(UINT OptoFlag);
UINT CALLCONV IECCOM_SendOptoHeader(void);
UINT CALLCONV IECCOM_SetStLeitOff(void);
HANDLE CALLCONV IECCOM_GetCommHnd(void);
////////////////////////////////////////////////
UINT16 CALLCONV crc16_block(UINT8 *blk_adr, int blk_len);
}
typedef void (CALLBACK *lpInit_MBUS_SMS)();
typedef void (CALLBACK *lpSetDebugView)(BOOL on);
typedef void (CALLBACK *lpSetAutoInit)(BYTE autoinit);
typedef MBUS_SMS_Status (CALLBACK *lpGetSMS_DLLVersion)(LPTSTR version);
typedef MBUS_SMS_Status (CALLBACK *lpSND_NKE)();
typedef MBUS_SMS_Status (CALLBACK *lpREQ_UD2)(LPSTR receive_buffer);
typedef MBUS_SMS_Status (CALLBACK *lpapplication_reset)();
typedef MBUS_SMS_Status (CALLBACK *lpselection)(Selection_ID id, WORD man, BYTE gen, BYTE med);
typedef MBUS_SMS_Status (CALLBACK *lpdeselection)();
typedef MBUS_SMS_Status (CALLBACK *lpselect_baud)(Baudrate_ID baudrate);
typedef MBUS_SMS_Status (CALLBACK *lpset_address)(BYTE address);
typedef MBUS_SMS_Status (CALLBACK *lpset_ID1)(QUADBYTE SC);
typedef MBUS_SMS_Status (CALLBACK *lpset_ID2)(QUADBYTE SC, WORD man, BYTE gen, BYTE med);
typedef MBUS_SMS_Status (CALLBACK *lpset_customer_loc)(QUADBYTE NR);
typedef MBUS_SMS_Status (CALLBACK *lpset_date_time)(BYTE year, BYTE month, BYTE day, BYTE hour, BYTE minute);
typedef MBUS_SMS_Status (CALLBACK *lpset_date_time_pw)(BYTE year, BYTE month, BYTE day, BYTE hour, BYTE minute, QUADBYTE password);
typedef MBUS_SMS_Status (CALLBACK *lpset_password)(QUADBYTE pw);
typedef MBUS_SMS_Status (CALLBACK *lpset_fixed_date)(USHORT date);
typedef MBUS_SMS_Status (CALLBACK *lpset_credit_on)();
typedef MBUS_SMS_Status (CALLBACK *lpset_credit_off)();
typedef MBUS_SMS_Status (CALLCONV *lpshow_display_level)(BYTE levelN);
typedef MBUS_SMS_Status (CALLCONV *lpjump_display_level)(BYTE userlevel,BYTE position);
typedef MBUS_SMS_Status (CALLBACK *lpreset_maxima)();
typedef MBUS_SMS_Status (CALLBACK *lpreset_errortime)();
typedef MBUS_SMS_Status (CALLBACK *lpset_display)(DISPLAYBUF displaybuf);
typedef MBUS_SMS_Status (CALLBACK *lpopen)();
typedef MBUS_SMS_Status (CALLBACK *lpclose)();
typedef MBUS_SMS_Status (CALLBACK *lpset_averaging_time)(BYTE min1, BYTE min2);
typedef MBUS_SMS_Status (CALLBACK *lpset_logger_intervall_time)(WORD minuten);
typedef MBUS_SMS_Status (CALLBACK *lpset_tarif)(BYTE mode, float value);
typedef MBUS_SMS_Status (CALLBACK *lpset_tarif_time)(WORD var1, WORD var2);
typedef MBUS_SMS_Status (CALLBACK *lpset_cooling)(float TV, float delta_T);
typedef MBUS_SMS_Status (CALLBACK *lpselect_telegram)(BYTE type);
typedef MBUS_SMS_Status (CALLBACK *lpset_counter_1_2)(QUADBYTE ID1, BYTE VIF1, float value1, QUADBYTE ID2, BYTE VIF2, float value2);
typedef MBUS_SMS_Status (CALLBACK *lpset_counter_1)(UINT bcd_value);
typedef MBUS_SMS_Status (CALLBACK *lpset_counter_2)(UINT bcd_value);
// neues Telegramm für Initialisierungen über FW2
typedef MBUS_SMS_Status (CALLBACK *lpInit_FW2)(BYTE cmd);
// neue Telegramme für externe Wasserzähler
typedef MBUS_SMS_Status (CALLBACK *lpset_PrimAdr_Counter1)(BYTE adress);
typedef MBUS_SMS_Status (CALLBACK *lpset_PrimAdr_Counter2)(BYTE adress);
typedef MBUS_SMS_Status (CALLBACK *lpset_SecAdr_Counter1)(QUADBYTE adress);
typedef MBUS_SMS_Status (CALLBACK *lpset_SecAdr_Counter2)(QUADBYTE adress);
typedef MBUS_SMS_Status (CALLBACK *lpset_ParameterCounter1)(QUADBYTE fabnr,QUADBYTE index, BYTE medium, BYTE scaling ,float value);
typedef MBUS_SMS_Status (CALLBACK *lpset_ParameterCounter2)(QUADBYTE fabnr,QUADBYTE index, BYTE medium, BYTE scaling ,float value);
typedef MBUS_SMS_Status (CALLBACK *lpset_InitCounter2)(QUADBYTE value);
typedef MBUS_SMS_Status (CALLBACK *lpset_InitCounter1)(QUADBYTE value);
// ----------------------------------------------------------------
// neue Telegramme für PSE
typedef MBUS_SMS_Status (CALLBACK *lpset_BonusMalusTarif)(QUADBYTE password,BYTE OnOff, float temperature, BYTE powermode);
typedef MBUS_SMS_Status (CALLBACK *lpset_BonusMalusTarif)(QUADBYTE password,BYTE OnOff, float temperature, BYTE powermode);
typedef MBUS_SMS_Status (CALLBACK *lpset_RomaniaTarif)(QUADBYTE password,UINT ReturnTemp, UINT DeltaT);
typedef MBUS_SMS_Status (CALLBACK *lpset_CzechiaTarif)(QUADBYTE password,DWORD Flow);
typedef MBUS_SMS_Status (CALLBACK *lpReadEastExtendedLogger)(BYTE loggertype, WORD index, LPSTR receive_buffer, long buffer_size);
typedef MBUS_SMS_Status (CALLBACK *lpDefineEastExtendedLogger)(BYTE loggertype, BYTE packageflag);
typedef MBUS_SMS_Status (CALLBACK *lpGetEastExtendedLoggerConfig)(BYTE loggertype, BYTE *type, WORD *Index, BYTE *size, BYTE *config,WORD *LastBlockNr);
typedef MBUS_SMS_Status (CALLBACK *lpset_Batterie)(BYTE Batterietype);
// ----------------------------------------------------------------
typedef MBUS_SMS_Status (CALLBACK *lpset_FZE_FZV)(BYTE type, float value);
typedef MBUS_SMS_Status (CALLBACK *lpset_pulsmode)(BYTE type, float val);
typedef MBUS_SMS_Status (CALLBACK *lpNOWA_start)();
typedef MBUS_SMS_Status (CALLBACK *lpNOWA_stop)();
typedef MBUS_SMS_Status (CALLBACK *lpdo_test1)(BYTE test);
typedef MBUS_SMS_Status (CALLBACK *lpdo_test2)(BYTE test, BYTE index);
typedef MBUS_SMS_Status (CALLBACK *lpdo_test3)(BYTE test, BYTE para1, BYTE para2);
typedef MBUS_SMS_Status (CALLBACK *lpread_RAM)(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_RAM)(WORD address, LPSTR write_buffer, BYTE length);
typedef MBUS_SMS_Status (CALLBACK *lpread_EEPROM)(WORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
typedef MBUS_SMS_Status (CALLBACK *lpread_bigEEPROM)(DWORD address, BYTE length, LPSTR receive_buffer, long buffer_size);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_EEPROM)(WORD address, LPSTR write_buffer, BYTE length);
typedef MBUS_SMS_Status (CALLBACK *lpread_Var)(LPCSTR varname, LPSTR receive_buffer, long buffer_size);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_Var)(LPCSTR varname, LPSTR write_buffer);
typedef long (CALLBACK *lpget_var_size)(LPCSTR varname);
typedef long (CALLBACK *lpget_var_adress)(LPCSTR varname);
typedef MBUS_SMS_Status (CALLBACK *lpread_Byte)(LPCSTR varname, BYTE *value);
typedef MBUS_SMS_Status (CALLBACK *lpread_Word)(LPCSTR varname, WORD *value);
typedef MBUS_SMS_Status (CALLBACK *lpread_ULong)(LPCSTR varname, ULONG *value);
typedef MBUS_SMS_Status (CALLBACK *lpread_Float)(LPCSTR varname, float *value);
typedef MBUS_SMS_Status (CALLBACK *lpread_CP16)(LPCSTR varname, LPSTR value);
typedef MBUS_SMS_Status (CALLBACK *lpread_CP32)(LPCSTR varname, LPSTR value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_Byte)(LPCSTR varname, BYTE value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_Word)(LPCSTR varname, WORD value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_ULong)(LPCSTR varname, ULONG value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_Float)(LPCSTR varname, float value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_CP16)(LPCSTR varname, LPSTR value);
typedef MBUS_SMS_Status (CALLBACK *lpwrite_CP32)(LPCSTR varname, LPSTR value);
typedef MBUS_SMS_Status (CALLBACK *lpcheck_section_crc)(LPCSTR sectionname, WORD &crc_calced, WORD &crc_stored);
typedef MBUS_SMS_Status (CALLBACK *lpcheck_var_section_crc)(LPCSTR varname, WORD &crc_calced, WORD &crc_stored);
typedef MBUS_SMS_Status (CALLBACK *lprecalc_section_crc)(LPCSTR sectionname, WORD &crc_calced, WORD &crc_stored);
typedef MBUS_SMS_Status (CALLBACK *lprecalc_var_section_crc)(LPCSTR varname, WORD &crc_calced, WORD &crc_stored);
typedef MBUS_SMS_Status (CALLBACK *lprecalc_section_crc2)(LPCSTR sectionname);
typedef MBUS_SMS_Status (CALLBACK *lprecalc_var_section_crc2)(LPCSTR varname);
////////////////////////////////////////////////
typedef UINT (CALLBACK *lpIECCOM_InitCom)(LPCOMPARA lpComPara);
typedef UINT (CALLBACK *lpIECCOM_InitCom2)(UINT ComPort, UINT BaudRate, UINT ByteSize, UINT Parity, UINT StopBits);
typedef UINT (CALLBACK *lpIECCOM_InitCom3)();
typedef UINT (CALLBACK *lpIECCOM_CloseCom)();
typedef UINT (CALLBACK *lpIECCOM_InitSchicht2)(LPINITPARA lpInitPara, UINT repeat);
typedef UINT (CALLBACK *lpIECCOM_InitSchicht2_2)(BYTE A_Feld, BYTE Mode, UINT Timeout, UINT repeat);
typedef UINT (CALLBACK *lpIECCOM_InitSchicht2_3)();
typedef UINT (CALLBACK *lpIECCOM_ZVEI_Direkt)(LPSTR SendeDaten,UINT LenSendeDaten, LPSTR EmpfangsDaten,UINT *LenEmpfangsDaten);
typedef UINT (CALLBACK *lpIECCOM_Normalize)();
typedef UINT (CALLBACK *lpIECCOM_RequestData)(LPSTR EDaten);
typedef UINT (CALLBACK *lpIECCOM_TC176_Direkt)(LPSTR SendeDaten, UINT LenSendeDaten, LPSTR EmpfangsDaten, UINT *LenEmpfangsDaten);
typedef UINT (CALLBACK *lpIECCOM_Get_Spy)(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten);
typedef UINT (CALLBACK *lpIECCOM_Get_Bytes)(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten);
typedef void (CALLBACK *lpIECCOM_OutputTrace)(LPSTR Text);
typedef UINT (CALLBACK *lpIECCOM_Index_Fehlertext)(UINT Fehlernr, BYTE Low_or_High);
typedef UINT (CALLBACK *lpIECCOM_GetDLLVersion)(void);
typedef void (CALLBACK *lpIECCOM_delaytime)(UINT ms);
typedef void (CALLBACK *lpIECCOM_Bin_AsciiHex)(LPSTR binbuffer, UINT lenbinbuffer, LPSTR asciibuffer);
typedef UINT (CALLBACK *lpIECCOM_SetKopfOn)(UINT Timeout);
typedef UINT (CALLBACK *lpIECCOM_SetKopfOff)(void);
typedef UINT (CALLBACK *lpIECCOM_SwitchOpto)(UINT OptoFlag);
typedef UINT (CALLBACK *lpIECCOM_SendOptoHeader)(void);
typedef UINT (CALLBACK *lpIECCOM_SelectOptoHeader)(UINT SetBaudFlag);
typedef UINT (CALLBACK *lpIECCOM_SetStLeitOff)(void);
typedef HANDLE (CALLBACK *lpIECCOM_GetCommHnd)(void);
typedef UINT16 (CALLBACK *lpcrc16_block)(UINT8 *blk_adr, int blk_len);
/////////////////////////////////////////////////////////////////////////////
#pragma pack(pop)
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MBUS_SMS_H__9DACFBA8_105A_436F_89F8_F66437A101F8__INCLUDED_)

View File

@ -0,0 +1,42 @@
<html>
<body>
<pre>
<h1>Erstellungsprotokoll</h1>
<h3>
--------------------Konfiguration: MBUS_SMS - Win32 Debug--------------------
</h3>
<h3>Befehlszeilen</h3>
Erstellen der temporären Datei "C:\DOKUME~1\apfeiffe\LOKALE~1\Temp\RSP31D.tmp" mit Inhalten
[
/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WINDLL" /FR"debug/" /Fp"debug/MBUS_SMS.pch" /YX"stdafx.h" /Fo"debug/" /Fd"debug/" /FD /GZ /c
"C:\MBUS-DLL\MBUS_SMS\MBUS_SMS.cpp"
]
Creating command line "cl.exe @C:\DOKUME~1\apfeiffe\LOKALE~1\Temp\RSP31D.tmp"
Erstellen der temporären Datei "C:\DOKUME~1\apfeiffe\LOKALE~1\Temp\RSP31E.tmp" mit Inhalten
[
..\fw2_ieccom32\debug\fw2_ieccom32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"debug/MBUS_SMS.pdb" /debug /machine:I386 /def:".\MBUS_SMS.def" /out:"debug/MBUS_SMS.dll" /implib:"debug/MBUS_SMS.lib" /pdbtype:sept
".\debug\CRC.obj"
".\debug\MBUS_SMS.obj"
".\debug\MBUS_SMS_IECCOM.OBJ"
".\debug\StdAfx.obj"
".\debug\StringArrayEx.obj"
".\debug\StringEx.obj"
".\debug\Tools.obj"
".\debug\MBUS_SMS.res"
]
Erstellen der Befehlzeile "link.exe @C:\DOKUME~1\apfeiffe\LOKALE~1\Temp\RSP31E.tmp"
<h3>Ausgabefenster</h3>
Kompilierung läuft...
MBUS_SMS.cpp
Linker-Vorgang läuft...
Erstellen der Befehlzeile "bscmake.exe /nologo /o"debug/MBUS_SMS.bsc" ".\debug\StdAfx.sbr" ".\debug\CRC.sbr" ".\debug\MBUS_SMS.sbr" ".\debug\MBUS_SMS_IECCOM.SBR" ".\debug\StringArrayEx.sbr" ".\debug\StringEx.sbr" ".\debug\Tools.sbr""
Browse-Informationsdatei wird erstellt...
<h3>Ausgabefenster</h3>
<h3>Ergebnisse</h3>
MBUS_SMS.dll - 0 Fehler, 0 Warnung(en)
</pre>
</body>
</html>

View File

@ -0,0 +1,148 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Deutsch (Deutschland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 7, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif //_WIN32\r\n"
"#include ""res\\MBUS_SMS.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""l.deu\\afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,3,0,0
PRODUCTVERSION 1,3,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040704b0"
BEGIN
VALUE "Comments", "Release FW2 with virtual counters\0"
VALUE "CompanyName", "konplan gmbh mannheim\0"
VALUE "FileDescription", "MBUS_SMS DLL\0"
VALUE "FileVersion", "1, 3, 0, 0\0"
VALUE "InternalName", "MBUS_SMS\0"
VALUE "LegalCopyright", "Copyright (C) 2007\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "MBUS_SMS.DLL\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "MBUS_SMS Dynamic Link Library\0"
VALUE "ProductVersion", "1, 3, 0, 0\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x407, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLS_STR2ULONG_WRONGCHARACTER "Invalid character"
IDS_TOOLS_STR2ULONG_HEXVALUETOOLARGE "Hex value to large"
IDS_TOOLS_STR2ULONG_DECVALUETOOLARGE "Decimal value to large"
IDS_STRINGARRAYEX_CANNOTOPENFILE "Cannot open file"
IDS_STRINGARRAYEX_CANNOTCREATEFILE "Cannot create file"
END
#endif // Deutsch (Deutschland) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE 7, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\MBUS_SMS.rc2" // non-Microsoft Visual C++ edited resources
#include "l.deu\afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -0,0 +1,808 @@
#include "stdafx.h"
#include "..\fw2_ieccom32\fw2_iecdll.h"
#include <afxtempl.h>
#include "MapEx.h"
#include "MBUS_SMS.h"
#include "MBUS_SMS_Intern.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BOOL __debugview = TRUE;
static void __DebugOut(CString);
/************************************************************/
/* FUNCTION NAME: IECCOM_InitCom() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitCom(LPCOMPARA lpComPara)
{
INIT_MFC;
res = InitCom(lpComPara, Getsleer());
switch(res)
{
case 0:
port_para.BaudRate = lpComPara.BaudRate;
port_para.ByteSize = lpComPara.ByteSize;
port_para.ComPort = lpComPara.ComPort;
port_para.Parity = lpComPara.Parity;
port_para.StopBits = lpComPara.StopBits;
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_OPENCOMM;
case 2:
return MBUS_SMS_ERR_BUILDCOMMDCB;
case 4:
return MBUS_SMS_ERR_SETCOMMSTATE;
case 8:
return MBUS_SMS_ERR_COMPORT_CANNOT_BE_CHANGED;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_InitCom2() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitCom2(UINT ComPort, UINT BaudRate, UINT ByteSize, UINT Parity, UINT StopBits)
{
CString msg;
INIT_MFC;
COMPORTPARA portpara;
portpara.ComPort = ComPort;
portpara.BaudRate = BaudRate;
portpara.ByteSize = ByteSize;
portpara.Parity = Parity;
portpara.StopBits = StopBits;
if(__debugview)
{
msg.Format(_T("IECCOM_InitCom2: Scomport=%u, Baudrate=%u, Bytesize=%u, Parity=%u"),ComPort, BaudRate, ByteSize, Parity);
__DebugOut(msg);
}
return IECCOM_InitCom(portpara);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_InitCom3() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitCom3()
{
INIT_MFC;
return IECCOM_InitCom(port_para);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_CloseCom() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_CloseCom()
{
INIT_MFC;
res = CloseCom(Getsleer());
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_CLOSEHANDLE;
case 2:
return MBUS_SMS_ERR_SETCOMMSTATE;
case 3:
return MBUS_SMS_ERR_WRITECOMM_ERROR;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_InitSchicht2() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitSchicht2(LPINITPARA lpInitPara, UINT repeat)
{
INIT_MFC;
CString s_repeat;
s_repeat.Format(_T("%u"), repeat);
res = InitSchicht2(lpInitPara, s_repeat.GetBuffer(0));
switch(res)
{
case 0:
init_para.A_Feld = lpInitPara.A_Feld;
init_para.Mode = lpInitPara.Mode;
init_para.Timeout = lpInitPara.Timeout;
init_repeat = repeat;
return MBUS_SMS_ERR_OK;
case 256:
return MBUS_SMS_ERR_DELAYTIME_NO_BAUDRATE_SET;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_InitSchicht2_2() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitSchicht2_2(BYTE A_Feld, BYTE Mode, UINT Timeout, UINT repeat)
{
INIT_MFC;
INITSCHICHT2 initpara;
initpara.A_Feld = A_Feld;
initpara.Mode = Mode;
initpara.Timeout = Timeout;
return IECCOM_InitSchicht2(initpara, repeat);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_InitSchicht2_3() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_InitSchicht2_3()
{
INIT_MFC;
return IECCOM_InitSchicht2(init_para, init_repeat);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SendData() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SendData(UINT CI_Feld,LPSTR SDaten,UINT LenSDaten,LPSTR EDaten,LPSLAVEPARA lpSlavePara)
{
INIT_MFC;
res = SendData(CI_Feld, SDaten, LenSDaten, EDaten, lpSlavePara, Getsleer());
return GetSendDataStatus(res);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_ZVEI_Direkt() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_ZVEI_Direkt(LPSTR SendeDaten,UINT LenSendeDaten, LPSTR EmpfangsDaten,UINT *LenEmpfangsDaten)
{
INIT_MFC;
res = ZVEI_Direkt(SendeDaten, LenSendeDaten, EmpfangsDaten, LenEmpfangsDaten);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 2:
return MBUS_SMS_ERR_BUILDCOMMDCB;
case 3:
return MBUS_SMS_ERR_SETCOMMSTATE;
case 4:
return MBUS_SMS_ERR_WRITECOMM_ERROR;
case 5:
return MBUS_SMS_ERR_TIMEOUT;
case 6:
return MBUS_SMS_ERR_PROT_CHECKSUM_ERROR;
case 7:
return MBUS_SMS_ERR_ECHO_ONLY;
case 8:
return MBUS_SMS_ERR_NO_ECHO;
case 9:
return MBUS_SMS_ERR_RECEIVE_BUFFER_TOO_SMALL;
case 10:
return MBUS_SMS_ERR_WRITECOMM_ABOVE_1024_CHARS;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_Normalize() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_Normalize()
{
INIT_MFC;
return SND_NKE();
}
/************************************************************/
/* FUNCTION NAME: IECCOM_RequestData() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_RequestData(LPSTR EDaten)
{
INIT_MFC;
return REQ_UD2(EDaten);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_TC176_Direkt() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_TC176_Direkt(LPSTR SendeDaten, UINT LenSendeDaten, LPSTR EmpfangsDaten, UINT *LenEmpfangsDaten)
{
INIT_MFC;
res = TC176_Direkt(SendeDaten, LenSendeDaten, EmpfangsDaten, LenEmpfangsDaten);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 2:
return MBUS_SMS_ERR_WRITECOMM_ERROR;
case 3:
return MBUS_SMS_ERR_TIMEOUT;
case 4:
return MBUS_SMS_ERR_PROT_CHECKSUM_ERROR;
case 5:
return MBUS_SMS_ERR_ECHO_ONLY;
case 6:
return MBUS_SMS_ERR_NO_ECHO;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_Get_Spy() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_Get_Spy(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten)
{
INIT_MFC;
res = Get_Spy(EmpfangsDaten, LenEmpfangsDaten);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 0x100:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 0x300:
return MBUS_SMS_ERR_TIMEOUT;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_Get_Bytes() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_Get_Bytes(LPSTR EmpfangsDaten, UINT LenEmpfangsDaten)
{
INIT_MFC;
res = Get_Bytes(EmpfangsDaten, LenEmpfangsDaten);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 0x100:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 0x300:
return MBUS_SMS_ERR_TIMEOUT;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_OutputTrace() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
void CALLCONV IECCOM_OutputTrace(LPSTR Text)
{
INIT_MFC;
OutputTrace(Text);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_Index_Fehlertext() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_Index_Fehlertext(UINT Fehlernr, BYTE Low_or_High)
{
INIT_MFC;
return Index_Fehlertext(Fehlernr, Low_or_High);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_GetDLLVersion() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_GetDLLVersion(void)
{
INIT_MFC;
return GetDLLVersion();
}
/************************************************************/
/* FUNCTION NAME: IECCOM_delaytime() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
void CALLCONV IECCOM_delaytime(UINT ms)
{
INIT_MFC;
delaytime(ms);
}
/************************************************************/
/* FUNCTION NAME: Asciihex_Bin() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_Asciihex_Bin(LPSTR asciistr, LPSTR binbuffer)
{
INIT_MFC;
return Asciihex_Bin(asciistr, binbuffer);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_Bin_AsciiHex() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
void CALLCONV IECCOM_Bin_AsciiHex(LPSTR binbuffer, UINT lenbinbuffer, LPSTR asciibuffer)
{
INIT_MFC;
Bin_AsciiHex(binbuffer, lenbinbuffer, asciibuffer);
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SetKopfOn() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SetKopfOn(UINT Timeout)
{
INIT_MFC;
res = SetKopfOn(Timeout);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 2:
return MBUS_SMS_ERR_SETCOMMSTATE;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SetKopfOff() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SetKopfOff(void)
{
INIT_MFC;
res = SetKopfOff();
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
case 2:
return MBUS_SMS_ERR_SETCOMMSTATE;
case 3:
return MBUS_SMS_ERR_WRITECOMM_ERROR;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SwitchOpto() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SwitchOpto(UINT OptoFlag)
{
INIT_MFC;
res = SwitchOpto(OptoFlag);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OPTO_OFF;
case 1:
return MBUS_SMS_ERR_OPTO_ON;
case 2:
return MBUS_SMS_ERR_SETCOMMSTATE;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SendOptoHeader() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SendOptoHeader(void)
{
INIT_MFC;
res = SendOptoHeader();
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_OPTO_ERROR1;
case 2:
return MBUS_SMS_ERR_SETCOMMSTATE;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SelectOptoHeader() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SelectOptoHeader(UINT SetBaudFlag)
{
INIT_MFC;
res = SelectOptoHeader(SetBaudFlag);
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_SetStLeitOff() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
UINT CALLCONV IECCOM_SetStLeitOff(void)
{
INIT_MFC;
res = SetStLeitOff();
switch(res)
{
case 0:
return MBUS_SMS_ERR_OK;
case 1:
return MBUS_SMS_ERR_PORT_NOT_INITIALIZED;
default:
return MBUS_SMS_ERR_UNKNOWN_ERROR;
}
}
/************************************************************/
/* FUNCTION NAME: IECCOM_GetCommHnd() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
HANDLE CALLCONV IECCOM_GetCommHnd(void)
{
INIT_MFC;
return GetCommHnd();
}
/************************************************************/
/* FUNCTION NAME: DebugOut() */
/* DESCRIPTION: */
/****************** USED GLOBAL, IO VARIABLES ***************/
/* Name Type Usage */
/* */
/************************************************************/
/* Changes: */
/* Date Author Description */
/* | | */
/************************************************************/
static void __DebugOut(CString txt)
{
if (!__debugview)
return;
int len;
TCHAR lc;
len = txt.GetLength();
if (len == 0)
return;
lc = txt.GetAt(len - 1);
if (lc != _T('\n'))
txt += _T('\n');
OutputDebugString(txt);
}

View File

@ -0,0 +1,39 @@
typedef enum
{
vt_RAM,
vt_EEPROM,
vt_bigEEPROM
} TVarMemType;
typedef struct
{
TVarMemType Type;
CString Name;
UINT Address;
BYTE Length;
CString CRCSection;
} TVarDef;
typedef struct
{
TVarMemType Type;
CString Name;
UINT StartAddress;
UINT Length;
UINT CRCAddress;
} TCRCDef;
typedef CMapEx<CString, LPCSTR, TVarDef, TVarDef&> CVarDefMap;
typedef CMapEx<CString, LPCSTR, TCRCDef, TCRCDef&> CCRCDefMap;
#define INIT_MFC AFX_MANAGE_STATE(AfxGetStaticModuleState());
extern UINT res;
extern COMPORTPARA port_para;
extern INITSCHICHT2 init_para;
extern UINT init_repeat;
LPTSTR Getsleer();
MBUS_SMS_Status GetSendDataStatus(UINT code);

View File

@ -0,0 +1,54 @@
/************************* CONSTANTS ************************/
#ifndef _MAPEX_H_
#define _MAPEX_H_
/*************************** TYPES **************************/
/************************ STRUCTURES ************************/
/********************* EXPORT VARIABLES *********************/
/**************** EXPORT FUNCTION PROTOTYPE *****************/
/********************* CLASS PROTOTYPES *********************/
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
class CMapEx : public CMap<KEY, ARG_KEY, VALUE, ARG_VALUE>
{
public:
CMapEx() {};
CMapEx(const CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE> &source);
void CopyFrom(const CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE> &source);
CMapEx* operator=( CMapEx const &source);
};
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE>::CMapEx(const CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE> &source)
{
CopyFrom(source);
}
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
void CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE>::CopyFrom(const CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE> &source)
{
POSITION pos;
KEY key;
VALUE val;
pos = source.GetStartPosition();
while (pos != NULL)
{
source.GetNextAssoc(pos, key, val);
this->SetAt(key, val);
}
}
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE>* CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE>::operator=( CMapEx<KEY, ARG_KEY, VALUE, ARG_VALUE> const &source)
{
this->RemoveAll();
this->CopyFrom(source);
return this;
}
#endif

View File

@ -0,0 +1,66 @@
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : MBUS_SMS
========================================================================
AppWizard has created this MBUS_SMS DLL for you. This DLL not only
demonstrates the basics of using the Microsoft Foundation classes but
is also a starting point for writing your DLL.
This file contains a summary of what you will find in each of the files that
make up your MBUS_SMS DLL.
MBUS_SMS.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
MBUS_SMS.h
This is the main header file for the DLL. It declares the
CMBUS_SMSApp class.
MBUS_SMS.cpp
This is the main DLL source file. It contains the class CMBUS_SMSApp.
MBUS_SMS.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
MBUS_SMS.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\MBUS_SMS.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
MBUS_SMS.def
This file contains information about the DLL that must be
provided to run with Microsoft Windows. It defines parameters
such as the name and description of the DLL. It also exports
functions from the DLL.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named MBUS_SMS.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

Some files were not shown because too many files have changed in this diff Show More