Ran the indent and comment script to standardize the source files.

This commit is contained in:
skarg
2007-02-23 02:14:50 +00:00
parent ada921d5f3
commit 1386b41f2d
21 changed files with 983 additions and 987 deletions
+24 -25
View File
@@ -114,8 +114,7 @@ int bacapp_encode_application_data(uint8_t * apdu,
Return the number of octets consumed. */ Return the number of octets consumed. */
int bacapp_decode_data(uint8_t * apdu, int bacapp_decode_data(uint8_t * apdu,
uint8_t tag_data_type, uint8_t tag_data_type,
uint32_t len_value_type, uint32_t len_value_type, BACNET_APPLICATION_DATA_VALUE * value)
BACNET_APPLICATION_DATA_VALUE * value)
{ {
int len = 0; int len = 0;
int object_type = 0; int object_type = 0;
@@ -156,8 +155,7 @@ int bacapp_decode_data(uint8_t * apdu,
len = decode_bacnet_time(&apdu[0], &value->type.Time); len = decode_bacnet_time(&apdu[0], &value->type.Time);
break; break;
case BACNET_APPLICATION_TAG_OBJECT_ID: case BACNET_APPLICATION_TAG_OBJECT_ID:
len = decode_object_id(&apdu[0], len = decode_object_id(&apdu[0], &object_type, &instance);
&object_type, &instance);
value->type.Object_Id.type = object_type; value->type.Object_Id.type = object_type;
value->type.Object_Id.instance = instance; value->type.Object_Id.instance = instance;
break; break;
@@ -199,9 +197,7 @@ int bacapp_decode_application_data(uint8_t * apdu,
len += tag_len; len += tag_len;
value->tag = tag_number; value->tag = tag_number;
len += bacapp_decode_data(&apdu[len], len += bacapp_decode_data(&apdu[len],
tag_number, tag_number, len_value_type, value);
len_value_type,
value);
} }
value->next = NULL; value->next = NULL;
} }
@@ -209,8 +205,8 @@ int bacapp_decode_application_data(uint8_t * apdu,
return len; return len;
} }
int bacapp_encode_context_data_value(uint8_t * apdu, uint8_t context_tag_number, int bacapp_encode_context_data_value(uint8_t * apdu,
BACNET_APPLICATION_DATA_VALUE * value) uint8_t context_tag_number, BACNET_APPLICATION_DATA_VALUE * value)
{ {
int apdu_len = 0; /* total length of the apdu, return value */ int apdu_len = 0; /* total length of the apdu, return value */
@@ -224,7 +220,8 @@ int bacapp_encode_context_data_value(uint8_t * apdu, uint8_t context_tag_number,
value->type.Boolean); value->type.Boolean);
break; break;
case BACNET_APPLICATION_TAG_UNSIGNED_INT: case BACNET_APPLICATION_TAG_UNSIGNED_INT:
apdu_len = encode_context_unsigned(&apdu[0], context_tag_number, apdu_len =
encode_context_unsigned(&apdu[0], context_tag_number,
value->type.Unsigned_Int); value->type.Unsigned_Int);
break; break;
case BACNET_APPLICATION_TAG_SIGNED_INT: case BACNET_APPLICATION_TAG_SIGNED_INT:
@@ -236,7 +233,8 @@ int bacapp_encode_context_data_value(uint8_t * apdu, uint8_t context_tag_number,
value->type.Real); value->type.Real);
break; break;
case BACNET_APPLICATION_TAG_ENUMERATED: case BACNET_APPLICATION_TAG_ENUMERATED:
apdu_len = encode_context_enumerated(&apdu[0], context_tag_number, apdu_len =
encode_context_enumerated(&apdu[0], context_tag_number,
value->type.Enumerated); value->type.Enumerated);
break; break;
case BACNET_APPLICATION_TAG_DATE: case BACNET_APPLICATION_TAG_DATE:
@@ -248,25 +246,29 @@ int bacapp_encode_context_data_value(uint8_t * apdu, uint8_t context_tag_number,
&value->type.Time); &value->type.Time);
break; break;
case BACNET_APPLICATION_TAG_OBJECT_ID: case BACNET_APPLICATION_TAG_OBJECT_ID:
apdu_len = encode_context_object_id(&apdu[0], context_tag_number, apdu_len =
encode_context_object_id(&apdu[0], context_tag_number,
value->type.Object_Id.type, value->type.Object_Id.type,
value->type.Object_Id.instance); value->type.Object_Id.instance);
break; break;
case BACNET_APPLICATION_TAG_OCTET_STRING: case BACNET_APPLICATION_TAG_OCTET_STRING:
apdu_len = encode_context_octet_string(&apdu[0], context_tag_number, apdu_len =
encode_context_octet_string(&apdu[0], context_tag_number,
&value->type.Octet_String); &value->type.Octet_String);
break; break;
case BACNET_APPLICATION_TAG_CHARACTER_STRING: case BACNET_APPLICATION_TAG_CHARACTER_STRING:
apdu_len = encode_context_character_string(&apdu[0], context_tag_number, apdu_len =
&value->type.Character_String); encode_context_character_string(&apdu[0],
context_tag_number, &value->type.Character_String);
break; break;
case BACNET_APPLICATION_TAG_BIT_STRING: case BACNET_APPLICATION_TAG_BIT_STRING:
apdu_len = encode_context_bitstring(&apdu[0], context_tag_number, apdu_len =
encode_context_bitstring(&apdu[0], context_tag_number,
&value->type.Bit_String); &value->type.Bit_String);
break; break;
#if 0 #if 0
case BACNET_APPLICATION_TAG_DOUBLE: case BACNET_APPLICATION_TAG_DOUBLE:
/* FIXME: double is not implemented yet.*/ /* FIXME: double is not implemented yet. */
apdu_len = encode_context_double(&apdu[0], context_tag_number, apdu_len = encode_context_double(&apdu[0], context_tag_number,
value->type.Double); value->type.Double);
break; break;
@@ -280,8 +282,7 @@ int bacapp_encode_context_data_value(uint8_t * apdu, uint8_t context_tag_number,
} }
/* returns the fixed tag type for certain context tagged properties */ /* returns the fixed tag type for certain context tagged properties */
BACNET_APPLICATION_TAG bacapp_context_tag_type( BACNET_APPLICATION_TAG bacapp_context_tag_type(BACNET_PROPERTY_ID property,
BACNET_PROPERTY_ID property,
uint8_t tag_number) uint8_t tag_number)
{ {
BACNET_APPLICATION_TAG tag = MAX_BACNET_APPLICATION_TAG; BACNET_APPLICATION_TAG tag = MAX_BACNET_APPLICATION_TAG;
@@ -345,14 +346,14 @@ BACNET_APPLICATION_TAG bacapp_context_tag_type(
} }
int bacapp_encode_context_data(uint8_t * apdu, int bacapp_encode_context_data(uint8_t * apdu,
BACNET_APPLICATION_DATA_VALUE * value, BACNET_APPLICATION_DATA_VALUE * value, BACNET_PROPERTY_ID property)
BACNET_PROPERTY_ID property)
{ {
int apdu_len = 0; int apdu_len = 0;
BACNET_APPLICATION_TAG tag_data_type; BACNET_APPLICATION_TAG tag_data_type;
if (value && apdu) { if (value && apdu) {
tag_data_type = bacapp_context_tag_type(property, value->context_tag); tag_data_type =
bacapp_context_tag_type(property, value->context_tag);
if (tag_data_type < MAX_BACNET_APPLICATION_TAG) { if (tag_data_type < MAX_BACNET_APPLICATION_TAG) {
apdu_len = bacapp_encode_context_data_value(&apdu[0], apdu_len = bacapp_encode_context_data_value(&apdu[0],
value->context_tag, value); value->context_tag, value);
@@ -387,9 +388,7 @@ int bacapp_decode_context_data(uint8_t * apdu,
value->tag = bacapp_context_tag_type(property, tag_number); value->tag = bacapp_context_tag_type(property, tag_number);
if (value->tag < MAX_BACNET_APPLICATION_TAG) { if (value->tag < MAX_BACNET_APPLICATION_TAG) {
len = bacapp_decode_data(&apdu[apdu_len], len = bacapp_decode_data(&apdu[apdu_len],
value->tag, value->tag, len_value_type, value);
len_value_type,
value);
apdu_len += len; apdu_len += len;
} else { } else {
/* FIXME: what now? */ /* FIXME: what now? */
+3 -5
View File
@@ -86,12 +86,10 @@ extern "C" {
BACNET_PROPERTY_ID property); BACNET_PROPERTY_ID property);
int bacapp_encode_context_data_value(uint8_t * apdu, int bacapp_encode_context_data_value(uint8_t * apdu,
uint8_t context_tag_number, uint8_t context_tag_number, BACNET_APPLICATION_DATA_VALUE * value);
BACNET_APPLICATION_DATA_VALUE * value);
BACNET_APPLICATION_TAG bacapp_context_tag_type( BACNET_APPLICATION_TAG bacapp_context_tag_type(BACNET_PROPERTY_ID
BACNET_PROPERTY_ID property, property, uint8_t tag_number);
uint8_t tag_number);
bool bacapp_copy(BACNET_APPLICATION_DATA_VALUE * dest_value, bool bacapp_copy(BACNET_APPLICATION_DATA_VALUE * dest_value,
BACNET_APPLICATION_DATA_VALUE * src_value); BACNET_APPLICATION_DATA_VALUE * src_value);
+3 -2
View File
@@ -882,7 +882,8 @@ int encode_context_bitstring(uint8_t * apdu, int tag_number,
/* bit string may use more than 1 octet for the tag, so find out how many */ /* bit string may use more than 1 octet for the tag, so find out how many */
bit_string_encoded_length += bitstring_bytes_used(bit_string); bit_string_encoded_length += bitstring_bytes_used(bit_string);
len = encode_tag(&apdu[0], tag_number, true, bit_string_encoded_length); len =
encode_tag(&apdu[0], tag_number, true, bit_string_encoded_length);
len += encode_bitstring(&apdu[len], bit_string); len += encode_bitstring(&apdu[len], bit_string);
return len; return len;
@@ -1128,7 +1129,7 @@ int encode_bacnet_character_string(uint8_t * apdu,
apdu[0] = characterstring_encoding(char_string); apdu[0] = characterstring_encoding(char_string);
pString = characterstring_value(char_string); pString = characterstring_value(char_string);
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
apdu[1+i] = pString[i]; apdu[1 + i] = pString[i];
} }
return len + 1 /* for encoding */ ; return len + 1 /* for encoding */ ;
+6 -6
View File
@@ -115,12 +115,12 @@ static void days_since_epoch_into_ymd(uint32_t days,
year++; year++;
} }
while (days >= (uint32_t)month_days(year, month)) { while (days >= (uint32_t) month_days(year, month)) {
days -= month_days(year, month); days -= month_days(year, month);
month++; month++;
} }
day += ((uint8_t)days); day += ((uint8_t) days);
if (pYear) if (pYear)
*pYear = year; *pYear = year;
@@ -137,7 +137,7 @@ static void days_since_epoch_into_ymd(uint32_t days,
/* wday 1=Monday...7=Sunday */ /* wday 1=Monday...7=Sunday */
static uint8_t day_of_week(uint16_t year, uint8_t month, uint8_t day) static uint8_t day_of_week(uint16_t year, uint8_t month, uint8_t day)
{ {
return ((uint8_t)(days_since_epoch(year, month, day) % 7) + 1); return ((uint8_t) (days_since_epoch(year, month, day) % 7) + 1);
} }
/* if the date1 is the same as date2, return is 0 /* if the date1 is the same as date2, return is 0
@@ -292,9 +292,9 @@ static void seconds_since_midnight_into_hms(uint32_t seconds,
uint8_t hour = 0; uint8_t hour = 0;
uint8_t minute = 0; uint8_t minute = 0;
hour = (uint8_t)(seconds / (60 * 60)); hour = (uint8_t) (seconds / (60 * 60));
seconds -= (hour * 60 * 60); seconds -= (hour * 60 * 60);
minute = (uint8_t)(seconds / 60); minute = (uint8_t) (seconds / 60);
seconds -= (minute * 60); seconds -= (minute * 60);
if (pHours) if (pHours)
@@ -302,7 +302,7 @@ static void seconds_since_midnight_into_hms(uint32_t seconds,
if (pMinutes) if (pMinutes)
*pMinutes = minute; *pMinutes = minute;
if (pSeconds) if (pSeconds)
*pSeconds = (uint8_t)seconds; *pSeconds = (uint8_t) seconds;
} }
void datetime_add_minutes(BACNET_DATE_TIME * bdatetime, uint32_t minutes) void datetime_add_minutes(BACNET_DATE_TIME * bdatetime, uint32_t minutes)
+8 -13
View File
@@ -48,9 +48,8 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id,
BACNET_OBJECT_TYPE object_type, BACNET_OBJECT_TYPE object_type,
uint32_t object_instance, uint32_t object_instance,
BACNET_PROPERTY_ID object_property, BACNET_PROPERTY_ID object_property,
uint8_t *application_data, uint8_t * application_data,
int application_data_len, int application_data_len, uint8_t priority, int32_t array_index)
uint8_t priority, int32_t array_index)
{ {
BACNET_ADDRESS dest; BACNET_ADDRESS dest;
BACNET_ADDRESS my_address; BACNET_ADDRESS my_address;
@@ -83,7 +82,8 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id,
data.object_property = object_property; data.object_property = object_property;
data.array_index = array_index; data.array_index = array_index;
data.application_data_len = application_data_len; data.application_data_len = application_data_len;
memcpy(&data.application_data[0],&application_data[0], application_data_len); memcpy(&data.application_data[0], &application_data[0],
application_data_len);
data.priority = priority; data.priority = priority;
len = wp_encode_apdu(&Handler_Transmit_Buffer[pdu_len], len = wp_encode_apdu(&Handler_Transmit_Buffer[pdu_len],
invoke_id, &data); invoke_id, &data);
@@ -126,12 +126,11 @@ uint8_t Send_Write_Property_Request(uint32_t device_id,
BACNET_APPLICATION_DATA_VALUE * object_value, BACNET_APPLICATION_DATA_VALUE * object_value,
uint8_t priority, int32_t array_index) uint8_t priority, int32_t array_index)
{ {
uint8_t application_data[MAX_APDU] = {0}; uint8_t application_data[MAX_APDU] = { 0 };
int apdu_len = 0, len = 0; int apdu_len = 0, len = 0;
while (object_value) { while (object_value) {
len = bacapp_encode_data( len = bacapp_encode_data(&application_data[apdu_len],
&application_data[apdu_len],
object_value); object_value);
if ((len + apdu_len) < MAX_APDU) { if ((len + apdu_len) < MAX_APDU) {
apdu_len += len; apdu_len += len;
@@ -141,13 +140,9 @@ uint8_t Send_Write_Property_Request(uint32_t device_id,
object_value = object_value->next; object_value = object_value->next;
} }
return Send_Write_Property_Request_Data( return Send_Write_Property_Request_Data(device_id,
device_id,
object_type, object_type,
object_instance, object_instance,
object_property, object_property,
&application_data[0], &application_data[0], apdu_len, priority, array_index);
apdu_len,
priority,
array_index);
} }
+10 -14
View File
@@ -157,10 +157,8 @@ unsigned Analog_Output_Present_Value_Priority(uint32_t object_instance)
return priority; return priority;
} }
bool Analog_Output_Present_Value_Set( bool Analog_Output_Present_Value_Set(uint32_t object_instance,
uint32_t object_instance, float value, unsigned priority)
float value,
unsigned priority)
{ {
unsigned index = 0; unsigned index = 0;
bool status = false; bool status = false;
@@ -170,7 +168,7 @@ bool Analog_Output_Present_Value_Set(
if (priority && (priority <= BACNET_MAX_PRIORITY) && if (priority && (priority <= BACNET_MAX_PRIORITY) &&
(priority != 6 /* reserved */ ) && (priority != 6 /* reserved */ ) &&
(value >= 0.0) && (value <= 100.0)) { (value >= 0.0) && (value <= 100.0)) {
Analog_Output_Level[index][priority] = (uint8_t)value; Analog_Output_Level[index][priority] = (uint8_t) value;
/* Note: you could set the physical output here to the next /* Note: you could set the physical output here to the next
highest priority, or to the relinquish default if no highest priority, or to the relinquish default if no
priorities are set. priorities are set.
@@ -184,8 +182,7 @@ bool Analog_Output_Present_Value_Set(
return status; return status;
} }
bool Analog_Output_Present_Value_Relinquish( bool Analog_Output_Present_Value_Relinquish(uint32_t object_instance,
uint32_t object_instance,
int priority) int priority)
{ {
unsigned index = 0; unsigned index = 0;
@@ -366,10 +363,9 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data,
/* Command priority 6 is reserved for use by Minimum On/Off /* Command priority 6 is reserved for use by Minimum On/Off
algorithm and may not be used for other purposes in any algorithm and may not be used for other purposes in any
object. */ object. */
status = Analog_Output_Present_Value_Set( status =
wp_data->object_instance, Analog_Output_Present_Value_Set(wp_data->object_instance,
value.type.Real, value.type.Real, wp_data->priority);
wp_data->priority);
if (wp_data->priority == 6) { if (wp_data->priority == 6) {
/* Command priority 6 is reserved for use by Minimum On/Off /* Command priority 6 is reserved for use by Minimum On/Off
algorithm and may not be used for other purposes in any algorithm and may not be used for other purposes in any
@@ -384,9 +380,9 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data,
level = AO_LEVEL_NULL; level = AO_LEVEL_NULL;
object_index = object_index =
Analog_Output_Instance_To_Index(wp_data->object_instance); Analog_Output_Instance_To_Index(wp_data->object_instance);
status = Analog_Output_Present_Value_Relinquish( status =
wp_data->object_instance, Analog_Output_Present_Value_Relinquish(wp_data->
wp_data->priority); object_instance, wp_data->priority);
if (!status) { if (!status) {
*error_class = ERROR_CLASS_PROPERTY; *error_class = ERROR_CLASS_PROPERTY;
*error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; *error_code = ERROR_CODE_VALUE_OUT_OF_RANGE;
+5 -7
View File
@@ -40,13 +40,11 @@ extern "C" {
uint32_t Analog_Output_Index_To_Instance(unsigned index); uint32_t Analog_Output_Index_To_Instance(unsigned index);
char *Analog_Output_Name(uint32_t object_instance); char *Analog_Output_Name(uint32_t object_instance);
float Analog_Output_Present_Value(uint32_t object_instance); float Analog_Output_Present_Value(uint32_t object_instance);
unsigned Analog_Output_Present_Value_Priority(uint32_t object_instance); unsigned Analog_Output_Present_Value_Priority(uint32_t
bool Analog_Output_Present_Value_Set( object_instance);
uint32_t object_instance, bool Analog_Output_Present_Value_Set(uint32_t object_instance,
float value, float value, unsigned priority);
unsigned priority); bool Analog_Output_Present_Value_Relinquish(uint32_t object_instance,
bool Analog_Output_Present_Value_Relinquish(
uint32_t object_instance,
int priority); int priority);
+59 -50
View File
@@ -254,12 +254,11 @@ struct tm {
timer = time(NULL); timer = time(NULL);
tblock = localtime(&timer); tblock = localtime(&timer);
datetime_set_values(bdatetime, datetime_set_values(bdatetime,
(uint16_t)tblock->tm_year, (uint16_t) tblock->tm_year,
(uint8_t)tblock->tm_mon, (uint8_t) tblock->tm_mon,
(uint8_t)tblock->tm_mday, (uint8_t) tblock->tm_mday,
(uint8_t)tblock->tm_hour, (uint8_t) tblock->tm_hour,
(uint8_t)tblock->tm_min, (uint8_t) tblock->tm_min, (uint8_t) tblock->tm_sec, 0);
(uint8_t)tblock->tm_sec, 0);
} }
/* convert the shed level request into an Analog Output Present_Value */ /* convert the shed level request into an Analog Output Present_Value */
@@ -271,18 +270,22 @@ static float Requested_Shed_Level_Value(int object_index)
switch (Requested_Shed_Level[object_index].type) { switch (Requested_Shed_Level[object_index].type) {
case BACNET_SHED_TYPE_PERCENT: case BACNET_SHED_TYPE_PERCENT:
requested_level = (float)Requested_Shed_Level[object_index].value.percent; requested_level =
(float) Requested_Shed_Level[object_index].value.percent;
break; break;
case BACNET_SHED_TYPE_AMOUNT: case BACNET_SHED_TYPE_AMOUNT:
/* Assumptions: wattage is linear with analog output level */ /* Assumptions: wattage is linear with analog output level */
requested_level = Full_Duty_Baseline[object_index] - Requested_Shed_Level[object_index].value.amount; requested_level =
Full_Duty_Baseline[object_index] -
Requested_Shed_Level[object_index].value.amount;
requested_level /= Full_Duty_Baseline[object_index]; requested_level /= Full_Duty_Baseline[object_index];
requested_level *= 100.0; requested_level *= 100.0;
break; break;
case BACNET_SHED_TYPE_LEVEL: case BACNET_SHED_TYPE_LEVEL:
default: default:
for (i = 0; i < MAX_SHED_LEVELS; i++) { for (i = 0; i < MAX_SHED_LEVELS; i++) {
if (Shed_Levels[object_index][i] <= Requested_Shed_Level[object_index].value.level) if (Shed_Levels[object_index][i] <=
Requested_Shed_Level[object_index].value.level)
shed_level_index = i; shed_level_index = i;
} }
requested_level = Shed_Level_Values[shed_level_index]; requested_level = Shed_Level_Values[shed_level_index];
@@ -292,7 +295,8 @@ static float Requested_Shed_Level_Value(int object_index)
return requested_level; return requested_level;
} }
static void Shed_Level_Copy(BACNET_SHED_LEVEL *dest, BACNET_SHED_LEVEL *src) static void Shed_Level_Copy(BACNET_SHED_LEVEL * dest,
BACNET_SHED_LEVEL * src)
{ {
if (dest && src) { if (dest && src) {
dest->type = src->type; dest->type = src->type;
@@ -311,7 +315,8 @@ static void Shed_Level_Copy(BACNET_SHED_LEVEL *dest, BACNET_SHED_LEVEL *src)
} }
} }
static void Shed_Level_Default_Set(BACNET_SHED_LEVEL *dest, BACNET_SHED_LEVEL_TYPE type) static void Shed_Level_Default_Set(BACNET_SHED_LEVEL * dest,
BACNET_SHED_LEVEL_TYPE type)
{ {
if (dest) { if (dest) {
dest->type = type; dest->type = type;
@@ -375,7 +380,7 @@ static void Print_Load_Control_State(int object_index)
if (object_index < MAX_LOAD_CONTROLS) { if (object_index < MAX_LOAD_CONTROLS) {
if (Load_Control_State[object_index] < MAX_LOAD_CONTROL_STATE) { if (Load_Control_State[object_index] < MAX_LOAD_CONTROL_STATE) {
printf("Load Control[%d]=%s\n",object_index, printf("Load Control[%d]=%s\n", object_index,
Load_Control_State_Text[Load_Control_State[object_index]]); Load_Control_State_Text[Load_Control_State[object_index]]);
} }
} }
@@ -410,7 +415,8 @@ void Load_Control_State_Machine(int object_index)
break; break;
} }
if (Load_Control_State[object_index] == SHED_INACTIVE) { if (Load_Control_State[object_index] == SHED_INACTIVE) {
printf("Load Control[%d]:Requested Shed Level=Default\n",object_index); printf("Load Control[%d]:Requested Shed Level=Default\n",
object_index);
break; break;
} }
} }
@@ -431,7 +437,9 @@ void Load_Control_State_Machine(int object_index)
if (diff < 0) { if (diff < 0) {
/* CancelShed */ /* CancelShed */
/* FIXME: stop shedding! i.e. relinquish */ /* FIXME: stop shedding! i.e. relinquish */
printf("Load Control[%d]:Current Time is after Start Time + Duration\n",object_index); printf
("Load Control[%d]:Current Time is after Start Time + Duration\n",
object_index);
Load_Control_State[object_index] = SHED_INACTIVE; Load_Control_State[object_index] = SHED_INACTIVE;
break; break;
} }
@@ -439,33 +447,28 @@ void Load_Control_State_Machine(int object_index)
if (diff < 0) { if (diff < 0) {
/* current time prior to start time */ /* current time prior to start time */
/* ReconfigurePending */ /* ReconfigurePending */
Shed_Level_Copy( Shed_Level_Copy(&Expected_Shed_Level[object_index],
&Expected_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Shed_Level_Default_Set( Shed_Level_Default_Set(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
} else if (diff > 0) { } else if (diff > 0) {
/* current time after to start time */ /* current time after to start time */
printf("Load Control[%d]:Current Time is after Start Time\n",object_index); printf("Load Control[%d]:Current Time is after Start Time\n",
object_index);
/* AbleToMeetShed */ /* AbleToMeetShed */
if (Able_To_Meet_Shed_Request(object_index)) { if (Able_To_Meet_Shed_Request(object_index)) {
Shed_Level_Copy( Shed_Level_Copy(&Expected_Shed_Level[object_index],
&Expected_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Analog_Output_Present_Value_Set(object_index, Analog_Output_Present_Value_Set(object_index,
Requested_Shed_Level_Value(object_index), 4); Requested_Shed_Level_Value(object_index), 4);
Shed_Level_Copy( Shed_Level_Copy(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Load_Control_State[object_index] = SHED_COMPLIANT; Load_Control_State[object_index] = SHED_COMPLIANT;
} else { } else {
/* CannotMeetShed */ /* CannotMeetShed */
Shed_Level_Default_Set( Shed_Level_Default_Set(&Expected_Shed_Level[object_index],
&Expected_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
Shed_Level_Default_Set( Shed_Level_Default_Set(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
Load_Control_State[object_index] = SHED_NON_COMPLIANT; Load_Control_State[object_index] = SHED_NON_COMPLIANT;
} }
@@ -479,14 +482,17 @@ void Load_Control_State_Machine(int object_index)
diff = datetime_compare(&End_Time[object_index], &Current_Time); diff = datetime_compare(&End_Time[object_index], &Current_Time);
if (diff < 0) { if (diff < 0) {
/* FinishedUnsuccessfulShed */ /* FinishedUnsuccessfulShed */
printf("Load Control[%d]:Current Time is after Start Time + Duration\n",object_index); printf
("Load Control[%d]:Current Time is after Start Time + Duration\n",
object_index);
Load_Control_State[object_index] = SHED_INACTIVE; Load_Control_State[object_index] = SHED_INACTIVE;
break; break;
} }
if (Load_Control_Request_Written[object_index] || if (Load_Control_Request_Written[object_index] ||
Start_Time_Property_Written[object_index]) { Start_Time_Property_Written[object_index]) {
/* UnsuccessfulShedReconfigured */ /* UnsuccessfulShedReconfigured */
printf("Load Control[%d]:Control Property written\n",object_index); printf("Load Control[%d]:Control Property written\n",
object_index);
Load_Control_Request_Written[object_index] = false; Load_Control_Request_Written[object_index] = false;
Start_Time_Property_Written[object_index] = false; Start_Time_Property_Written[object_index] = false;
Load_Control_State[object_index] = SHED_REQUEST_PENDING; Load_Control_State[object_index] = SHED_REQUEST_PENDING;
@@ -494,14 +500,13 @@ void Load_Control_State_Machine(int object_index)
} }
if (Able_To_Meet_Shed_Request(object_index)) { if (Able_To_Meet_Shed_Request(object_index)) {
/* CanNowComplyWithShed */ /* CanNowComplyWithShed */
printf("Load Control[%d]:Able to meet Shed Request\n",object_index); printf("Load Control[%d]:Able to meet Shed Request\n",
Shed_Level_Copy( object_index);
&Expected_Shed_Level[object_index], Shed_Level_Copy(&Expected_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Analog_Output_Present_Value_Set(object_index, Analog_Output_Present_Value_Set(object_index,
Requested_Shed_Level_Value(object_index), 4); Requested_Shed_Level_Value(object_index), 4);
Shed_Level_Copy( Shed_Level_Copy(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Load_Control_State[object_index] = SHED_COMPLIANT; Load_Control_State[object_index] = SHED_COMPLIANT;
} }
@@ -514,7 +519,9 @@ void Load_Control_State_Machine(int object_index)
diff = datetime_compare(&End_Time[object_index], &Current_Time); diff = datetime_compare(&End_Time[object_index], &Current_Time);
if (diff < 0) { if (diff < 0) {
/* FinishedSuccessfulShed */ /* FinishedSuccessfulShed */
printf("Load Control[%d]:Current Time is after Start Time + Duration\n",object_index); printf
("Load Control[%d]:Current Time is after Start Time + Duration\n",
object_index);
datetime_wildcard_set(&Start_Time[i]); datetime_wildcard_set(&Start_Time[i]);
Load_Control_State[object_index] = SHED_INACTIVE; Load_Control_State[object_index] = SHED_INACTIVE;
break; break;
@@ -522,7 +529,8 @@ void Load_Control_State_Machine(int object_index)
if (Load_Control_Request_Written[object_index] || if (Load_Control_Request_Written[object_index] ||
Start_Time_Property_Written[object_index]) { Start_Time_Property_Written[object_index]) {
/* UnsuccessfulShedReconfigured */ /* UnsuccessfulShedReconfigured */
printf("Load Control[%d]:Control Property written\n",object_index); printf("Load Control[%d]:Control Property written\n",
object_index);
Load_Control_Request_Written[object_index] = false; Load_Control_Request_Written[object_index] = false;
Start_Time_Property_Written[object_index] = false; Start_Time_Property_Written[object_index] = false;
Load_Control_State[object_index] = SHED_REQUEST_PENDING; Load_Control_State[object_index] = SHED_REQUEST_PENDING;
@@ -530,12 +538,11 @@ void Load_Control_State_Machine(int object_index)
} }
if (!Able_To_Meet_Shed_Request(object_index)) { if (!Able_To_Meet_Shed_Request(object_index)) {
/* CanNoLongerComplyWithShed */ /* CanNoLongerComplyWithShed */
printf("Load Control[%d]:Not able to meet Shed Request\n",object_index); printf("Load Control[%d]:Not able to meet Shed Request\n",
Shed_Level_Default_Set( object_index);
&Expected_Shed_Level[object_index], Shed_Level_Default_Set(&Expected_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
Shed_Level_Default_Set( Shed_Level_Default_Set(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
Load_Control_State[object_index] = SHED_NON_COMPLIANT; Load_Control_State[object_index] = SHED_NON_COMPLIANT;
} }
@@ -543,13 +550,11 @@ void Load_Control_State_Machine(int object_index)
case SHED_INACTIVE: case SHED_INACTIVE:
default: default:
if (Start_Time_Property_Written[object_index]) { if (Start_Time_Property_Written[object_index]) {
printf("Load Control[%d]:Start Time written\n",object_index); printf("Load Control[%d]:Start Time written\n", object_index);
Start_Time_Property_Written[object_index] = false; Start_Time_Property_Written[object_index] = false;
Shed_Level_Copy( Shed_Level_Copy(&Expected_Shed_Level[object_index],
&Expected_Shed_Level[object_index],
&Requested_Shed_Level[object_index]); &Requested_Shed_Level[object_index]);
Shed_Level_Default_Set( Shed_Level_Default_Set(&Actual_Shed_Level[object_index],
&Actual_Shed_Level[object_index],
Requested_Shed_Level[object_index].type); Requested_Shed_Level[object_index].type);
Load_Control_State[object_index] = SHED_REQUEST_PENDING; Load_Control_State[object_index] = SHED_REQUEST_PENDING;
} }
@@ -829,19 +834,22 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data,
&value, PROP_REQUESTED_SHED_LEVEL); &value, PROP_REQUESTED_SHED_LEVEL);
if (value.tag == 0) { if (value.tag == 0) {
/* percent - Unsigned */ /* percent - Unsigned */
Requested_Shed_Level[object_index].type = BACNET_SHED_TYPE_PERCENT; Requested_Shed_Level[object_index].type =
BACNET_SHED_TYPE_PERCENT;
Requested_Shed_Level[object_index].value.percent = Requested_Shed_Level[object_index].value.percent =
value.type.Unsigned_Int; value.type.Unsigned_Int;
status = true; status = true;
} else if (value.tag == 1) { } else if (value.tag == 1) {
/* level - Unsigned */ /* level - Unsigned */
Requested_Shed_Level[object_index].type = BACNET_SHED_TYPE_LEVEL; Requested_Shed_Level[object_index].type =
BACNET_SHED_TYPE_LEVEL;
Requested_Shed_Level[object_index].value.level = Requested_Shed_Level[object_index].value.level =
value.type.Unsigned_Int; value.type.Unsigned_Int;
status = true; status = true;
} else if (value.tag == 2) { } else if (value.tag == 2) {
/* amount - REAL */ /* amount - REAL */
Requested_Shed_Level[object_index].type = BACNET_SHED_TYPE_AMOUNT; Requested_Shed_Level[object_index].type =
BACNET_SHED_TYPE_AMOUNT;
Requested_Shed_Level[object_index].value.amount = Requested_Shed_Level[object_index].value.amount =
value.type.Real; value.type.Real;
status = true; status = true;
@@ -967,7 +975,8 @@ void testLoadControlStateMachine(Test * pTest)
} }
/**/ /**/
status = Load_Control_Write_Property(&wp_data, &error_class, &error_code); status =
Load_Control_Write_Property(&wp_data, &error_class, &error_code);
+7 -6
View File
@@ -62,7 +62,8 @@ static BACNET_PROPERTY_ID Target_Object_Property = PROP_ACKED_TRANSITIONS;
/* array index value or BACNET_ARRAY_ALL */ /* array index value or BACNET_ARRAY_ALL */
static int32_t Target_Object_Property_Index = BACNET_ARRAY_ALL; static int32_t Target_Object_Property_Index = BACNET_ARRAY_ALL;
#define MAX_PROPERTY_VALUES 16 #define MAX_PROPERTY_VALUES 16
static BACNET_APPLICATION_DATA_VALUE Target_Object_Property_Value[MAX_PROPERTY_VALUES]; static BACNET_APPLICATION_DATA_VALUE
Target_Object_Property_Value[MAX_PROPERTY_VALUES];
/* 0 if not set, 1..16 if set */ /* 0 if not set, 1..16 if set */
static uint8_t Target_Object_Property_Priority = 0; static uint8_t Target_Object_Property_Priority = 0;
@@ -269,7 +270,7 @@ int main(int argc, char *argv[])
} }
args_remaining = (argc - 7); args_remaining = (argc - 7);
for (i = 0; i < MAX_PROPERTY_VALUES; i++) { for (i = 0; i < MAX_PROPERTY_VALUES; i++) {
tag_value_arg = 7+(i*2); tag_value_arg = 7 + (i * 2);
/* special case for context tagged values */ /* special case for context tagged values */
if (toupper(argv[tag_value_arg][0]) == 'C') { if (toupper(argv[tag_value_arg][0]) == 'C') {
context_tag = strtol(&argv[tag_value_arg][1], NULL, 0); context_tag = strtol(&argv[tag_value_arg][1], NULL, 0);
@@ -281,7 +282,7 @@ int main(int argc, char *argv[])
Target_Object_Property_Value[i].context_specific = false; Target_Object_Property_Value[i].context_specific = false;
} }
property_tag = strtol(argv[tag_value_arg], NULL, 0); property_tag = strtol(argv[tag_value_arg], NULL, 0);
value_string = argv[tag_value_arg+1]; value_string = argv[tag_value_arg + 1];
args_remaining -= 2; args_remaining -= 2;
/* printf("tag[%d]=%u value[%d]=%s\r\n", /* printf("tag[%d]=%u value[%d]=%s\r\n",
i, property_tag, i, value_string); */ i, property_tag, i, value_string); */
@@ -299,7 +300,7 @@ int main(int argc, char *argv[])
} }
Target_Object_Property_Value[i].next = NULL; Target_Object_Property_Value[i].next = NULL;
if (i > 0) { if (i > 0) {
Target_Object_Property_Value[i-1].next = Target_Object_Property_Value[i - 1].next =
&Target_Object_Property_Value[i]; &Target_Object_Property_Value[i];
} }
if (args_remaining <= 0) if (args_remaining <= 0)
@@ -345,8 +346,8 @@ int main(int argc, char *argv[])
if (found) { if (found) {
if (invoke_id == 0) { if (invoke_id == 0) {
invoke_id = invoke_id =
Send_Write_Property_Request( Send_Write_Property_Request
Target_Device_Object_Instance, Target_Object_Type, (Target_Device_Object_Instance, Target_Object_Type,
Target_Object_Instance, Target_Object_Property, Target_Object_Instance, Target_Object_Property,
&Target_Object_Property_Value[0], &Target_Object_Property_Value[0],
Target_Object_Property_Priority, Target_Object_Property_Priority,
+2 -8
View File
@@ -45,19 +45,13 @@ void INT0_Interrupt(void);
void InterruptVectorHigh(void) void InterruptVectorHigh(void)
{ {
/* jump to interrupt routine */ /* jump to interrupt routine */
_asm goto InterruptHandlerHigh _asm goto InterruptHandlerHigh _endasm}
_endasm
}
#pragma code #pragma code
#pragma code InterruptVectorLow = 0x18 #pragma code InterruptVectorLow = 0x18
void InterruptVectorLow(void) void InterruptVectorLow(void)
{ {
/* jump to interrupt routine */ /* jump to interrupt routine */
_asm goto InterruptHandlerLow _asm goto InterruptHandlerLow _endasm}
_endasm
}
#pragma code #pragma code
#pragma interrupt InterruptHandlerHigh #pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh(void) void InterruptHandlerHigh(void)
+10 -10
View File
@@ -43,7 +43,7 @@
/* define this to enable ICD */ /* define this to enable ICD */
/* #define USE_ICD */ /* #define USE_ICD */
// Configuration Bits /* Configuration Bits */
#pragma config OSC = HS, OSCS = OFF #pragma config OSC = HS, OSCS = OFF
#pragma config PWRT = ON #pragma config PWRT = ON
#pragma config BOR = ON, BORV = 27 #pragma config BOR = ON, BORV = 27
@@ -82,11 +82,11 @@
#pragma config EBTRB = OFF #pragma config EBTRB = OFF
#ifdef USE_ICD #ifdef USE_ICD
#pragma config WDT = OFF, WDTPS = 128 #pragma config WDT = OFF, WDTPS = 128
#pragma config DEBUG = ON #pragma config DEBUG = ON
#else #else
#pragma config WDT = ON, WDTPS = 128 #pragma config WDT = ON, WDTPS = 128
#pragma config DEBUG = OFF #pragma config DEBUG = OFF
#endif /* USE_ICD */ #endif /* USE_ICD */
volatile uint8_t Milliseconds = 0; volatile uint8_t Milliseconds = 0;
@@ -103,14 +103,15 @@ static void BACnet_Service_Handlers_Init(void)
handler_read_property); handler_read_property);
apdu_set_confirmed_handler(SERVICE_CONFIRMED_REINITIALIZE_DEVICE, apdu_set_confirmed_handler(SERVICE_CONFIRMED_REINITIALIZE_DEVICE,
handler_reinitialize_device); handler_reinitialize_device);
#if 0 #if 0
apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY,
handler_write_property); handler_write_property);
apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, apdu_set_unconfirmed_handler
(SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION,
handler_timesync_utc); handler_timesync_utc);
apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION, apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION,
handler_timesync); handler_timesync);
#endif #endif
/* handle communication so we can shutup when asked */ /* handle communication so we can shutup when asked */
apdu_set_confirmed_handler apdu_set_confirmed_handler
(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, (SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL,
@@ -122,8 +123,7 @@ void Reinitialize(void)
uint8_t i; uint8_t i;
char name = 0; char name = 0;
_asm reset _endasm _asm reset _endasm return;
return;
} }
void Global_Int(enum INT_STATE state) void Global_Int(enum INT_STATE state)
+2 -2
View File
@@ -88,13 +88,13 @@ void RS485_Send_Frame(volatile struct mstp_port_struct_t *mstp_port, /* port
RS485_Comstat.TxHead = 0; RS485_Comstat.TxHead = 0;
memcpy((void *) &RS485_Tx_Buffer[0], (void *) buffer, nbytes); memcpy((void *) &RS485_Tx_Buffer[0], (void *) buffer, nbytes);
#if 0 #if 0
for (i = 0; i < nbytes; i++) { for (i = 0; i < nbytes; i++) {
/* put the data into the buffer */ /* put the data into the buffer */
RS485_Tx_Buffer[i] = *buffer; RS485_Tx_Buffer[i] = *buffer;
buffer++; buffer++;
} }
#endif #endif
RS485_Comstat.Tx_Bytes = nbytes; RS485_Comstat.Tx_Bytes = nbytes;
/* disable the receiver */ /* disable the receiver */
PIE3bits.RC2IE = 0; PIE3bits.RC2IE = 0;
+5
View File
@@ -114,6 +114,11 @@ make -f indtext.mak
./indtext >> test.log ./indtext >> test.log
make -f indtext.mak clean make -f indtext.mak clean
make -f demo/object/lc.mak clean
make -f demo/object/lc.mak
./loadcontrol >> test.log
make -f demo/object/lc.mak clean
make -f demo/object/lsp.mak clean make -f demo/object/lsp.mak clean
make -f demo/object/lsp.mak make -f demo/object/lsp.mak
./lsp >> test.log ./lsp >> test.log