Update in progress:

- Started work on Set/Get commands for DeviceCore
This commit is contained in:
Charl Wentzel
2017-02-16 03:02:18 +02:00
parent 6d810e33ba
commit d4ee138da8

View File

@@ -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;