int CDlgBatteryParam::ReadBatteryParam( CString strKernelPath, STRUCT_BATTERY_PARAM* pBatteryParam ) { int nRetCode=0; //1.check kernel file CFile kernelFile; UINT uiKernelSize; BOOL bRet; bRet = kernelFile.Open(strKernelPath,CFile::modeRead|CFile::typeBinary); if (!bRet) { return -1; } uiKernelSize = kernelFile.GetLength(); BYTE *pKernelBuffer=NULL; UINT uiRead; pKernelBuffer = new BYTE[uiKernelSize]; if (!pKernelBuffer) { kernelFile.Close(); nRetCode = -2; goto Exit_ReadBatteryParam; } uiRead = kernelFile.ReadHuge(pKernelBuffer,uiKernelSize); kernelFile.Close(); if (uiRead!=uiKernelSize) { nRetCode = -3; goto Exit_ReadBatteryParam; } bRet = CheckKernel(pKernelBuffer); if (!bRet) { nRetCode = -4; goto Exit_ReadBatteryParam; } //2.search param tag int iPos; iPos = SearchTag(pKernelBuffer); if (iPos==-1) { nRetCode = -5; goto Exit_ReadBatteryParam; } memcpy(&pBatteryParam->dwCell,pKernelBuffer+iPos,sizeof(STRUCT_BATTERY_PARAM)-12); Exit_ReadBatteryParam: if (pKernelBuffer) { delete pKernelBuffer; pKernelBuffer = NULL; } return nRetCode; }
int main() { int i; //EPICS TAG SEARCH //SearchTag(); int clen; // struct sockaddr_in client_addr, server_addr; // char buf[MAXBUF] = "Im server connecting success."; int iSize = 0; //EPICS TAG SEARCH SearchTag(); //make server socket if((ssock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { perror("Failed to make socket discriptor"); exit(1); } clen = sizeof(client_addr); //setting address structure memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(3333); printf("Etos2 Bind Start....\n"); //binding if(bind(ssock, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { perror("Failed to binding server socket"); exit(1); } printf("Etos2 Bind ok...."); //wait for client if(listen(ssock, 8) <0 ) { perror("listen error : "); exit(1); } char readbuf[MAXBUF]; memset(&readbuf, 0, MAXBUF); i=0; while(1) { iSize = 0; csock = accept(ssock, (struct sockaddr *)&client_addr, &clen); i++; //if(write(csock, buf, MAXBUF) <= 0) // perror("Writing error : "); printf("Start Test!!!!\n"); VacDataRecv(); close(csock); //printf("val : %f\n", fltDATA); iRead = readtag(T_CIP_REAL, VacTagDatachid2[0]); if(iRead == 0) { printf("ETOS2 EPICS TAG RE SEARCH!!!!\n"); SearchTag(); } else { printf("ETOS2 EPICS TAG Read Succes!!!!\n"); } } return 0; }