📄 dido.c
字号:
#include <stdio.h>
//#include "SrvDepResource.h"
#include "Utility.h"
int main(int argc, char* argv[])
{
int iTemp, i;
TSERVER_INFO tServerInfo;
SCODE scRet;
char szInputBuf[4] = "";
DIDOSTATUS atDIDO[4];
TDIDONumber tDIDONumber;
memset(atDIDO, 0, sizeof(atDIDO));
memset(&tDIDONumber, 0, sizeof(tDIDONumber));
if (HandleBasicArgument(argc, argv, &tServerInfo) < 0)
return -1;
printf("To end this program, please press Enter directly.\n");
printf("Choose one operation\n(1) Get DI, (2) Set DO :");
szInputBuf[0] = 0;
if (fgets(szInputBuf, 3, stdin) == NULL)
{
printf("please input correct data\n");
return -1;
}
if (strlen(szInputBuf) > 0 && szInputBuf[strlen(szInputBuf) - 1] == '\n')
szInputBuf[strlen(szInputBuf) - 1] = 0;
if (szInputBuf[0] == 0)
{
printf("please input correct data\n");
return -1;
}
iTemp = atoi(szInputBuf);
if (iTemp < 1 || iTemp > 2)
{
printf("\nIndex out of range!\n\n");
return -1;
}
scRet = GetDI_SetDO(tServerInfo, atDIDO, TRUE, &tDIDONumber);//Get DI status
if (scRet != S_OK)
{
printf("get DI fail with error %X\n", scRet);
return scRet;
}
if (iTemp == 1)
{
printf("DI(s) =");
for (i = 0; i < tDIDONumber.iDINumber; i++)
{
if (i != 0)
printf(", ");
printf("%d(%s)", i + 1, atDIDO[i]==DIDO_HIGH?"H":"L");
}
printf("\n\n");
} else if (iTemp == 2)
{
memset(atDIDO, 0, sizeof(atDIDO));
i = 0; //dedault DO number is 1
if (tDIDONumber.iDONumber > 1)
{
printf("Which DO to set? (%d - %d or %d means all)",
0, tDIDONumber.iDONumber - 1, tDIDONumber.iDONumber);
szInputBuf[0] = 0;
if (fgets(szInputBuf, 3, stdin) == NULL)
{
printf("please input correct data\n");
return -1;
}
if (strlen(szInputBuf) > 0 && szInputBuf[strlen(szInputBuf) - 1] == '\n')
szInputBuf[strlen(szInputBuf) - 1] = 0;
i = atoi(szInputBuf);
if (i < 0 || i > tDIDONumber.iDONumber)
{
printf("Out of range!\n");
return -1;
}
}
printf("Value set to? (L or H)");
szInputBuf[0] = 0;
if (fgets(szInputBuf, 3, stdin) == NULL)
{
printf("please input correct data\n");
return -1;
}
if (strlen(szInputBuf) > 0 && szInputBuf[strlen(szInputBuf) - 1] == '\n')
szInputBuf[strlen(szInputBuf) - 1] = 0;
if (szInputBuf[0] == 0)
{
printf("please input correct data\n");
return -1;
}
if (i != tDIDONumber.iDONumber)
{
if (szInputBuf[0] == 'l' || szInputBuf[0] == 'L' || szInputBuf[0] == '0')
atDIDO[i] = DIDO_LOW;
else if (szInputBuf[0] == 'h' || szInputBuf[0] == 'H' || szInputBuf[0] == '1')
atDIDO[i] = DIDO_HIGH;
else
{
printf("Input value incorrect!\n");
return -1;
}
}
else
{
if (szInputBuf[0] == 'l' || szInputBuf[0] == 'L' || szInputBuf[0] == '0')
atDIDO[i-1] = DIDO_LOW;
else if (szInputBuf[0] == 'h' || szInputBuf[0] == 'H' || szInputBuf[0] == '1')
atDIDO[i-1] = DIDO_HIGH;
else
{
printf("Input value incorrect!\n");
return -1;
}
}
//atDIDO[1] = DIDO_NONE;
if (i == tDIDONumber.iDONumber)
{
int j = 0;
for (j; j < tDIDONumber.iDONumber && j != i; j++)
atDIDO[j] = atDIDO[i-1];
}
scRet = GetDI_SetDO(tServerInfo, atDIDO, FALSE, &tDIDONumber);
if (scRet == S_OK)
printf("set DO success\n");
else
printf("set DO fail with error %X\n", scRet);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -