📄 test.bak
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "profdrv.h"
#define REGCNT 50
#define BITCNT 50
void main()
{
struct MDS_WORD_STRUCT regbuf[REGCNT]; //字变量缓冲区
struct MDS_BIT_STRUCT coilbuf[BITCNT]; //位变量缓冲区
unsigned short reglen;
unsigned short regnum;
unsigned short bitlen;
unsigned short bitnum;
unsigned short tmpbit;
char ch;
int modbus_sts;
unsigned short addr_flash;
unsigned short num_flash;
unsigned short count;
for (reglen=0; reglen<REGCNT;reglen++)
{
regbuf[reglen].rreg = reglen<<1+2;
regbuf[reglen].wreg = reglen<<1+2;
}
for (bitlen=0; bitlen<BITCNT;bitlen++)
{
coilbuf[bitlen].rcoil = 0;
coilbuf[bitlen].wcoil = 0;
}
MDS_Open(1, 1, 19200 ); //打开串口
MDS_SetRegisterBuf(regbuf, reglen); //设置字变量缓冲区
MDS_SetCoilBuf(coilbuf, bitlen); //设置位变量缓冲区
printf("\n start proface test! press 'q' exit! \n");
printf("\n w: set register ");
printf("\n e: set coil ");
printf("\n q: quit test\n");
for ( ; ; )
{
modbus_sts = MDS_CheckCommand(&addr_flash, &num_flash);//刷新、处理MODBUS通讯指令
//处理控制器写数据任务
if (kbhit())
{
ch = getch();
if ('q'==ch)
{
exit(0);
}else if ('w'==ch)
{
printf("\nset register number = ");
scanf("%d", ®num);
printf("\nset register value= ");
scanf("%d", ®buf[regnum].rreg);
printf("\nset register ok!");
}else if ('e'==ch)
{
printf("\nset coil number = ");
scanf("%d", ®num);
printf("\nset coil value= ");
scanf("%d", &tmpbit);
if (0==tmpbit)
{
coilbuf[regnum].rcoil = 0;
}else
{
coilbuf[regnum].rcoil = 1;
}
printf("\nset coil ok!");
}
}
//处理触摸屏写通讯任务
if (WRITE_WORD==modbus_sts)
{
printf ("\nchange registers first address = %d, number = %d", addr_flash, num_flash);
for (count=0;count<num_flash;++count)
{
printf ("\nchange register address = %d, value = %d", addr_flash+count, regbuf[addr_flash+count].wreg);
regbuf[addr_flash+count].rreg = regbuf[addr_flash+count].wreg;
}
}
if (WRITE_BIT==modbus_sts)
{
printf ("\nchange coil first address = %d, number = %d", addr_flash, num_flash);
for (count=0;count<num_flash;++count)
{
printf ("\nchange coil address = %d, value = %d", addr_flash+count, coilbuf[addr_flash+count].wcoil);
coilbuf[addr_flash+count].rcoil = coilbuf[addr_flash+count].wcoil;
}
}
}
//if (kbhit())
//{
//MDS_Close();
//exit(0);
//}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -