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))
|
||||
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
|
||||
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;
|
||||
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
|
||||
if (Changed) {
|
||||
Param->Changed = true;
|
||||
|
||||
Reference in New Issue
Block a user