void pushBufferEmpty(){ LoadCorePacket(& packetTemp); packetTemp.use.head.Method=BOWLER_ASYN; packetTemp.use.head.MessageID = 1; packetTemp.use.head.RPC = GetRPCValue("_sli"); INT32_UNION tmp; tmp.Val=lastPushedBufferSize; packetTemp.use.data[0]=tmp.byte.FB; packetTemp.use.data[1]=tmp.byte.TB; packetTemp.use.data[2]=tmp.byte.SB; packetTemp.use.data[3]=tmp.byte.LB; packetTemp.use.head.DataLegnth=4+4; asyncCallback(&packetTemp); }
void checkPositionChange(){ int i; float tmp[4]; updateCurrentPositions(); tmp[0]=xCurrent; tmp[1]=yCurrent; tmp[2]=zCurrent; tmp[3] = getLinkAngle(3); if( tmp[0]!=lastXYZE[0]|| tmp[1]!=lastXYZE[1]|| tmp[2]!=lastXYZE[2]|| tmp[3]!=lastXYZE[3]){ for(i=0;i<4;i++){ lastXYZE[i] =tmp[i]; } // println_I("Current Voltage of sensor");p_fl_E(getAdcVoltage(mapHeaterIndex(HEATER0_INDEX),10)); // print_E(" Temp = ");p_fl_E(getHeaterTempreture(HEATER0_INDEX)); // print_E(" Raw ADC = ");p_int_E(getAdcRaw(mapHeaterIndex(HEATER0_INDEX),10)); // println_I("Current position X=");p_fl_E(lastXYZE[0]); // print_E(" Y=");p_fl_E(lastXYZE[1]); // print_E(" Z=");p_fl_E(lastXYZE[2]); // print_E(" extr=");p_fl_E(lastXYZE[3]); INT32_UNION PID_Temp; LoadCorePacket(& packetTemp); packetTemp.use.head.DataLegnth=4; packetTemp.use.head.RPC = GetRPCValue("cpos"); int i; for(i=0;i<4;i++){ PID_Temp.Val=lastXYZE[i]; packetTemp.use.data[0+(i*4)]=PID_Temp.byte.FB; packetTemp.use.data[1+(i*4)]=PID_Temp.byte.TB; packetTemp.use.data[2+(i*4)]=PID_Temp.byte.SB; packetTemp.use.data[3+(i*4)]=PID_Temp.byte.LB; packetTemp.use.head.DataLegnth+=4; } packetTemp.use.head.Method=BOWLER_ASYN; FixPacket(&packetTemp); asyncCallback(& packetTemp); } }
void GetServConfigHttpOperation::processOpertion() { module::TTConfig* pCfg = module::getSysConfigModule()->getSystemConfig(); std::string& phpAddr = pCfg->phpServerAddr; std::string url = phpAddr + "/config/json"; GetServConfigParam* pPamram = new GetServConfigParam(); Http::HttpResponse response; Http::HttpClient client; Http::HttpRequest request("post", url); if (!client.execute(&request, &response)) { CString csTemp = util::stringToCString(url); pPamram->result = GETSERV_CONFIT_FAIL; LOG__(ERR,_T("GetServConfigHttpOperation failed %s"), csTemp); asyncCallback(std::shared_ptr<void>(pPamram)); client.killSelf(); return; } std::string body = response.getBody(); client.killSelf(); //json½âÎö try { Json::Reader reader; Json::Value root; if (!reader.parse(body, root)) { CString csTemp = util::stringToCString(body); LOG__(ERR, _T("GetServConfigHttpOperation parse data failed,%s"), csTemp); pPamram->result = GETSERV_CONFIT_FAIL; goto End; } std::string loginAddr = root.get("login", "").asString(); size_t startIndex = loginAddr.find(':'); if (startIndex == std::string::npos) { CString csTemp = util::stringToCString(body); LOG__(ERR, _T("GetServConfigHttpOperation parse login IP failed,%s"), csTemp); pPamram->result = GETSERV_CONFIT_FAIL; goto End; } std::string loginIP = loginAddr.substr(0, startIndex); std::string loginPort = loginAddr.substr(startIndex + 1 , loginAddr.length() - startIndex); pCfg->loginServIP = util::stringToCString(loginIP); pCfg->loginServPort = util::cstringToInt32(util::stringToCString(loginPort)); if (0 == pCfg->loginServPort) { CString csTemp = util::stringToCString(body); LOG__(ERR, _T("GetServConfigHttpOperation parse login IP failed,%s"), csTemp); pPamram->result = GETSERV_CONFIT_FAIL; goto End; } std::string fileAddr = root.get("file", "").asString(); pCfg->fileSysAddr = _T("http://") + util::stringToCString(fileAddr) + _T("/"); pPamram->result = GETSERV_CONFIT_SUCC; } catch (...) { CString csTemp = util::stringToCString(body); LOG__(ERR,_T("GetServConfigHttpOperation parse json execption,%s"), csTemp); pPamram->result = GETSERV_CONFIT_FAIL; } End: asyncCallback(std::shared_ptr<void>(pPamram)); }
void LoginOperation::processOpertion() { LOG__(APP,_T("login start,uname:%s,status:%d"), m_loginParam.csUserName , m_loginParam.mySelectedStatus); LoginParam* pParam = new LoginParam; pParam->csUserName = m_loginParam.csUserName; pParam->mySelectedStatus = m_loginParam.mySelectedStatus; //连接消息服务器 module::TTConfig* pCfg = module::getSysConfigModule()->getSystemConfig(); CString server = util::stringToCString(pCfg->msgSevPriorIP); LOG__(APP, _T("MsgServeIp:%s,Port:%d"), server, pCfg->msgServPort); IM::Login::IMLoginRes* pImLoginResp = (IM::Login::IMLoginRes*)module::getTcpClientModule() ->doLogin(server, pCfg->msgServPort,m_loginParam.csUserName,m_loginParam.password); if (0 == pImLoginResp || pImLoginResp->result_code() != IM::BaseDefine::REFUSE_REASON_NONE || !pImLoginResp->has_user_info()) { //TODO,若失败,尝试备用IP LOG__(ERR,_T("add:%s:%d,uname:%s,login for msg server failed"),server,pCfg->msgServPort, m_loginParam.csUserName); if (pImLoginResp) { CString errInfo = util::stringToCString(pImLoginResp->result_string()); pParam->errInfo = errInfo; pParam->result = LOGIN_FAIL; pParam->server_result = pImLoginResp->result_code(); LOG__(ERR, _T("error code :%d,error info:%s"), pImLoginResp->result_code(), errInfo); } else { pParam->result = IM::BaseDefine::REFUSE_REASON_NO_MSG_SERVER; LOG__(ERR, _T("login msg server faild!")); } asyncCallback(std::shared_ptr<void>(pParam)); return; } pParam->result = LOGIN_OK; pParam->serverTime = pImLoginResp->server_time(); pParam->mySelectedStatus = pImLoginResp->online_status(); //存储服务器端返回的userId IM::BaseDefine::UserInfo userInfo = pImLoginResp->user_info(); pCfg->userId = util::uint32ToString(userInfo.user_id()); pCfg->csUserId = util::stringToCString(pCfg->userId); //登陆成功,创建自己的信息 module::UserInfoEntity myInfo; myInfo.sId = pCfg->userId; myInfo.csName = m_loginParam.csUserName; myInfo.onlineState = IM::BaseDefine::USER_STATUS_ONLINE; myInfo.csNickName = util::stringToCString(userInfo.user_nick_name()); myInfo.avatarUrl = userInfo.avatar_url(); myInfo.dId = util::uint32ToString(userInfo.department_id()); myInfo.department = myInfo.dId; myInfo.email = userInfo.email(); myInfo.gender = userInfo.user_gender(); myInfo.user_domain = userInfo.user_domain(); myInfo.telephone = userInfo.user_tel(); myInfo.status = userInfo.status(); myInfo.signature = userInfo.sign_info(); module::getUserListModule()->createUserInfo(myInfo); asyncCallback(std::shared_ptr<void>(pParam)); LOG__(APP, _T("login succeed! Name = %s Nickname = %s sId = %s status = %d") , m_loginParam.csUserName , util::stringToCString(userInfo.user_nick_name()) , module::getSysConfigModule()->UserID() , m_loginParam.mySelectedStatus); //开始发送心跳包 module::getTcpClientModule()->startHeartbeat(); }