Corrected effeciency of state machine in load control object.

This commit is contained in:
skarg
2007-02-22 22:09:19 +00:00
parent 58d23afc4e
commit f36425de09
+29 -23
View File
@@ -377,31 +377,37 @@ void Load_Control_State_Machine(int object_index)
switch (Load_Control_State[object_index]) { switch (Load_Control_State[object_index]) {
case SHED_REQUEST_PENDING: case SHED_REQUEST_PENDING:
/* request to cancel using default values? */ if (Load_Control_Request_Written[object_index]) {
switch (Requested_Shed_Level[object_index].type) { Load_Control_Request_Written[object_index] = false;
case BACNET_SHED_TYPE_PERCENT: /* request to cancel using default values? */
if (Requested_Shed_Level[object_index].value.percent == switch (Requested_Shed_Level[object_index].type) {
DEFAULT_VALUE_PERCENT) case BACNET_SHED_TYPE_PERCENT:
Load_Control_State[object_index] = SHED_INACTIVE; if (Requested_Shed_Level[object_index].value.percent ==
break; DEFAULT_VALUE_PERCENT)
case BACNET_SHED_TYPE_AMOUNT: Load_Control_State[object_index] = SHED_INACTIVE;
if (Requested_Shed_Level[object_index].value.amount == break;
DEFAULT_VALUE_AMOUNT) case BACNET_SHED_TYPE_AMOUNT:
Load_Control_State[object_index] = SHED_INACTIVE; if (Requested_Shed_Level[object_index].value.amount ==
break; DEFAULT_VALUE_AMOUNT)
case BACNET_SHED_TYPE_LEVEL: Load_Control_State[object_index] = SHED_INACTIVE;
default: break;
if (Requested_Shed_Level[object_index].value.level == case BACNET_SHED_TYPE_LEVEL:
DEFAULT_VALUE_LEVEL) default:
Load_Control_State[object_index] = SHED_INACTIVE; if (Requested_Shed_Level[object_index].value.level ==
DEFAULT_VALUE_LEVEL)
Load_Control_State[object_index] = SHED_INACTIVE;
break;
}
if (Load_Control_State[object_index] == SHED_INACTIVE)
break; break;
} }
if (Load_Control_State[object_index] == SHED_INACTIVE) if (Start_Time_Property_Written[object_index]) {
break; Start_Time_Property_Written[object_index] = false;
/* request to cancel using wildcards in start time? */ /* request to cancel using wildcards in start time? */
if (datetime_wildcard(&Start_Time[object_index])) { if (datetime_wildcard(&Start_Time[object_index])) {
Load_Control_State[object_index] = SHED_INACTIVE; Load_Control_State[object_index] = SHED_INACTIVE;
break; break;
}
} }
/* cancel because current time is after start time + duration? */ /* cancel because current time is after start time + duration? */
Update_Current_Time(&Current_Time); Update_Current_Time(&Current_Time);