fixed a bug.
was not accepting "0.0" as value.
This commit is contained in:
@@ -93,67 +93,60 @@ void AQH_NodeServer_HandleSetData(AQH_OBJECT *o, AQH_OBJECT *ep, const AQH_MESSA
|
|||||||
varName=AQH_Value_GetName(value);
|
varName=AQH_Value_GetName(value);
|
||||||
if (varName) {
|
if (varName) {
|
||||||
double data;
|
double data;
|
||||||
|
AQH_NODE_INFO *nodeInfo;
|
||||||
|
|
||||||
data=AQH_IpcdMessageSetData_ReadData(tagList);
|
data=AQH_IpcdMessageSetData_ReadData(tagList);
|
||||||
if (data) {
|
nodeInfo=_getNodeInfoFromValue(xo, value);
|
||||||
AQH_NODE_INFO *nodeInfo;
|
if (nodeInfo) {
|
||||||
|
const char *devName;
|
||||||
|
|
||||||
nodeInfo=_getNodeInfoFromValue(xo, value);
|
devName=AQH_NodeInfo_GetDeviceId(nodeInfo);
|
||||||
if (nodeInfo) {
|
if (devName) {
|
||||||
const char *devName;
|
const AQHNODE_DEVICE *devInfo;
|
||||||
|
|
||||||
devName=AQH_NodeInfo_GetDeviceId(nodeInfo);
|
devInfo=AQH_NodeServer_GetDeviceDefByName(o, devName);
|
||||||
if (devName) {
|
if (devInfo) {
|
||||||
const AQHNODE_DEVICE *devInfo;
|
const AQHNODE_VALUE *devValue;
|
||||||
|
|
||||||
devInfo=AQH_NodeServer_GetDeviceDefByName(o, devName);
|
devValue=AQHNODE_Value_List_GetByName(AQHNODE_Device_GetValueList(devInfo), varName);
|
||||||
if (devInfo) {
|
if (devValue) {
|
||||||
const AQHNODE_VALUE *devValue;
|
uint16_t dataVal=0;
|
||||||
|
uint16_t dataDenom=0;
|
||||||
|
|
||||||
devValue=AQHNODE_Value_List_GetByName(AQHNODE_Device_GetValueList(devInfo), varName);
|
if (AQH_ReadDataFromDouble(AQHNODE_Value_GetDataType(devValue), data, &dataVal, &dataDenom)==0) {
|
||||||
if (devValue) {
|
AQH_MSG_REQUEST *rq;
|
||||||
uint16_t dataVal=0;
|
int destAddr;
|
||||||
uint16_t dataDenom=0;
|
|
||||||
|
|
||||||
if (AQH_ReadDataFromDouble(AQHNODE_Value_GetDataType(devValue), data, &dataVal, &dataDenom)==0) {
|
destAddr=AQH_NodeInfo_GetBusAddress(nodeInfo);
|
||||||
AQH_MSG_REQUEST *rq;
|
DBG_DEBUG(NULL, "Creating SETDATA request");
|
||||||
int destAddr;
|
|
||||||
|
|
||||||
destAddr=AQH_NodeInfo_GetBusAddress(nodeInfo);
|
rq=_mkRequest_SetData(o, xo, ep, msgId, destAddr, AQHNODE_Value_GetId(devValue), dataVal, dataDenom);
|
||||||
DBG_DEBUG(NULL, "Creating SETDATA request");
|
AQH_NodeServer_AddRequestToTree(o, rq);
|
||||||
|
/* done */
|
||||||
rq=_mkRequest_SetData(o, xo, ep, msgId, destAddr, AQHNODE_Value_GetId(devValue), dataVal, dataDenom);
|
|
||||||
AQH_NodeServer_AddRequestToTree(o, rq);
|
|
||||||
/* done */
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
DBG_ERROR(NULL, "Bad data \"%s\"", data);
|
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_BADDATA);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "Invalid value name \"%s\"", varName);
|
DBG_ERROR(NULL, "Bad data \"%.2f\"", data);
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_BADDATA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "Unknown node \"%s\"", devName);
|
DBG_ERROR(NULL, "Invalid value name \"%s\"", varName);
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "Node not yet fully identified, come back later");
|
DBG_ERROR(NULL, "Unknown node \"%s\"", devName);
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_TRYAGAIN);
|
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "No matching nodeinfo");
|
DBG_ERROR(NULL, "Node not yet fully identified, come back later");
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_TRYAGAIN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "No data");
|
DBG_ERROR(NULL, "No matching nodeinfo");
|
||||||
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_NODATA);
|
_sendResponseResultToBroker(ep, msgId, AQH_MSGDATA_RESULT_ERROR_INVALID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user