Пример #1
0
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;
}
Пример #2
0
/**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;
}
Пример #3
0
/**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;
}
Пример #4
0
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;
}
Пример #5
0
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);
}
Пример #6
0
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);
}
Пример #7
0
int srv_handle_status_req(srv_t *srv) {
  srv_update_status(srv);
  return RRW_RV_SUCCESS;
}