Added WriteProperty service and Analog Value object without priority array to pic18f6720 port demo.

This commit is contained in:
skarg
2007-03-30 20:51:57 +00:00
parent 378b5f710d
commit 42ade5a5a0
6 changed files with 93 additions and 214 deletions
+21 -5
View File
@@ -36,6 +36,7 @@
#include "dlmstp.h"
#include "rs485.h"
#include "ai.h"
#include "av.h"
#include "bi.h"
#include "bv.h"
#include "wp.h"
@@ -182,13 +183,16 @@ bool Device_Object_List_Identifier(unsigned array_index,
*instance = Object_Instance_Number;
status = true;
}
/* normalize the index since
we know it is not the previous objects */
/* array index starts at 1 */
object_index = array_index - 1;
/* 1 for the device object */
object_count = 1;
/* FIXME: add objects as needed */
/* binary input objects */
/* binary value objects */
if (!status) {
/* normalize the index since
we know it is not the previous objects */
/* array index starts at 1, and 1 for the device object */
object_index = array_index - 2;
object_index -= object_count;
object_count = Binary_Value_Count();
/* is it a valid index for this object? */
if (object_index < object_count) {
@@ -198,6 +202,17 @@ bool Device_Object_List_Identifier(unsigned array_index,
}
}
/* analog input objects */
if (!status) {
/* array index starts at 1, and 1 for the device object */
object_index -= object_count;
object_count = Analog_Value_Count();
if (object_index < object_count) {
*object_type = OBJECT_ANALOG_VALUE;
*instance = Analog_Value_Index_To_Instance(object_index);
status = true;
}
}
/* analog input objects */
if (!status) {
/* array index starts at 1, and 1 for the device object */
object_index -= object_count;
@@ -329,6 +344,7 @@ int Device_Encode_Property_APDU(uint8_t * apdu,
}
/* FIXME: indicate the objects that YOU support */
bitstring_set_bit(&bit_string, OBJECT_DEVICE, true);
bitstring_set_bit(&bit_string, OBJECT_ANALOG_VALUE, true);
bitstring_set_bit(&bit_string, OBJECT_BINARY_VALUE, true);
bitstring_set_bit(&bit_string, OBJECT_ANALOG_INPUT, true);
bitstring_set_bit(&bit_string, OBJECT_BINARY_INPUT, true);