int srv_handle_meas_ctl_req(srv_t *srv) { meas_ctl_req_t *req = (meas_ctl_req_t *)srv->req; if(srv->test_mode) { srv_update_status(srv); return RRW_RV_BUSY; } switch(req->mode) { case RRW_MEAS_ON_REQ: if(rcli_meas_mode(srv->rcli)==MEAS_MODE_CYCLE) { rcli_en_onreq_mode(srv->rcli); } rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); break; case RRW_MEAS_CYCLE: if(rcli_meas_mode(srv->rcli)==MEAS_MODE_ON_REQ) { rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); rcli_en_cycle_mode(srv->rcli); } else { rcli_cycle_stop(srv->rcli); rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); rcli_cycle_start(srv->rcli); } break; } srv_update_status(srv); return RRW_RV_SUCCESS; }
/**Perform measurement control requst related routines*/ int srv_handle_meas_ctl_req(srv_t *srv) { meas_ctl_req_t *req = (meas_ctl_req_t *)srv->req; switch(req->mode) { case RRW_MEAS_ON_REQ: //if in cyclic mode switch to on-request mode if(rcli_meas_mode(srv->rcli)==MEAS_MODE_CYCLE) { rcli_en_onreq_mode(srv->rcli); } // rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); break; case RRW_MEAS_CYCLE: //if in on-request mode switch to cyclic mode if(rcli_meas_mode(srv->rcli)==MEAS_MODE_ON_REQ) { // rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); rcli_en_cycle_mode(srv->rcli); } else { rcli_cycle_stop(srv->rcli); // rcli_set_cycle_dly(srv->rcli,req->cycle_dly); rcli_set_cycle_dur(srv->rcli,req->cycle_dur); rcli_cycle_start(srv->rcli); } break; } srv_update_status(srv); return RRW_RV_SUCCESS; }
/**Perform data request related routines*/ int srv_handle_data_req(srv_t *srv) { //perform measurement if in on-request mode if(rcli_meas_mode(srv->rcli)==MEAS_MODE_ON_REQ) { rcli_meas(srv->rcli); } srv_update_status(srv); return RRW_RV_SUCCESS; }
int srv_handle_data_req(srv_t *srv) { if(srv->test_mode) { return RRW_RV_BUSY; } if(rcli_meas_mode(srv->rcli)==MEAS_MODE_ON_REQ) { rcli_meas(srv->rcli); } srv_update_status(srv); return RRW_RV_SUCCESS; }
void srv_test_mode(srv_t *srv, int ctl) { if(ctl) { if(rcli_meas_mode(srv->rcli)==MEAS_MODE_CYCLE) rcli_cycle_stop(srv->rcli); srv->test_mode = 1; } else { if(rcli_meas_mode(srv->rcli)==MEAS_MODE_CYCLE) rcli_cycle_start(srv->rcli); srv->test_mode = 0; } srv_update_status(srv); }
int srv_prepare_data_resp(srv_t *srv) { int i; data_resp_t *resp = (data_resp_t *)srv->resp; data_el_t *elems = (data_el_t *)(srv->resp + sizeof(data_resp_t)); srv_update_status(srv); form_data_resp(srv->resp, srv->status, rcli_get_meas_no(srv->rcli), rcli_get_elapsed(srv->rcli)); if(srv->fn_rv==RRW_RV_BUSY) return sizeof(data_resp_t); rcli_incr_meas_no(srv->rcli); rcli_copy_last(srv->rcli,(char*)elems); return sizeof(data_resp_t)+1024*sizeof(data_el_t); }
int srv_handle_status_req(srv_t *srv) { srv_update_status(srv); return RRW_RV_SUCCESS; }