📄 dgc.c
字号:
#include "stadx.h"
#include "gcontrol.h"
#include "gcalculate.h"
#include "netsend.h"
#include "gconfig.h"
#include <stdio.h>
#include <stdlib.h>
DIUCONFIG config;
FUART uartconf;
BYTE MAC[50] = {"0B-102394-225"};
BYTE key[16] = { 0X07,0X01,0X00,0X00,
0X00,0X00,0X00,0X1A,
0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00
};
VOID Dispose()
{
gconfig_Free(&config);
gcol_Dispose();
lcdClose();
}
Boolean Init()
{
UINT32 remoteHost;
UINT32 port = 8010;
CHAR* syscfgFile = "/mnt/druconf.cfg";
CHAR* calculateCfgFile = "";
CHAR* tankvolumeCfgFile = "/mnt/tnkvlmconf.cfg";
//读取采集器配置
DBG_MSG("reading sys configuation..\n");
if(gconfig_Init(syscfgFile, &config) == False)
return False;
gconfig_Print(&config);
if(gconfig_Config(&config, GROUPS, GRP_MAX_NUM, TAGS, TAG_MAX_NUM, OUTTAGS, OUTTAG_MAX_NUM) == False)
return False;
gconfig_Free(&config);
DBG_MSG("configuring finished\n");
//读取计算参数配置
DBG_MSG("reading calculation configuations..\n");
if( gcal_init(calculateCfgFile, tankvolumeCfgFile) == False)
return False;
DBG_MSG("configuring finished\n");
//初始化采集设备
DBG_MSG("starting uart..\n");
uartconf.pbUartName = "/dev/ttyS1";
uartconf.n16OpenMode = O_RDWR | O_NOCTTY | O_NONBLOCK;
uartconf.n16C_cflag = B9600 | CS8 | CLOCAL | CREAD;
uartconf.N16C_iflag = IGNPAR;
uartconf.n16C_oflag = 0;
uartconf.N16C_lflag = 0; // ICANON, 设定输入模式 (非标准型, 不回应,...)
uartconf.n16Vtime = 5; // 不使用分割字节计时器
uartconf.N16Vvmin = 1; // 在读取到 1 个字节前先停止
if(gcol_Init( &uartconf ) == False)
{
return False;
}
DBG_MSG("uart init ok\n");
//初始化数据发送
DBG_MSG("opening socket..\n");
memcpy (&remoteHost, config.bRemote_IP, sizeof(remoteHost));
DBG_MSG3("remote: %s %d\n", inet_ntoa(remoteHost), port);
if(nsend_Init(MAC, inet_ntoa(remoteHost), port, config.u32BAH, key) == False)
{
return False;
}
DBG_MSG("socket init ok\n");
//初始化LCD
DBG_MSG("opening LCD..\n");
if(lcdInit() == False)
{
return False;
}
DBG_MSG("LCD init ok\n");
return True;
}
VOID Collecting()
{
FTagGroup* pGroup;
REGINT groupIndex = 0;
CHAR* version = "3.0";
DBG_MSG2("version %s\n", version);
print("正在初始化.\n");
if( !Init() )
{
print("初始化失败,退出\n");
return;
}
DBG_MSG2("version %s\n", version);
while(1)
{
lcdprint(LCD_MSG_WAIT_INSTRU, "正在等待仪表空闲...\n");
if( gcol_WaitForInured() == True )
{
pGroup = &GROUPS[groupIndex];
DBG_MSG2("tank %s\n", pGroup->GrpName);
lcdprint(LCD_MSG_READ_INSTRU, "正在读取仪表参数...\n");
gcol_GatherGrp( pGroup );
groupIndex ++;
if(groupIndex >= config.u16GroupNum) {groupIndex=0;}
gcol_Halt();
lcdprint(LCD_MSG_CACULATE, "正在计算...\n");
gcal_calculate( pGroup );
lcdprint(LCD_MSG_SENT_TO_NET, "正在向网络发送...\n");
if( nsend_SendGrp( pGroup ) )
{
print("发送成功.\n");
}
else
{
print("发送失败.\n");
}
}
}
}
void main()
{
Collecting();
Dispose();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -