Update in progress:
- Started work on Set/Get commands for DeviceCore
This commit is contained in:
@@ -518,6 +518,70 @@ bool CDeviceCore::UpdateStringValue( TDeviceParam * Param, const char * Value, c
|
|||||||
if (!Param || (Param->DataType != dtString))
|
if (!Param || (Param->DataType != dtString))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
switch (Param->DataType)
|
||||||
|
{
|
||||||
|
// case dtUnsigned16 :
|
||||||
|
// u_int16_t TestVal;
|
||||||
|
// if (Init || (*((u_int16_t*)Param->Value) != Value))
|
||||||
|
// {
|
||||||
|
// // Set new value & mark change
|
||||||
|
// *((u_int16_t*)Param->Value) = Value;
|
||||||
|
//
|
||||||
|
// // Mark change & log event
|
||||||
|
// Changed = true;
|
||||||
|
// Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %u", Name, Param->Name, ((Init)? "initialised" : "changed"), *((u_int16_t*)Param->Value) );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case dtUnsigned32 :
|
||||||
|
// if (Init || (*((u_int32_t*)Param->Value) != Value))
|
||||||
|
// {
|
||||||
|
// // Set new value & mark change
|
||||||
|
// *((u_int32_t*)Param->Value) = Value;
|
||||||
|
//
|
||||||
|
// // Mark change & log event
|
||||||
|
// Changed = true;
|
||||||
|
// Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %u", Name, Param->Name, ((Init)? "initialised" : "changed"), *((u_int32_t*)Param->Value) );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case dtSigned16 :
|
||||||
|
// if (Init || (*((int16_t*)Param->Value) != Value))
|
||||||
|
// {
|
||||||
|
// // Set new value & mark change
|
||||||
|
// *((int16_t*)Param->Value) = Value;
|
||||||
|
//
|
||||||
|
// // Mark change & log event
|
||||||
|
// Changed = true;
|
||||||
|
// Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %d", Name, Param->Name, ((Init)? "initialised" : "changed"), *((int16_t*)Param->Value) );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case dtSigned32 :
|
||||||
|
// if (Init || (*((int32_t*)Param->Value) != Value))
|
||||||
|
// {
|
||||||
|
// // Set new value & mark change
|
||||||
|
// *((int32_t*)Param->Value) = Value;
|
||||||
|
//
|
||||||
|
// // Mark change & log event
|
||||||
|
// Changed = true;
|
||||||
|
// Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %d", Name, Param->Name, ((Init)? "initialised" : "changed"), *((int32_t*)Param->Value) );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// case dtFloat32 : // Special case, where float value is stored in Integer memory (e.g. modbus register)
|
||||||
|
// if (Init || (*((u_int32_t*)Param->Value) != Value))
|
||||||
|
// {
|
||||||
|
// // Set new value & mark change
|
||||||
|
// *((u_int32_t*)Param->Value) = Value;
|
||||||
|
//
|
||||||
|
// // Mark change & log event
|
||||||
|
// Changed = true;
|
||||||
|
// Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %f", Name, Param->Name, ((Init)? "initialised" : "changed"), *((float*)Param->Value) );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
|
||||||
|
case dtString :
|
||||||
// Update register
|
// Update register
|
||||||
if (Init || !CompareParamString( (char*)Param->Value, Param->Len, Value, Len))
|
if (Init || !CompareParamString( (char*)Param->Value, Param->Len, Value, Len))
|
||||||
{
|
{
|
||||||
@@ -537,6 +601,12 @@ bool CDeviceCore::UpdateStringValue( TDeviceParam * Param, const char * Value, c
|
|||||||
Changed = true;
|
Changed = true;
|
||||||
Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %s", Name, Param->Name, ((Init)? "initialised" : "changed"), (char*)Param->Value );
|
Log->Message( DebugLevel, dlLow, "%s: '%s' %s - %s", Name, Param->Name, ((Init)? "initialised" : "changed"), (char*)Param->Value );
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
// Invalid Data Type
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// Generate Channel Event
|
// Generate Channel Event
|
||||||
if (Changed) {
|
if (Changed) {
|
||||||
Param->Changed = true;
|
Param->Changed = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user