/* * register module to server */ int register2Server() { int ret = -1; msg msgbuf; int counter=0; int srv_fd; struct timeval tv; tv.tv_sec=1; tv.tv_usec=0; srv_fd = socket(PF_INET,SOCK_STREAM,0); if(srv_fd < 0){ perror("can't open socket\n"); exit(1); } server_addr.sin_port = htons(SERVER_PORT); ret = connect(srv_fd, (struct sockaddr*)&server_addr, sizeof(struct sockaddr)); if(ret < 0){ printf("can not connect to server\n"); close(srv_fd); return -1; } printf("connect to server\n"); /*****************************/ /******** REQ_REGISTER *******/ /*****************************/ printModuleInfo(); ret = sendData(srv_fd, REQ_REGISTER, &g_moduleInfo, sizeof(moduleInfo)); if(ret < 0){ /* FIXME */ printf("%s:sendData error",__FUNCTION__); return -1; } ret = recvData(srv_fd, &msgbuf, &tv); if(ret<0 || ret==0 || msgbuf.dataType != RESP_SUCCESS){ return -1; } /***********************************/ /******* REQ_FIRTWARE_UPDATE *******/ /***********************************/ #ifndef DEBUG_PC ret = sendData(srv_fd, REQ_FIRTWARE_UPDATE, g_moduleInfo.fwVersion, sizeof(g_moduleInfo.fwVersion)); #else ret = sendData(srv_fd, REQ_FIRTWARE_UPDATE, NULL, 0); #endif if(ret < 0){ /* FIXME */ printf("%s:sendData error\n",__FUNCTION__); return -1; } tv.tv_sec=1; tv.tv_usec=0; ret = recvData(srv_fd, &msgbuf, &tv); if(ret<0 || ret==0 || msgbuf.dataType != REQ_FIRTWARE_UPDATE){ printf("REQ_FIRTWARE_UPDATE response error\n"); return -1; } if( *(int*)(msgbuf.dataBuf) == 1 ){ recvFirmware(srv_fd); //this function will reboot the module!! updateFirmware(); exit(0); } /**********************/ /***** REQ_CONFIG *****/ /**********************/ ret = sendData(srv_fd, REQ_CONFIG, NULL, 0); if(ret < 0){ /* FIXME */ printf("%s:sendData error",__FUNCTION__); return -1; } tv.tv_sec=1; tv.tv_usec=0; ret = recvData(srv_fd, &msgbuf, &tv); if(ret<0 ||ret==0 || msgbuf.dataType != REQ_CONFIG){ printf("REQ_FIRTWARE_UPDATE response error\n"); return -1; } if( msgbuf.dataSize!=0 ){ //doConfiguration(buf, buflen); return -1; } /***********************/ /******* REQ_RUN ******/ /**********************/ ret = sendData(srv_fd, REQ_RUN, NULL, 0); if(ret < 0){ /* FIXME */ printf("%s:sendData error",__FUNCTION__); return -1; } tv.tv_sec=1; tv.tv_usec=0; ret = recvData(srv_fd, &msgbuf, &tv); if(ret<0 ||ret==0 || msgbuf.dataType != RESP_SUCCESS){ printf(" REQ_RUN error\n"); return -1; } g_state = STATE_RUN; close(srv_fd); srv_fd = -1; return 0; }
static PyObject* voreenqt_info(PyObject* /*self*/, PyObject* /*args*/) { return printModuleInfo("voreenqt"/*, true, 0, 0, true*/); }