123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- #pragma once
- #include "windows.h"
- #include <string>
- #include "DiosPacket.h"
- using namespace std;
- const string g_TypeTag = "type";
- const string g_IPTag = "ip";
- const string g_PortTag = "port";
- const string g_thisType = "TCPIP";
- #define FPGA_IMAGE_WIDTH (3072)
- #define FPGA_IMAGE_HEIGHT (2560)
- #define FPGA_PREV_IMAGE_WIDTH (768)
- #define FPGA_PREV_IMAGE_HEIGHT (640)
- #define FPGA_IMAGE_BIT (16)
- const WORD g_PARAM_1 = 0x0FF0;
- const WORD g_PARAM_2 = 0x1FF0;
- const WORD g_PARAM_4 = 0x2FF0;
- const WORD g_PARAM_8 = 0x3FF0;
- const WORD g_PARAM_16 = 0x4FF0;
- const WORD g_PARAM_32 = 0x5FF0;
- const WORD g_PARAM_64 = 0x6FF0;
- const WORD g_PARAM_128 = 0x7FF0;
- const WORD g_PARAM_1U = 0x8FF0;
- const WORD g_PARAM_2U = 0x9FF0;
- const WORD g_PARAM_4U = 0xAFF0;
- const WORD g_PARAM_OBJECT = 0x4000;
- const WORD g_PARAM_FLEXABLE = 0x8000;
- const char g_LEN_1 = 0x0a;
- const WORD g_KEY_INDEX = 0x9FFE;
- const WORD g_KEY_XWINDOW_SIZE = 0x1022;
- const WORD g_KEY_FRAME_NUM = 0x0021;
- const WORD g_KEY_DCVLIST = 0x9FFD;
- const WORD g_KEY_UNITLIST = 0xDFF9;
- const WORD g_KEY_UNITTYPE = 0x0FF4;
- const WORD g_KEY_UNITRESOURCE = 0xDFF6;
- const WORD g_KEY_UNITACTIONS = 0x9FF5;
- const WORD g_KEY_WINDOWSTATE_NOTIFY = 0x001E;
- const WORD g_KEY_ACQSTATE_NOTIFY = 0x0020;
- const WORD g_KEY_IMAGE_INFO = 0xE00C;
- const WORD g_KEY_IMAGE_WIDTH = 0x100D;
- const WORD g_KEY_IMAGE_HEIGHT = 0x100E;
- const WORD g_KEY_IMAGE_BIT = 0x100F;
- const WORD g_KEY_IMAGE_DEADLINE_TOP = 0x1010;
- const WORD g_KEY_IMAGE_DEADLINE_LEFT = 0x1011;
- const WORD g_KEY_IMAGE_DEADLINE_RIGHT = 0x1012;
- const WORD g_KEY_IMAGE_DEADLINE_BOTTOM = 0x1013;
- const WORD g_KEY_IMAGE_TAG = 0x2014;
- const WORD g_KEY_IMAGE_INDEX = 0x2015;
- const WORD g_KEY_IMAGE_YEAR = 0x1016;
- const WORD g_KEY_IMAGE_MONTH = 0x0017;
- const WORD g_KEY_IMAGE_DAY = 0x0018;
- const WORD g_KEY_IMAGE_HOUR = 0x0019;
- const WORD g_KEY_IMAGE_MINUTE = 0x001A;
- const WORD g_KEY_IMAGE_SEC = 0x001B;
- const WORD g_KEY_IMAGE_MILLSEC = 0x101C;
- const WORD g_KEY_IMAGE_DATA = 0xA01D;
- const WORD g_KEY_FPGA_STATUS = 0x0002;
- const WORD g_KEY_FPGA_GAINMODE = 0x0005;
- const BYTE ACT_HANDSHAKE = 254;
- const BYTE ACT_GET = 253;
- const BYTE ACT_SET = 252;
- const BYTE ACT_DATA = 249;
- const BYTE ACT_OPEN = 248;
- const BYTE ACT_STARTACQ = 199;
- const BYTE ACT_STOPACQ = 198;
- const BYTE ACT_FETCH = 197;
- const BYTE ACT_WAKEUP = 0xF0;
- const BYTE ACT_SLEEP = 0xF1;
- const BYTE ACT_RESET = 0xF2;
- const BYTE ACT_POWEROFF = 0xF4;
- //DiosPacket DiosCommands;
- //DiosPacket DataPacket;
- typedef struct _IMAGE
- {
- _IMAGE() {
- Width = 0;
- Height = 0;
- Bit = 0;
- TopOffset = 0;
- LeftOffset = 0;
- RightOffset = 0;
- BottomOffset = 0;
- ImageTag = 0;
- ImageIndex = 0;
- Year = 0;
- Month = 0;
- Day = 0;
- Hour = 0;
- Minute = 0;
- Second = 0;
- MillonSecond = 0;
- pData = NULL;
- };
- ~_IMAGE() {
- };
- unsigned short Width;
- unsigned short Height;
- unsigned short Bit;
- unsigned short TopOffset;
- unsigned short LeftOffset;
- unsigned short RightOffset;
- unsigned short BottomOffset;
- unsigned long ImageTag;
- unsigned long ImageIndex;
- unsigned short Year;
- BYTE Month;
- BYTE Day;
- BYTE Hour;
- BYTE Minute;
- BYTE Second;
- unsigned short MillonSecond;
- char *pData;
- }IMAGE;
- typedef struct _FPGAInfo
- {
- string strVenderID;
- string ProductID;
- string DeviceSN;
- string Firmware;
- BYTE PixelSize;
- }FPGAInfo;
- enum eUnitType
- {
- Unit_Dev = 0,
- Unit_Sync,
- Unit_Acq,
- };
- enum eTarget
- {
- TAG_REQ = 0,
- TAG_RES,
- TAG_NOTIFY,
- };
- enum eResult
- {
- RES_OK = 0,
- RES_NG,
- RES_PAN,
- RES_TIMEOUT,
- RES_ERROR,
- };
- typedef enum eDeviceState
- {
- Dev_Init = 0,
- Dev_Standby,
- Dev_Acquire,
- Dev_Sleep,
- Dev_Error,
- Dev_Status_Max
- }FPGASTATUS;
- enum eFOV
- {
- FOV_0=0,
- FOV_1,
- FOV_2,
- FOV_3,
- FOV_4,
- FOV_5,
- FOV_6,
- FOV_7,
- FOV_8,
- FOV_9,
- FOV_10,
- };
- enum eBinning
- {
- Bin_0 = 0,
- Bin_1,
- Bin_2,
- Bin_3,
- Bin_4,
- Bin_5,
- Bin_6,
- Bin_7,
- Bin_8,
- Bin_9,
- Bin_10,
- };
- enum eWindowState
- {
- WINDOW_OFF = 0,
- WINDOW_ON,
- };
- enum eAcqState
- {
- ACQ_END = 0,
- ACQ_START,
- };
- enum eImgState
- {
- IMG_INVALID = 0,
- IMG_READY,
- };
- typedef enum _eDeviceType
- {
- DEV_PHY = 0,
- DEV_SEQ,
- DEV_ACQ,
- DEV_BATTERY,
- DEV_MAX
- }EDEVICETYPE;
- bool ProcessImageObject(RawPacketObject *pObj, IMAGE &Img);
- int Init();//初始化DiosPacket
- void EncodeCommand(DiosPacket &OutputCommand, BYTE PhyIndex, BYTE LogicIndex, int Target, BYTE Command);//打包函数
- void EncodeParameters(DiosPacket &OutputCommand, const char *pData, size_t dataLen);//打包函数
- //Notify解析函数
- int WindowNofify(const char * InCommand, int len);
- //int ImageReadyNofify(const char * InCommand, int len);
- int WindowStateNotify(const char * InCommand, int len);
- int AcqStateNotify(const char * InCommand, int len);
|