⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 接口应用于实时数据的接入
💻 CPP
字号:

#include <windows.h>
#include <vector>
#include "../source.h"
#include "./xdps/XdpsApi30.h"

struct S_MapInfo {
	char	tag[128];
	int		id;
};

int main(int argc, char *argv[])
{
	C_Source source;
	if (!source.connect())
		return -1;

	vector<C_Source::iteminfo> itemList;
	source.paraInfoList(itemList);
	vector<S_MapInfo>	analogMapList;
	vector<S_MapInfo>	statusMapList;

	if (InitDatabase() != 0)
	{
		source.critical("无法正常初始化xdps接口");
		return -1;
	}
	
	int count = itemList.size();
	source.infoEx("para count = %d", count);
	cout << "para count = " << count << endl;
	S_MapInfo mapInfo;

	for (int i=0; i<count; ++i)
	{
		if (itemList[i].type == 0)		// 模拟量
		{
			mapInfo.id = GetAnalogPointID(itemList[i].tag);
			if (mapInfo.id >= 0)
			{
				cout << "tag = " << mapInfo.tag << endl;
				strcpy(mapInfo.tag, itemList[i].tag);
				analogMapList.push_back(mapInfo);
			}
		}
		else if (itemList[i].type == 16)
		{
			mapInfo.id = GetDigitalPointID(itemList[i].tag);
			if (mapInfo.id >= 0)
			{
				cout << "tag = " << mapInfo.tag << endl;
				strcpy(mapInfo.tag, itemList[i].tag);
				statusMapList.push_back(mapInfo);
			}
		}
	}

	while (true)
	{
		if (GetDogRunningStatus() != 2)
		{
			source.critical("请检查加密狗设置...");
			cout << "请检查加密狗设置..." << endl;
			Sleep(60000);
			continue;
		}
		int i;
		char strVal[32];

		cout << "开始处理模拟量" << endl;
		// 处理模拟量
		SAnalogPoint analogPoint;
		int analogCount = analogMapList.size();
		for (i=0; i<analogCount; ++i)
		{
			if (GetAnalogPoint(analogMapList[i].id, &analogPoint))
			{
				sprintf(strVal, "%.3f", analogPoint.fValue);
				source.sendData(analogMapList[i].tag, strVal);
			}
		}

		cout << "开始处理状态量" << endl;
		// 处理状态量
		SDigitalPoint digitalPoint;
		int statusCount = statusMapList.size();
		for (i=0; i<statusCount; ++i)
		{
			if (GetDigitalPoint(statusMapList[i].id, &digitalPoint))
			{
				sprintf(strVal, "%d", digitalPoint.wStatus);
				source.sendData(statusMapList[i].tag, strVal);
			}
		}
		Sleep(3000);
	}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -