diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Procedure.c | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Procedure.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Procedure.c index c84dc5fb5..d1ba28d7e 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Procedure.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Procedure.c @@ -72,8 +72,10 @@ void Stub_ProcedureRequest(MessageContainer* requestContainer) bool ResetNeeded = false; ProcedureRequest* request = procedure_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - int i,n_param = request->n_param; + int rc, i,n_param = request->n_param; ProcedureResponse response = PROCEDURE_RESPONSE__INIT; + BTSRParameters *BtsrPrameters = NULL; + char str[200]; /* protobuf_c_boolean has_type; int32_t type; protobuf_c_boolean has_timeout; @@ -89,6 +91,50 @@ void Stub_ProcedureRequest(MessageContainer* requestContainer) { switch (request->type) { + case 1: + BtsrPrameters = my_malloc(sizeof(BTSRParameters)); + BtsrPrameters->btsryarntype = request->param[0]; + BtsrPrameters->btsrapplicationtype = request->param[1]; + BtsrPrameters->feedingtension = request->param[2]; + BtsrPrameters->exittension = request->param[3]; + BtsrPrameters->tensionerror = request->param[4]; + BtsrPrameters->threadlengthfactor = request->param[5]; + rc = BtsrSaveParamsToEeprom(BtsrPrameters); + free(BtsrPrameters); + response.replymessage = request->testname; + if (n_param) + { + response.replyvalue = (float*)my_malloc(sizeof(float *)*(request->n_param)); + response.n_replyvalue = request->n_param; + for(i=0;i<n_param;i++) + { + Report(request->testname,__FILE__,__LINE__,(int)request->type,RpWarning,(int) request->n_param,0); + response.replyvalue[i] = request->param[i]; + } + } + response.time = msec_millisecondCounter; + response.type = request->type; + break; + case 2: + BtsrPrameters = my_malloc(sizeof(BTSRParameters)); + rc = BtsrReadParamsFromEeprom(BtsrPrameters); + sprintf(str, "type = %d, app = %d, tension = %f, exittension = %f, tensionerror = %f, lengthfactor = %f", BtsrPrameters->btsryarntype, + BtsrPrameters->btsrapplicationtype, BtsrPrameters->feedingtension, BtsrPrameters->exittension, BtsrPrameters->tensionerror, BtsrPrameters->threadlengthfactor); + response.replymessage = str; + if (n_param) + { + response.replyvalue = (float*)my_malloc(sizeof(float *)*(request->n_param)); + response.n_replyvalue = request->n_param; + for(i=0;i<n_param;i++) + { + Report(request->testname,__FILE__,__LINE__,(int)request->type,RpWarning,(int) request->n_param,0); + response.replyvalue[i] = request->param[i]; + } + } + response.time = msec_millisecondCounter; + response.type = request->type; + free(BtsrPrameters); + break; default: response.replymessage = request->testname; if (n_param) |
