123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- #ifndef SHARE_MEMORY_CLIENT_H
- #define SHARE_MEMORY_CLIENT_H
- #define SHAREMEMORY_CLIENT_API
- #define SHAREMEMORY_CLIENT_C_API extern "C"
- //#include"ShareMemory_Common.h"
- //SM_IMAGE的属性值均用8字节数据 unsigned long long
- const unsigned short SM_KEY_IMAGE_WIDTH = 0x3001;
- const unsigned short SM_KEY_IMAGE_HEIGHT = 0x3002;
- const unsigned short SM_KEY_IMAGE_BIT = 0x3003;
- const unsigned short SM_KEY_IMAGE_DEADLINE_TOP = 0x3004;
- const unsigned short SM_KEY_IMAGE_DEADLINE_LEFT = 0x3005;
- const unsigned short SM_KEY_IMAGE_DEADLINE_RIGHT = 0x3006;
- const unsigned short SM_KEY_IMAGE_DEADLINE_BOTTOM = 0x3007;
- const unsigned short SM_KEY_IMAGE_TAG = 0x3008;
- const unsigned short SM_KEY_IMAGE_INDEX = 0x3009;
- const unsigned short SM_KEY_IMAGE_YEAR = 0x3010;
- const unsigned short SM_KEY_IMAGE_MONTH = 0x3011;
- const unsigned short SM_KEY_IMAGE_DAY = 0x3012;
- const unsigned short SM_KEY_IMAGE_HOUR = 0x3013;
- const unsigned short SM_KEY_IMAGE_MINUTE = 0x3014;
- const unsigned short SM_KEY_IMAGE_SEC = 0x3015;
- const unsigned short SM_KEY_IMAGE_MILLSEC = 0x3016;
- const unsigned short SM_KEY_IMAGE_XRAYFLAG = 0x3017;
- const unsigned short SM_KEY_IMAGE_LSB = 0x2018;
- const unsigned short SM_KEY_IMAGE_DOSE = 0x2019;
- const unsigned short SM_KEY_IMAGE_PIXELSPACING = 0x201A;
- const unsigned short SM_KEY_IMAGE_PIXELREPRESENTATION = 0x201B;
- const unsigned short SM_KEY_IMAGE_ROTATION = 0x201C;
- const unsigned short SM_KEY_IMAGE_FLIP = 0x201D;
- const unsigned short SM_KEY_IMAGE_ORIGINX = 0x201E;
- const unsigned short SM_KEY_IMAGE_ORIGINY = 0x201F;
- const unsigned short SM_KEY_IMAGE_TYPE = 0x2020;
- #define IMAGEINFOBLOCKSIZE 2048 //2k大小预留空间,为添加图像头信息。 RAW图在BLOCK最后创建后大小不能变
- 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;
- LSB = 0;
- Dose = 0;
- pData = NULL;
- PixelSpacing = 0;
- PixelRepresentation = 0;
- Rotation = 0;
- Flip = 0;
- OriginX = 0;
- OriginY = 0;
- Type = 0;
- };
- ~_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;
- unsigned char Month;
- unsigned char Day;
- unsigned char Hour;
- unsigned char Minute;
- unsigned char Second;
- unsigned short MillonSecond;
- float LSB;
- float Dose;
- char *pData;
- float PixelSpacing;
- int PixelRepresentation; //0:0000H unsigned integer; 1:0001H 2's complement
- int Rotation; //Rotation degree clockwise
- int Flip;
- int OriginX;
- int OriginY;
- int Type;
- }IMAGE;
- typedef enum eSMCreateResult
- {
- SM_CREATE_FAILED = -1,
- SM_CREATE_SUCCESS = 0,
- SM_ALREADYEXIST,
- }SMCreateResult;
- typedef enum eSMOpenResult
- {
- SM_OPEN_FAILED = -1,
- SM_OPEN_SUCCESS = 0 ,
- }SMOpenResult;
- typedef enum eAccessFlag
- {
- SM_NOACCESS,
- SM_READONLY,
- SM_WRITEONLY,
- SM_READWRITE,
- }SMAccessFlag;
- typedef enum _ShareMemory_Type
- {
- SM_TYPE_BLOCK,
- SM_TYPE_CRICLE,
- SM_TYPE_QUEUE,
- SM_TYPE_MAX
- }SHAREMEMORYTYPE;
- union SHRAREMEMBLOCKID
- {
- unsigned long dwShareMemBId;
- #pragma pack(1)
- struct
- {
- unsigned long ShareMemId : 8;
- unsigned long ResetCount : 8;
- unsigned long BlockId : 16;
- }stShareMemBId;
- #pragma pack()
- };
- #define UnvalidSMBid 0xffffffff
- typedef unsigned long ShareMemoryBlockID;
- typedef void* SMClientID;
- SHAREMEMORY_CLIENT_C_API int SMCreate(const char * path, int AccessFlags, unsigned long size, SMClientID & SMinfo);//create包含open
- SHAREMEMORY_CLIENT_C_API bool SMDestroy(const char * path);
- SHAREMEMORY_CLIENT_C_API int SMOpen(const char * path, int AccessFlags, SMClientID & SMinfo);
- SHAREMEMORY_CLIENT_C_API int SMOpenById(unsigned char &ShareMemId, int AccessFlags, SMClientID & SMinfo);
- SHAREMEMORY_CLIENT_C_API bool SMClose(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API bool SMLock(SMClientID SMinfo, int timeout);
- SHAREMEMORY_CLIENT_C_API bool SMUnLock(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API bool SMSetSize(SMClientID SMinfo, unsigned long size);
- SHAREMEMORY_CLIENT_C_API unsigned long SMGetSize(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API bool SMWrite(SMClientID SMinfo, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API bool SMRead(SMClientID SMinfo, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API bool SMSeek(SMClientID SMinfo, unsigned long position);
- SHAREMEMORY_CLIENT_C_API bool SMWriteEx(SMClientID SMinfo, unsigned long position, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API bool SMReadEx(SMClientID SMinfo, unsigned long position, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API bool SMSetSMCCtrl(SMClientID SMinfo, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API bool SMGetSMCCtrl(SMClientID SMinfo, void * buff, unsigned long size);
- SHAREMEMORY_CLIENT_C_API void * SMGetSMCCtrlAddress(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API void * SMGetSMDataAddr(SMClientID SMCid, unsigned long & DataSize);
- SHAREMEMORY_CLIENT_C_API unsigned long SMInterLock(SMClientID SMinfo, unsigned long timeout);
- SHAREMEMORY_CLIENT_C_API bool SMInterUnLock(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API unsigned long SMInterLockExchange(SMClientID SMinfo, unsigned long offset, unsigned long timeout);
- SHAREMEMORY_CLIENT_C_API bool SMInterUnLockExchange(SMClientID SMinfo, unsigned long offset);
- SHAREMEMORY_CLIENT_C_API unsigned long SMLockSMCCtrl(SMClientID SMinfo, unsigned long timeout);
- SHAREMEMORY_CLIENT_C_API bool SMUnLockSMCCtrl(SMClientID SMinfo);
- SHAREMEMORY_CLIENT_C_API bool ShareMemory_ClientStart(void);
- SHAREMEMORY_CLIENT_C_API bool ShareMemory_ClientStop(void);
- #endif // SHARE_MEMORY_CLIENT_H
|