123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- #include "stdafx.h"
- #include "FPGA.h"
- bool ProcessImageObject(RawPacketObject *pObj, IMAGE &Img)
- {
- for (size_t i = 0; i < pObj->sizeOfObject(); i++)
- {
- DIOSKEYTYPE key = (*pObj)[i].GetKey();
- switch (key)
- {
- case g_KEY_IMAGE_WIDTH:
- Img.Width = (*pObj)[i];
- break;
- case g_KEY_IMAGE_HEIGHT:
- Img.Height = (*pObj)[i];
- break;
- case g_KEY_IMAGE_BIT:
- Img.Bit = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DEADLINE_TOP:
- Img.TopOffset = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DEADLINE_LEFT:
- Img.LeftOffset = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DEADLINE_RIGHT:
- Img.RightOffset = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DEADLINE_BOTTOM:
- Img.BottomOffset = (*pObj)[i];
- break;
- case g_KEY_IMAGE_TAG:
- Img.ImageTag = (*pObj)[i];
- break;
- case g_KEY_IMAGE_INDEX:
- Img.ImageIndex = (*pObj)[i];
- break;
- case g_KEY_IMAGE_YEAR:
- Img.Year = (*pObj)[i];
- break;
- case g_KEY_IMAGE_MONTH:
- Img.Month = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DAY:
- Img.Day = (*pObj)[i];
- break;
- case g_KEY_IMAGE_HOUR:
- Img.Hour = (*pObj)[i];
- break;
- case g_KEY_IMAGE_MINUTE:
- Img.Minute = (*pObj)[i];
- break;
- case g_KEY_IMAGE_SEC:
- Img.Second = (*pObj)[i];
- break;
- case g_KEY_IMAGE_MILLSEC:
- Img.MillonSecond = (*pObj)[i];
- break;
- case g_KEY_IMAGE_DATA:
- Img.pData = (char*)((const char*)(*pObj)[i]);
- break;
- default:
- break;
- }
- }
- return true;
- }
- void EncodeCommand(DiosPacket &OutputCommand, BYTE PhyIndex, BYTE LogicIndex, int Target, BYTE Command)
- {
- char temp = PhyIndex;
- OutputCommand.SetPhyDevIdx(temp);
- temp = LogicIndex;
- OutputCommand.SetLogicDevIdx(temp);
- unsigned int tag = Target;
- OutputCommand.SetTargetDirection(tag);
- OutputCommand.SetCommand(Command);
- OutputCommand.SetRetcode(0);
- }
- void EncodeParameters(DiosPacket &OutputCommand, const char *pData, size_t dataLen)
- {
- OutputCommand.AddData(pData, dataLen);
- }
- int WindowNofify(const char * InCommand, int len)
- {
- WORD windowvalue;
- memcpy(&windowvalue, &InCommand[2], sizeof(windowvalue));
- printf("****Receive FPGA Window is %d ******\n", windowvalue);
- return 0;
- }
- int WindowStateNotify(const char * InCommand, int len)
- {
- char windowstate;
- memcpy(&windowstate, &InCommand[2], sizeof(windowstate));
- printf("*******Receive FPGA WINDOW STATE is %s *******\n", windowstate == 0 ? "stop" : "start");
- return 0;
- }
- int AcqStateNotify(const char * InCommand, int len)
- {
- char acqvalue;
- memcpy(&acqvalue, &InCommand[2], sizeof(acqvalue));
- printf("******Receive FPGA ACQ STATE is %s *********\n", acqvalue == 0 ? "stop" : "start");
- if (acqvalue == 0)
- {
- printf("===========Acquire End==============\n");
- }
- return 0;
- }
- //
- //int ImageReadyNofify(const char * InCommand, int len)
- //{
- // WORD acqvalue;
- // unsigned short int type = 0;
- // bool bProcEnd = true;
- // unsigned int Pointer = 0;
- // unsigned short int sValue = 0;
- // unsigned int iValue = 0;
- // double dValue = 0;
- // double dImageTag = 0;
- // double dImageIndex = 0;
- //
- // memcpy(&acqvalue, &InCommand[2], sizeof(acqvalue));
- // printf("Receive FPGA Image Ready \n");
- //
- // while(bProcEnd)
- // {
- // memcpy(&type,&InCommand[Pointer],sizeof(short int));
- // switch (type)
- // {
- // case 0xA00C:
- // Pointer += 2;
- // memcpy(&iValue,&InCommand[Pointer],sizeof(iValue));
- // printf("image packet length is %d",iValue);
- // Pointer += 4;
- // break;
- // case 0x100D:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("Width: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x100E:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("Hight: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x100F:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("Bit: %d\t\n",sValue);
- // Pointer += 2;
- // break;
- // case 0x1010:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("TopOffset: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x1011:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("LeftOffset: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x1012:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("RightOffset: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x1013:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("BottomOffset: %d\t\n",sValue);
- // Pointer += 2;
- // break;
- // case 0x3014:
- // Pointer += 2;
- // memcpy(&dValue,&InCommand[Pointer],sizeof(dValue));
- // printf("ImageTag: %ld\t",dValue);
- // dImageTag = dValue;
- // Pointer += 8;
- // break;
- // case 0x3015:
- // Pointer += 2;
- // memcpy(&dValue,&InCommand[Pointer],sizeof(dValue));
- // printf("ImageIndex: %ld\t\n",dValue);
- // dImageIndex = dValue;
- // Pointer += 8;
- // break;
- // case 0x1016:
- // Pointer += 2;
- // memcpy(&sValue,&InCommand[Pointer],sizeof(sValue));
- // printf("Year: %d\t",sValue);
- // Pointer += 2;
- // break;
- // case 0x0017:
- // Pointer += 2;
- // printf("Month: %d\t",InCommand[Pointer]);
- // Pointer ++;
- // break;
- // case 0x0018:
- // Pointer += 2;
- // printf("Day: %d\t",InCommand[Pointer]);
- // Pointer ++;
- // break;
- // case 0x0019:
- // Pointer += 2;
- // printf("hour: %d\t",InCommand[Pointer]);
- // Pointer ++;
- // break;
- // case 0x001A:
- // Pointer += 2;
- // printf("Minute: %d\t",InCommand[Pointer]);
- // Pointer ++;
- // break;
- // case 0x001B:
- // Pointer += 2;
- // printf("Second: %d\t",InCommand[Pointer]);
- // Pointer ++;
- // break;
- // case 0x101C:
- // Pointer += 2;
- // memcpy(&sValue, &InCommand[Pointer], sizeof(sValue));
- // printf("ms: %d\t\n", sValue);
- // Pointer += 2;
- // break;
- // case 0xA01D:
- // Pointer += 2;
- // memcpy(&iValue,&InCommand[Pointer],sizeof(iValue));
- // printf("\n save image data length is %d\n",iValue);
- //
- // bProcEnd = false;
- // break;
- //
- // default:
- // printf("\n get wrong type %d ,just return.\n",type);
- // bProcEnd = false;
- //
- // }
- // }
- // CFPGACommunication g_obFPGAComm;
- // g_obFPGAComm.FetchImage(dImageTag,dImageIndex);
- //
- // return 0;
- //}
- //
|