#include <stdio.h>
#include <stdlib.h>
#include "../../../../include/MXIO_V3_4500.h"
void CheckErr(
int ihConnection,
int iRet,
char *szFunctionName);
HMODULE g_hMXIO_V3_4500 = NULL;
int main(
int argc,
char *argv[])
{
char bytInputValue[64] = {'\0'};
char szIP[] = "192.168.127.253";
memset(&MxMACAddr, 0, sizeof(MxMACAddr));
char szMACAddr[18] = {'\0'};
int ihConnection = 0;
sprintf(AccountData.
szUserName,
"%s", (
char*)
"admin");
sprintf(AccountData.
szPwd,
"%s", (
char*)
"moxa");
char IPAddress[16] = {'\0'};
char szTempBuf[16] = {'\0'};
sprintf(IPAddress, "%s", szIP);
if (argc <= 1)
{
printf("Cmd Format: [IP Address] [Timeout] [TCP Port]\n");
strcpy(IPAddress, szIP);
}
if (argc > 1)
sprintf(IPAddress, "%s", argv[1]);
if (argc > 2)
dwTimeout = atoi(argv[2]);
if (argc > 3)
wPort = atoi(argv[3]);
printf("Input IP Address=%s, TimeOut=%d, TCP Port=%d\n", IPAddress, dwTimeout, wPort);
iRet =
MXCreateLibrary(&g_hMXIO_V3_4500, &g_pMXIO_V3_4500,
"MXIO_4500.dll");
printf("MXCreateLibrary() g_pMXIO_V3_4500=0x%p return %d(0x%X)\n", g_pMXIO_V3_4500, iRet, iRet);
{
printf("MXIO_Init() return %d(0x%X)\n", iRet, iRet);
}
{
sprintf(szMACAddr, "%02X-%02X-%02X-%02X-%02X-%02X",
printf("IP = %s, MAC = %s, Port=%d, Name=%s, Password=%s\n",
iRet = g_pMXIO_V3_4500->
MXIO_Connect(IPAddress, wPort, dwTimeout, &MxMACAddr, &AccountData, &ihConnection);
CheckErr(ihConnection, iRet, (
char*)
"MXIO_Connect");
}
{
printf("MXIO_Write(%d)\n", ihConnection);
CheckErr(ihConnection, iRet, (
char *)
"MXIO_Write");
}
if (0 != ihConnection)
{
CheckErr(ihConnection, iRet, (
char*)
"MXIO_Disconnect");
}
if (NULL != g_hMXIO_V3_4500)
{
printf("MXIO_Exit() return %d(0x%X)\n", iRet, iRet);
printf("MXDestroyLibrary() return %d(0x%X)\n", iRet, iRet);
}
return 0;
}
{
*phMXIO_V3_4500 = LoadLibrary(szLibName);
if (NULL == *phMXIO_V3_4500)
return (GetLastError());
if (NULL == pfnCreateMXIO_V3_4500)
return (-1);
*pMXIO_V3_4500 = pfnCreateMXIO_V3_4500();
return 0;
}
{
if (NULL == pfnDestroyMXIO_V3_4500)
return (GetLastError());
pfnDestroyMXIO_V3_4500(*pMXIO_V3_4500);
FreeLibrary(hMXIO_V3_4500);
*pMXIO_V3_4500 = NULL;
return 0;
}
{
system("pause");
}
void CheckErr(
int ihConnection,
int iRet,
char *szFunctionName)
{
char *szErrMsg = (char *)"MXIO_V3_OK";
{
switch (iRet)
{
szErrMsg = (char *)"MXIO_V3_ILLEGAL_FUNCTION";
break;
szErrMsg = (char *)"MXIO_V3_ILLEGAL_DATA_ADDRESS";
break;
szErrMsg = (char *)"MXIO_V3_ILLEGAL_DATA_VALUE";
break;
szErrMsg = (char *)"MXIO_V3_SLAVE_DEVICE_FAILURE";
break;
szErrMsg = (char *)"MXIO_V3_SLAVE_DEVICE_BUSY";
break;
szErrMsg = (char *)"MXIO_V3_EIO_TIME_OUT";
break;
szErrMsg = (char *)"MXIO_V3_EIO_INIT_SOCKETS_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_EIO_CREATING_SOCKET_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_EIO_RESPONSE_BAD";
break;
szErrMsg = (char *)"MXIO_V3_EIO_SOCKET_DISCONNECT";
break;
szErrMsg = (char *)"MXIO_V3_PROTOCOL_TYPE_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_PRODUCT_NOT_SUPPORT";
break;
szErrMsg = (char*)"MXIO_V3_HANDLE_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_SLOT_OUT_OF_RANGE";
break;
szErrMsg = (char *)"MXIO_V3_CHANNEL_OUT_OF_RANGE";
break;
szErrMsg = (char *)"MXIO_V3_COIL_TYPE_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_REGISTER_TYPE_ERROR";
break;
szErrMsg = (char*)"MXIO_V3_FUNCTION_NOT_SUPPORT";
break;
szErrMsg = (char *)"MXIO_V3_OUTPUT_VALUE_OUT_OF_RANGE";
break;
szErrMsg = (char *)"MXIO_V3_INPUT_VALUE_OUT_OF_RANGE";
break;
szErrMsg = (char *)"MXIO_V3_EIO_PASSWORD_INCORRECT";
break;
szErrMsg = (char *)"MXIO_V3_SLOT_NOT_EXIST";
break;
szErrMsg = (char *)"MXIO_V3_FIRMWARE_NOT_SUPPORT";
break;
szErrMsg = (char *)"MXIO_V3_CREATE_MUTEX_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_ERR_ENUM_NET_INTERFACE_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_ERR_SELECT_NET_INTERFACE_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_ERR_FUNCTION_NOT_SUPPORT";
break;
szErrMsg = (char *)"MXIO_V3_ERR_INVALID_HANDLE";
break;
szErrMsg = (char *)"MXIO_V3_ERR_BLOCK_QUANTITY";
break;
szErrMsg = (char *)"MXIO_V3_ERR_TOTAL_BLOCK_SIZE";
break;
szErrMsg = (char *)"MXIO_V3_ERR_REACH_MXIO_LIMIT_CONNECTION";
break;
szErrMsg = (char *)"MXIO_V3_ERR_PARSE_XML_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_ERR_ACCOUNT_VERIFY_FAIL";
break;
szErrMsg = (char *)"MXIO_V3_ERR_ACCOUNT_ACCESS_RIGHT";
break;
szErrMsg = (char *)"MXIO_V3_PARSING_DEVICE_NAME_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_PARSING_CHANNEL_NAME_ERROR";
break;
szErrMsg = (char *)"MXIO_V3_PARSING_INPUT_NAME_ERROR";
break;
default:
szErrMsg = (char *)"Unknown Error Value";
break;
}
printf("%d Function \"%s\" execution Fail.\nError Message : %s (%d(0x%X))\n",
ihConnection, szFunctionName, szErrMsg, iRet, iRet);
}
else
{
printf("%d Function \"%s\" execution Success\n", ihConnection, szFunctionName);
}
}
{
printf("CH[%d] = SUCCESS\n", iIndex);
printf("CH[%d] = ERROR_LOCKED\n", iIndex);
printf("CH[%d] = ERROR_READ_ONLY\n", iIndex);
printf("CH[%d] = ERROR_SUBTYPE\n", iIndex);
printf("CH[%d] = ERROR_DATA_TYPE\n", iIndex);
printf("CH[%d] = ERROR_DATA\n", iIndex);
printf("CH[%d] = ERROR_DISABLE\n", iIndex);
printf("CH[%d] = ERROR_BOOLEAN_ONLY\n", iIndex);
printf("CH[%d] = MXIO_V3_CH_ERR_WRITE_FAIL\n", iIndex);
else
printf("CH[%d] = Not defined error code= %d\n", iIndex, bytErrorCode);
}
{
if (pWriteImp)
{
{
{
}
}
else
}
}
{
printf("[%s] = BLOCK_ERR_SIZE\n", szName);
printf("[%s] = BLOCK_ERR_TYPE\n", szName);
printf("[%s] = BLOCK_ERR_SUBTYPE\n", szName);
printf("[%s] = BLOCK_ERR_FUNCTION\n", szName);
printf("[%s] = BLOCK_ERR_SLOT\n", szName);
printf("[%s] = BLOCK_ERR_START_CHANNEL\n", szName);
printf("[%s] = BLOCK_ERR_TOTAL_CHANNEL\n", szName);
else
printf("[%s] = Not defined error code= %d\n", szName, wErrorCode);
}
{
printf("%s = SUCCESS\n", pszName);
printf("%s = ERROR_LOCKED\n", pszName);
printf("%s = ERROR_READ_ONLY\n", pszName);
printf("%s = ERROR_SUBTYPE\n", pszName);
printf("%s = ERROR_DATA_TYPE\n", pszName);
printf("%s = ERROR_DATA\n", pszName);
printf("%s = ERROR_DISABLE\n", pszName);
printf("%s = ERROR_BOOLEAN_ONLY\n", pszName);
printf("%s = MXIO_V3_CH_ERR_WRITE_FAIL\n", pszName);
printf("%s = MXIO_V3_CH_ERR_PARSING_STR_FAIL\n", pszName);
else
printf("%s = Not defined error code(%d)\n", pszName, bytErrorCode);
}