#pragma once

#include <minwindef.h>
#include <vector>

struct DevSimple {
	unsigned char iIndex;
	unsigned char DevicePath[MAX_PATH];
	char DeviceID[64];
	unsigned char CH347IfNum;
	char ProductString[64];
	char ManufacturerString[64];
};

struct SetCommandArg {
	enum Command {
		SP_CMD_NA = 0,			// 无效命令
		SP_CMD_ZERO = 1,		// 参数归零
		SP_CMD_SAME_VALUE = 2,	// 同值配置
		SP_CMD_DIF_VALUE = 3	// 异值配置
	};

	enum Group {
		ALL = 0xAA,	// 整体归零
		AB = 0x00,	// A/B组归零
		OPA = 0x01,	// OPA组归零
		DAC = 0x02	// DAC组归零
	};

	Command cmd_;				// cmd 控制命令
	Group group_;				// group 分组
	int childGroup_;			// groupDet 子分组 group为0时，0/1代表对A/B操作；group为2时，代表操作编号为0~20的DAC
};

struct SetVotegeArg {
	std::vector<uint16_t> votes_;	// 同值设定只需要一个元素，异值设定需要256个元素
};
