Implemented EMCY objects.
Added emcy.c and emcy.h
Modified data.h for necessary variables.
Added some EMCY message sendings in TestMasterSlave example.
Modified configure script to define EMCY_MAX_ERRORS.
Modified python scripts to make 1003h object always available (with a callback).
--- a/CONTRIBUTORS Tue Sep 25 15:29:37 2007 +0200
+++ b/CONTRIBUTORS Wed Sep 26 16:02:00 2007 +0200
@@ -11,5 +11,6 @@
David DUMINY (sté A6R)
Laurent ROMIEUX
Zakaria BELAMRI
+ Luis JIMENEZ
Many thanks to the main contributors for their great work.
--- a/configure Tue Sep 25 15:29:37 2007 +0200
+++ b/configure Wed Sep 26 16:02:00 2007 +0200
@@ -55,6 +55,9 @@
# Default to little-endian
CANOPEN_BIG_ENDIAN=
+# Max number of active errors managed in error_data structure.
+EMCY_MAX_ERRORS=8
+
###########################################################################
# DEFAULT BUILD OPTIONS #
###########################################################################
@@ -108,6 +111,7 @@
--SDO_TIMEOUT_MS=*) SDO_TIMEOUT_MS=$1;;
--CANOPEN_BIG_ENDIAN=*) CANOPEN_BIG_ENDIAN=$1;;
--MAX_NB_TIMER=*) MAX_NB_TIMER=$1;;
+ --EMCY_MAX_ERRORS=*) EMCY_MAX_ERRORS=$1;;
--help) echo "Usage: ./configure [options]"
echo "Options:"
echo " --cc=foo Use compiler 'foo' instead of defaults ${CC1} or ${CC2}."
@@ -143,6 +147,7 @@
echo " --SDO_MAX_SIMULTANEOUS_TRANSFERTS [=4] Number of SDO that the node can manage concurrently"
echo " --NMT_MAX_NODE_ID [=128] can be reduced to gain memory on small network"
echo " --SDO_TIMEOUT_MS [=3000] Timeout in milliseconds for SDO (None to disable the feature)"
+ echo " --EMCY_MAX_ERRORS [=8] Max number of active errors managed in error_data structure"
exit 0;;
*) echo "Unknown argument ${1}"; exit -1;;
esac
@@ -574,7 +579,8 @@
US_TO_TIMEVAL_FACTOR\
TIMEVAL\
TIMEVAL_MAX\
- RTCAN_SOCKET; do
+ RTCAN_SOCKET\
+ EMCY_MAX_ERRORS; do
if [ "${!i}" = "" ]; then
echo "/* $i is not defined */" >> include/config.h
else
@@ -585,7 +591,8 @@
for i in \
SDO_MAX_SIMULTANEOUS_TRANSFERTS\
- NMT_MAX_NODE_ID; do
+ NMT_MAX_NODE_ID\
+ EMCY_MAX_ERRORS; do
echo "#define REPEAT_"$i"_TIMES(repeat)\\">> include/config.h
times=${!i}
result=""
--- a/doc/manual/en/manual.tex Tue Sep 25 15:29:37 2007 +0200
+++ b/doc/manual/en/manual.tex Wed Sep 26 16:02:00 2007 +0200
@@ -198,7 +198,7 @@
producer or receiver.
\item NMT NodeGuard implemented : Not fully implemented.
\item TIME (time Stamp) : Not implemented.
-\item EMCY (emergency objects) : Not implemented.
+\item EMCY (emergency objects) : Sending and reception of EMCY objectos (without manufacturer specific error field).
\item PDO Mapping bit per bit implemented.
\end{enumerate}
{\bfseries\upshape
--- a/examples/TestMasterMicroMod/TestMaster.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterMicroMod/TestMaster.c Wed Sep 26 16:02:00 2007 +0200
@@ -62,6 +62,23 @@
{ RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
};
+/* index 0x1003 : Pre-defined Error Field */
+ UNS8 TestMaster_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+ UNS32 TestMaster_obj1003[] =
+ {
+ 0x0 /* 0 */
+ };
+ ODCallback_t TestMaster_Index1003_callbacks[] =
+ {
+ NULL,
+ NULL,
+ };
+ subindex TestMaster_Index1003[] =
+ {
+ { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1003 },
+ { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1003[0] }
+ };
+
/* index 0x1005 : SYNC COB ID. */
UNS32 TestMaster_obj1005 = 0x40000080; /* 1073741952 */
ODCallback_t TestMaster_Index1005_callbacks[] =
@@ -118,13 +135,13 @@
UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640; /* 1600 */
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0; /* 1472 */
- INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40; /* 64 */
+ UNS8 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40; /* 64 */
subindex TestMaster_Index1280[] =
{
{ RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
{ RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
{ RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
- { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+ { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
};
/* index 0x1400 : Receive PDO 1 Parameter. */
@@ -177,6 +194,15 @@
UNS16 TestMaster_obj1800_Inhibit_Time = 0x0; /* 0 */
UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0; /* 0 */
UNS16 TestMaster_obj1800_Event_Timer = 0x0; /* 0 */
+ ODCallback_t TestMaster_Index1800_callbacks[] =
+ {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ };
subindex TestMaster_Index1800[] =
{
{ RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
@@ -291,7 +317,7 @@
case 0x1280: i = 6;break;
case 0x1400: i = 7;break;
case 0x1600: i = 8;break;
- case 0x1800: i = 9;break;
+ case 0x1800: i = 9;*callbacks = TestMaster_Index1800_callbacks; break;
case 0x1A00: i = 10;break;
case 0x2000: i = 11;break;
case 0x200F: i = 12;break;
--- a/examples/TestMasterMicroMod/TestMaster.h Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterMicroMod/TestMaster.h Wed Sep 26 16:02:00 2007 +0200
@@ -12,6 +12,7 @@
/* Master node data struct */
extern CO_Data TestMaster_Data;
+extern ODCallback_t Transmit_PDO_1_Parameter_callbacks[]; /* Callbacks of index0x1800 */
extern UNS8 DO; /* Mapped at index 0x2000, subindex 0x00*/
extern UNS8 DI1; /* Mapped at index 0x200F, subindex 0x00*/
extern UNS8 DI2; /* Mapped at index 0x2010, subindex 0x00*/
--- a/examples/TestMasterSlave/Master.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Master.c Wed Sep 26 16:02:00 2007 +0200
@@ -180,10 +180,14 @@
MasterMap13);
}
+void TestMaster_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg)
+{
+ eprintf("Master received EMCY message. Node: %2.2x ErrorCode: %4.4x ErrorRegister: %2.2x\n", nodeID, errCode, errReg);
+}
+
char query_result = 0;
char waiting_answer = 0;
-
static void CheckSDO(CO_Data* d, UNS8 nodeId)
{
UNS32 abortCode;
--- a/examples/TestMasterSlave/Master.h Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Master.h Wed Sep 26 16:02:00 2007 +0200
@@ -11,3 +11,4 @@
void TestMaster_post_sync(void);
void TestMaster_post_TPDO(void);
+void TestMaster_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
--- a/examples/TestMasterSlave/Slave.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Slave.c Wed Sep 26 16:02:00 2007 +0200
@@ -86,6 +86,13 @@
{
SlaveMap13 += 1;
eprintf("TestSlave_post_TPDO\n");
+
+ /* send an error and recover inmediately every 12 cycles */
+ if(SlaveMap13 % 12 == 0)
+ {
+ EMCY_setError(&TestSlave_Data, 0x4200, 0x08);
+ EMCY_errorRecovered(&TestSlave_Data, 0x4200);
+ }
}
void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex)
@@ -101,3 +108,8 @@
* */
eprintf("TestSlave_storeODSubIndex : %4.4x %2.2x\n", wIndex, bSubindex);
}
+
+void TestSlave_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg)
+{
+ eprintf("Slave received EMCY message. Node: %2.2x ErrorCode: %4.4x ErrorRegister: %2.2x\n", nodeID, errCode, errReg);
+}
--- a/examples/TestMasterSlave/Slave.h Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Slave.h Wed Sep 26 16:02:00 2007 +0200
@@ -12,3 +12,4 @@
void TestSlave_post_sync(void);
void TestSlave_post_TPDO(void);
void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex);
+void TestSlave_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
--- a/examples/TestMasterSlave/TestMaster.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMaster.c Wed Sep 26 16:02:00 2007 +0200
@@ -66,6 +66,23 @@
{ RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
};
+/* index 0x1003 : Pre-defined Error Field */
+ UNS8 TestMaster_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+ UNS32 TestMaster_obj1003[] =
+ {
+ 0x0 /* 0 */
+ };
+ ODCallback_t TestMaster_Index1003_callbacks[] =
+ {
+ NULL,
+ NULL,
+ };
+ subindex TestMaster_Index1003[] =
+ {
+ { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1003 },
+ { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1003[0] }
+ };
+
/* index 0x1005 : SYNC COB ID. */
UNS32 TestMaster_obj1005 = 0x40000080; /* 1073741952 */
ODCallback_t TestMaster_Index1005_callbacks[] =
@@ -152,13 +169,13 @@
UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602; /* 1538 */
UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582; /* 1410 */
- INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2; /* 2 */
+ UNS8 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2; /* 2 */
subindex TestMaster_Index1280[] =
{
{ RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
{ RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
{ RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
- { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+ { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
};
/* index 0x1400 : Receive PDO 1 Parameter. */
--- a/examples/TestMasterSlave/TestMaster.od Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMaster.od Wed Sep 26 16:02:00 2007 +0200
@@ -1,18 +1,18 @@
<?xml version="1.0"?>
<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="46582816">
-<attr name="Profile" type="dict" id="45421552" >
+<PyObject module="node" class="Node" id="1111003340">
+<attr name="Profile" type="dict" id="1110999764" >
<entry>
<key type="numeric" value="24576" />
- <val type="dict" id="46279792" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518712" >
- <item type="dict" id="47325472" >
+ <val type="dict" id="1111000172" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093228" >
+ <item type="dict" id="1111000580" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -30,7 +30,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="46104736" >
+ <item type="dict" id="1111001124" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -66,15 +66,15 @@
</entry>
<entry>
<key type="numeric" value="24832" />
- <val type="dict" id="45358112" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519144" >
- <item type="dict" id="46394368" >
+ <val type="dict" id="1101358324" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093484" >
+ <item type="dict" id="1111000444" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -92,7 +92,7 @@
<val type="string" value="Number of Input 16 bit" />
</entry>
</item>
- <item type="dict" id="46284592" >
+ <item type="dict" id="1111000308" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -128,15 +128,15 @@
</entry>
<entry>
<key type="numeric" value="24578" />
- <val type="dict" id="43954032" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505712" >
- <item type="dict" id="45613168" >
+ <val type="dict" id="1101359004" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101094476" >
+ <item type="dict" id="1111001532" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -154,7 +154,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="46102848" >
+ <item type="dict" id="1111001804" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -190,15 +190,15 @@
</entry>
<entry>
<key type="numeric" value="24579" />
- <val type="dict" id="45570224" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46495648" >
- <item type="dict" id="46401968" >
+ <val type="dict" id="1111000852" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093580" >
+ <item type="dict" id="1111001940" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -216,7 +216,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="46247504" >
+ <item type="dict" id="1111002212" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -252,15 +252,15 @@
</entry>
<entry>
<key type="numeric" value="25604" />
- <val type="dict" id="44928832" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505856" >
- <item type="dict" id="45914656" >
+ <val type="dict" id="1111000988" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093772" >
+ <item type="dict" id="1111002348" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -278,7 +278,7 @@
<val type="string" value="Number of Analogue Input" />
</entry>
</item>
- <item type="dict" id="46843712" >
+ <item type="dict" id="1111002620" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -314,15 +314,15 @@
</entry>
<entry>
<key type="numeric" value="24581" />
- <val type="dict" id="46284880" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519432" >
- <item type="dict" id="45392416" >
+ <val type="dict" id="1111001668" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093100" >
+ <item type="dict" id="1111002756" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -354,15 +354,15 @@
</entry>
<entry>
<key type="numeric" value="24582" />
- <val type="dict" id="46411968" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512176" >
- <item type="dict" id="46412256" >
+ <val type="dict" id="1111011372" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093804" >
+ <item type="dict" id="1111011780" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -380,7 +380,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="46412544" >
+ <item type="dict" id="1111001260" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -416,15 +416,15 @@
</entry>
<entry>
<key type="numeric" value="24583" />
- <val type="dict" id="46842832" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512392" >
- <item type="dict" id="46412832" >
+ <val type="dict" id="1111011644" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101067148" >
+ <item type="dict" id="1111000036" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -442,7 +442,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="46413120" >
+ <item type="dict" id="1111012052" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -478,15 +478,15 @@
</entry>
<entry>
<key type="numeric" value="24584" />
- <val type="dict" id="46154848" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505784" >
- <item type="dict" id="45748288" >
+ <val type="dict" id="1111002076" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101066988" >
+ <item type="dict" id="1111012188" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -504,7 +504,7 @@
<val type="string" value="Number of Input 8 bit" />
</entry>
</item>
- <item type="dict" id="45748624" >
+ <item type="dict" id="1111012460" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -540,15 +540,15 @@
</entry>
<entry>
<key type="numeric" value="24834" />
- <val type="dict" id="45358400" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513832" >
- <item type="dict" id="45358688" >
+ <val type="dict" id="1111002892" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101067404" >
+ <item type="dict" id="1111012596" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -566,7 +566,7 @@
<val type="string" value="Number of Input 16 bit" />
</entry>
</item>
- <item type="dict" id="46154560" >
+ <item type="dict" id="1111012868" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -602,15 +602,15 @@
</entry>
<entry>
<key type="numeric" value="25616" />
- <val type="dict" id="45912240" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513688" >
- <item type="dict" id="46438752" >
+ <val type="dict" id="1111011916" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1100837548" >
+ <item type="dict" id="1111013004" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -628,7 +628,7 @@
<val type="string" value="Number of Analogue Input 8 Bit" />
</entry>
</item>
- <item type="dict" id="46439040" >
+ <item type="dict" id="1111013276" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -664,15 +664,15 @@
</entry>
<entry>
<key type="numeric" value="25617" />
- <val type="dict" id="46350880" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513544" >
- <item type="dict" id="46351168" >
+ <val type="dict" id="1111012324" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101076972" >
+ <item type="dict" id="1111013412" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -690,7 +690,7 @@
<val type="string" value="Number of Analogue Input 16 Bit" />
</entry>
</item>
- <item type="dict" id="45911952" >
+ <item type="dict" id="1111013684" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -726,15 +726,15 @@
</entry>
<entry>
<key type="numeric" value="25618" />
- <val type="dict" id="46400912" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513400" >
- <item type="dict" id="46452128" >
+ <val type="dict" id="1111012732" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101079308" >
+ <item type="dict" id="1111013820" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -752,7 +752,7 @@
<val type="string" value="Number of Analogue Outputs 32 Bit" />
</entry>
</item>
- <item type="dict" id="46452416" >
+ <item type="dict" id="1111014092" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -788,15 +788,15 @@
</entry>
<entry>
<key type="numeric" value="24835" />
- <val type="dict" id="45914048" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512032" >
- <item type="dict" id="45914336" >
+ <val type="dict" id="1111013140" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101067372" >
+ <item type="dict" id="1111014228" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -814,7 +814,7 @@
<val type="string" value="Number of Input 16 bit" />
</entry>
</item>
- <item type="dict" id="46400624" >
+ <item type="dict" id="1111014500" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -850,15 +850,15 @@
</entry>
<entry>
<key type="numeric" value="25620" />
- <val type="dict" id="46446112" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512752" >
- <item type="dict" id="46280624" >
+ <val type="dict" id="1111013548" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101062892" >
+ <item type="dict" id="1111014636" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -876,7 +876,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="46417840" >
+ <item type="dict" id="1111014908" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -912,15 +912,15 @@
</entry>
<entry>
<key type="numeric" value="25088" />
- <val type="dict" id="45347120" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513040" >
- <item type="dict" id="46329888" >
+ <val type="dict" id="1111013956" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101093868" >
+ <item type="dict" id="1111015044" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -938,7 +938,7 @@
<val type="string" value="Number of Output 8 Bit" />
</entry>
</item>
- <item type="dict" id="46444064" >
+ <item type="dict" id="1111015468" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -974,15 +974,15 @@
</entry>
<entry>
<key type="numeric" value="25603" />
- <val type="dict" id="45341216" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512824" >
- <item type="dict" id="45861408" >
+ <val type="dict" id="1111014364" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101064652" >
+ <item type="dict" id="1111015604" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1000,7 +1000,7 @@
<val type="string" value="Number of Analogue Input Float" />
</entry>
</item>
- <item type="dict" id="45571648" >
+ <item type="dict" id="1111015876" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1036,15 +1036,15 @@
</entry>
<entry>
<key type="numeric" value="25378" />
- <val type="dict" id="46841872" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503120" >
- <item type="dict" id="46842160" >
+ <val type="dict" id="1111034164" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005196" >
+ <item type="dict" id="1111035252" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1062,7 +1062,7 @@
<val type="string" value="Number of Output 32 Bit" />
</entry>
</item>
- <item type="dict" id="46842448" >
+ <item type="dict" id="1111035524" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1098,15 +1098,15 @@
</entry>
<entry>
<key type="numeric" value="25344" />
- <val type="dict" id="46912576" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503048" >
- <item type="dict" id="46912864" >
+ <val type="dict" id="1111014772" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1101094028" >
+ <item type="dict" id="1111016012" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1124,7 +1124,7 @@
<val type="string" value="Number of Output 16 Bit" />
</entry>
</item>
- <item type="dict" id="46913152" >
+ <item type="dict" id="1111016284" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1160,7 +1160,7 @@
</entry>
<entry>
<key type="numeric" value="24608" />
- <val type="dict" id="45610288" >
+ <val type="dict" id="1111015180" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -1175,8 +1175,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46518928" >
- <item type="dict" id="46280128" >
+ <val type="list" id="1111004076" >
+ <item type="dict" id="1111016420" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1194,7 +1194,7 @@
<val type="string" value="Number of Input 1 bit" />
</entry>
</item>
- <item type="dict" id="45418800" >
+ <item type="dict" id="1111016692" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1230,15 +1230,15 @@
</entry>
<entry>
<key type="numeric" value="25633" />
- <val type="dict" id="45500336" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512464" >
- <item type="dict" id="45628304" >
+ <val type="dict" id="1111002484" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111003852" >
+ <item type="dict" id="1111016828" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1256,7 +1256,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46139248" >
+ <item type="dict" id="1111017100" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1292,15 +1292,15 @@
</entry>
<entry>
<key type="numeric" value="24866" />
- <val type="dict" id="45558736" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46514120" >
- <item type="dict" id="45404464" >
+ <val type="dict" id="1111015740" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111003564" >
+ <item type="dict" id="1111017236" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1318,7 +1318,7 @@
<val type="string" value="Number of Input 32 bit" />
</entry>
</item>
- <item type="dict" id="44824048" >
+ <item type="dict" id="1111017508" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1354,15 +1354,15 @@
</entry>
<entry>
<key type="numeric" value="24867" />
- <val type="dict" id="46394080" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518424" >
- <item type="dict" id="45093088" >
+ <val type="dict" id="1111016556" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004204" >
+ <item type="dict" id="1111017644" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1380,7 +1380,7 @@
<val type="string" value="Number of Input 32 bit" />
</entry>
</item>
- <item type="dict" id="45614384" >
+ <item type="dict" id="1111017916" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1416,15 +1416,15 @@
</entry>
<entry>
<key type="numeric" value="25636" />
- <val type="dict" id="45419712" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496296" >
- <item type="dict" id="46459776" >
+ <val type="dict" id="1111016964" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111003692" >
+ <item type="dict" id="1111018052" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1442,7 +1442,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46460064" >
+ <item type="dict" id="1111018324" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1478,15 +1478,15 @@
</entry>
<entry>
<key type="numeric" value="24838" />
- <val type="dict" id="45509680" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505064" >
- <item type="dict" id="45892784" >
+ <val type="dict" id="1111017372" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111003980" >
+ <item type="dict" id="1111018460" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1504,7 +1504,7 @@
<val type="string" value="Number of Input 16 bit" />
</entry>
</item>
- <item type="dict" id="44927216" >
+ <item type="dict" id="1111018732" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1540,15 +1540,15 @@
</entry>
<entry>
<key type="numeric" value="25638" />
- <val type="dict" id="45639808" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496224" >
- <item type="dict" id="45880768" >
+ <val type="dict" id="1111017780" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004268" >
+ <item type="dict" id="1111018868" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1566,7 +1566,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="47237920" >
+ <item type="dict" id="1111019140" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1602,15 +1602,15 @@
</entry>
<entry>
<key type="numeric" value="25383" />
- <val type="dict" id="47101952" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46511456" >
- <item type="dict" id="44928544" >
+ <val type="dict" id="1111018188" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004300" >
+ <item type="dict" id="1111019276" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1628,7 +1628,7 @@
<val type="string" value="Number of Output 32 Bit" />
</entry>
</item>
- <item type="dict" id="47265280" >
+ <item type="dict" id="1111023796" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1664,15 +1664,15 @@
</entry>
<entry>
<key type="numeric" value="25640" />
- <val type="dict" id="45532192" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518568" >
- <item type="dict" id="47031872" >
+ <val type="dict" id="1111018596" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004332" >
+ <item type="dict" id="1111023932" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1690,7 +1690,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="45757584" >
+ <item type="dict" id="1111024204" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1726,15 +1726,15 @@
</entry>
<entry>
<key type="numeric" value="25641" />
- <val type="dict" id="45955552" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46512608" >
- <item type="dict" id="46898224" >
+ <val type="dict" id="1111019004" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004364" >
+ <item type="dict" id="1111024340" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1752,7 +1752,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="45551376" >
+ <item type="dict" id="1111024612" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1788,15 +1788,15 @@
</entry>
<entry>
<key type="numeric" value="25642" />
- <val type="dict" id="46134672" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46511600" >
- <item type="dict" id="44679392" >
+ <val type="dict" id="1111023660" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004236" >
+ <item type="dict" id="1111024748" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1814,7 +1814,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="45946160" >
+ <item type="dict" id="1111025020" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1850,15 +1850,15 @@
</entry>
<entry>
<key type="numeric" value="25643" />
- <val type="dict" id="46973968" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513256" >
- <item type="dict" id="46369904" >
+ <val type="dict" id="1111024068" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004428" >
+ <item type="dict" id="1111025156" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1876,7 +1876,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="47189472" >
+ <item type="dict" id="1111025428" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1912,15 +1912,15 @@
</entry>
<entry>
<key type="numeric" value="25644" />
- <val type="dict" id="45914944" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46511168" >
- <item type="dict" id="45331536" >
+ <val type="dict" id="1111024476" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004460" >
+ <item type="dict" id="1111025564" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -1938,7 +1938,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="45331824" >
+ <item type="dict" id="1111025836" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -1974,15 +1974,15 @@
</entry>
<entry>
<key type="numeric" value="25645" />
- <val type="dict" id="45911168" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46510952" >
- <item type="dict" id="45911456" >
+ <val type="dict" id="1111024884" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004524" >
+ <item type="dict" id="1111025972" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2000,7 +2000,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46328352" >
+ <item type="dict" id="1111026244" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2036,15 +2036,15 @@
</entry>
<entry>
<key type="numeric" value="25646" />
- <val type="dict" id="45428176" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46510736" >
- <item type="dict" id="45428464" >
+ <val type="dict" id="1111025292" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004588" >
+ <item type="dict" id="1111026380" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2062,7 +2062,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46265488" >
+ <item type="dict" id="1111026652" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2098,15 +2098,15 @@
</entry>
<entry>
<key type="numeric" value="25647" />
- <val type="dict" id="46265824" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46510520" >
- <item type="dict" id="46338624" >
+ <val type="dict" id="1111025700" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004556" >
+ <item type="dict" id="1111026788" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2124,7 +2124,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46338912" >
+ <item type="dict" id="1111027060" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2160,7 +2160,7 @@
</entry>
<entry>
<key type="numeric" value="24624" />
- <val type="dict" id="45346336" >
+ <val type="dict" id="1111026108" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -2175,8 +2175,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46510232" >
- <item type="dict" id="45346624" >
+ <val type="list" id="1111004620" >
+ <item type="dict" id="1111027196" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2194,7 +2194,7 @@
<val type="string" value="Number of Input 1 bit" />
</entry>
</item>
- <item type="dict" id="47250976" >
+ <item type="dict" id="1111027468" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2230,15 +2230,15 @@
</entry>
<entry>
<key type="numeric" value="25352" />
- <val type="dict" id="47251264" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505928" >
- <item type="dict" id="47094672" >
+ <val type="dict" id="1111016148" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111003724" >
+ <item type="dict" id="1111027756" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2256,7 +2256,7 @@
<val type="string" value="Number of Output 16 Bit" />
</entry>
</item>
- <item type="dict" id="47094960" >
+ <item type="dict" id="1111028028" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2292,15 +2292,15 @@
</entry>
<entry>
<key type="numeric" value="25650" />
- <val type="dict" id="47232800" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505208" >
- <item type="dict" id="47233088" >
+ <val type="dict" id="1111026516" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004652" >
+ <item type="dict" id="1111028164" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2318,7 +2318,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="47248160" >
+ <item type="dict" id="1111028436" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2354,15 +2354,15 @@
</entry>
<entry>
<key type="numeric" value="25090" />
- <val type="dict" id="46781216" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46502544" >
- <item type="dict" id="46781504" >
+ <val type="dict" id="1111030340" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005036" >
+ <item type="dict" id="1111036220" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2380,7 +2380,7 @@
<val type="string" value="Number of Output 8 Bit" />
</entry>
</item>
- <item type="dict" id="46781792" >
+ <item type="dict" id="1111036492" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2416,15 +2416,15 @@
</entry>
<entry>
<key type="numeric" value="25096" />
- <val type="dict" id="47326048" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505352" >
- <item type="dict" id="47326336" >
+ <val type="dict" id="1111026924" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004748" >
+ <item type="dict" id="1111029388" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2442,7 +2442,7 @@
<val type="string" value="Number of Output 8 Bit" />
</entry>
</item>
- <item type="dict" id="46368576" >
+ <item type="dict" id="1111029660" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2478,7 +2478,7 @@
</entry>
<entry>
<key type="numeric" value="24632" />
- <val type="dict" id="46368912" >
+ <val type="dict" id="1111028300" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -2493,8 +2493,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46512248" >
- <item type="dict" id="46369200" >
+ <val type="list" id="1111004780" >
+ <item type="dict" id="1111029796" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2512,7 +2512,7 @@
<val type="string" value="Number of Input 1 bit" />
</entry>
</item>
- <item type="dict" id="46402304" >
+ <item type="dict" id="1111030068" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2548,15 +2548,15 @@
</entry>
<entry>
<key type="numeric" value="24871" />
- <val type="dict" id="46917632" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46504848" >
- <item type="dict" id="46917920" >
+ <val type="dict" id="1111041268" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004492" >
+ <item type="dict" id="1111042356" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2574,7 +2574,7 @@
<val type="string" value="Number of Input 32 bit" />
</entry>
</item>
- <item type="dict" id="46918208" >
+ <item type="dict" id="1111042628" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2609,70 +2609,8 @@
</val>
</entry>
<entry>
- <key type="numeric" value="25351" />
- <val type="dict" id="46907360" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46495864" >
- <item type="dict" id="46907648" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 16 Bit" />
- </entry>
- </item>
- <item type="dict" id="46907984" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="6" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Value Outputs 16 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
<key type="numeric" value="25152" />
- <val type="dict" id="47263552" >
+ <val type="dict" id="1111029524" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -2687,8 +2625,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46504272" >
- <item type="dict" id="47263840" >
+ <val type="list" id="1111004876" >
+ <item type="dict" id="1111031020" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2706,7 +2644,7 @@
<val type="string" value="Number of Output 1 Bit" />
</entry>
</item>
- <item type="dict" id="47264176" >
+ <item type="dict" id="1111031292" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2742,15 +2680,15 @@
</entry>
<entry>
<key type="numeric" value="24864" />
- <val type="dict" id="46269200" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46504128" >
- <item type="dict" id="46844832" >
+ <val type="dict" id="1111011508" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004908" >
+ <item type="dict" id="1111031428" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2768,7 +2706,7 @@
<val type="string" value="Number of Input 32 bit" />
</entry>
</item>
- <item type="dict" id="46845168" >
+ <item type="dict" id="1111031852" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2804,15 +2742,15 @@
</entry>
<entry>
<key type="numeric" value="25666" />
- <val type="dict" id="46845456" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503984" >
- <item type="dict" id="46845744" >
+ <val type="dict" id="1111029932" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004940" >
+ <item type="dict" id="1111031988" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2830,7 +2768,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="46846080" >
+ <item type="dict" id="1111032260" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2866,15 +2804,15 @@
</entry>
<entry>
<key type="numeric" value="25667" />
- <val type="dict" id="46765072" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503840" >
- <item type="dict" id="46765360" >
+ <val type="dict" id="1111031156" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004972" >
+ <item type="dict" id="1111032396" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2892,7 +2830,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="46765696" >
+ <item type="dict" id="1111032668" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2928,15 +2866,15 @@
</entry>
<entry>
<key type="numeric" value="25668" />
- <val type="dict" id="46765984" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503696" >
- <item type="dict" id="46766272" >
+ <val type="dict" id="1111031564" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005004" >
+ <item type="dict" id="1111032804" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -2954,7 +2892,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="46766608" >
+ <item type="dict" id="1111033076" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -2990,15 +2928,15 @@
</entry>
<entry>
<key type="numeric" value="25669" />
- <val type="dict" id="46766944" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503552" >
- <item type="dict" id="47134240" >
+ <val type="dict" id="1111032124" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005100" >
+ <item type="dict" id="1111033212" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3016,7 +2954,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="47134528" >
+ <item type="dict" id="1111033484" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3052,15 +2990,15 @@
</entry>
<entry>
<key type="numeric" value="25665" />
- <val type="dict" id="47134816" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46497520" >
- <item type="dict" id="47135104" >
+ <val type="dict" id="1111032532" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005068" >
+ <item type="dict" id="1111033620" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3078,7 +3016,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="47135392" >
+ <item type="dict" id="1111033892" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3114,15 +3052,15 @@
</entry>
<entry>
<key type="numeric" value="25648" />
- <val type="dict" id="47135728" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503264" >
- <item type="dict" id="47136016" >
+ <val type="dict" id="1111032940" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005132" >
+ <item type="dict" id="1111034028" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3140,7 +3078,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="47136304" >
+ <item type="dict" id="1111034300" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3176,7 +3114,7 @@
</entry>
<entry>
<key type="numeric" value="24672" />
- <val type="dict" id="46790576" >
+ <val type="dict" id="1111038668" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -3191,8 +3129,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46502184" >
- <item type="dict" id="46790864" >
+ <val type="list" id="1111005612" >
+ <item type="dict" id="1111039756" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3210,7 +3148,7 @@
<val type="string" value="Number of Input 1 bit" />
</entry>
</item>
- <item type="dict" id="46791200" >
+ <item type="dict" id="1111040180" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3246,15 +3184,15 @@
</entry>
<entry>
<key type="numeric" value="25094" />
- <val type="dict" id="46840960" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44121552" >
- <item type="dict" id="46841248" >
+ <val type="dict" id="1111033756" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005228" >
+ <item type="dict" id="1111034844" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3272,7 +3210,7 @@
<val type="string" value="Number of Output 8 Bit" />
</entry>
</item>
- <item type="dict" id="46841536" >
+ <item type="dict" id="1111035116" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3307,16 +3245,78 @@
</val>
</entry>
<entry>
+ <key type="numeric" value="25680" />
+ <val type="dict" id="1111037852" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005740" >
+ <item type="dict" id="1111040316" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Outputs" />
+ </entry>
+ </item>
+ <item type="dict" id="1111040588" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="7" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Output %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Output SI Unit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
<key type="numeric" value="25634" />
- <val type="dict" id="46840048" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46503336" >
- <item type="dict" id="46840336" >
+ <val type="dict" id="1111033348" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004396" >
+ <item type="dict" id="1111034436" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3334,7 +3334,7 @@
<val type="string" value="Number of Interrupt Source Bank" />
</entry>
</item>
- <item type="dict" id="46840624" >
+ <item type="dict" id="1111034708" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3370,15 +3370,15 @@
</entry>
<entry>
<key type="numeric" value="25384" />
- <val type="dict" id="46908320" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44207856" >
- <item type="dict" id="46908608" >
+ <val type="dict" id="1111042492" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005772" >
+ <item type="dict" id="1111043580" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3396,7 +3396,7 @@
<val type="string" value="Number of Output 32 Bit" />
</entry>
</item>
- <item type="dict" id="46908896" >
+ <item type="dict" id="1111043852" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3431,234 +3431,8 @@
</val>
</entry>
<entry>
- <key type="numeric" value="25680" />
- <val type="dict" id="46780352" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46513976" >
- <item type="dict" id="46780640" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Outputs" />
- </entry>
- </item>
- <item type="dict" id="46780928" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="7" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Output %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Output SI Unit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25350" />
- <val type="dict" id="47248496" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505568" >
- <item type="dict" id="47240992" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 16 Bit" />
- </entry>
- </item>
- <item type="dict" id="47241280" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="6" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Mode Outputs 16 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25635" />
- <val type="dict" id="46782128" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46495432" >
- <item type="dict" id="46782416" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="1" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input Global Interrupt Enable" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input Global Interrupt Enable" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="1" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="24870" />
- <val type="dict" id="46918496" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46495792" >
- <item type="dict" id="46906736" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Input 32 bit" />
- </entry>
- </item>
- <item type="dict" id="46907072" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="7" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Interrupt Any Change Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Interrupt Mask Input Any Change 32 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25120" />
- <val type="dict" id="46783664" >
+ <key type="numeric" value="24656" />
+ <val type="dict" id="1111029116" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -3673,26 +3447,26 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46502328" >
- <item type="dict" id="46783952" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 1 Bit" />
- </entry>
- </item>
- <item type="dict" id="46413408" >
+ <val type="list" id="1111004844" >
+ <item type="dict" id="1111030612" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Input 1 bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111030884" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3707,7 +3481,7 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Write Outputs 0x%X[((idx-1)*128+sub)]" />
+ <val type="string" value="Interrupt Mask Any Change Input bit 0x%X[((idx-1)*128+sub)]" />
</entry>
<entry>
<key type="string" value="nbmax" />
@@ -3722,83 +3496,21 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Write Outputs Bit %d to %d[(idx*128-127,idx*128)]" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25600" />
- <val type="dict" id="46414480" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44208000" >
- <item type="dict" id="46414768" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Input 8 Bit" />
- </entry>
- </item>
- <item type="dict" id="46415104" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="2" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Read Analogue Input 8 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25346" />
- <val type="dict" id="46417088" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46511744" >
- <item type="dict" id="46788128" >
+ <val type="string" value="Interrupt Mask Input Any Change Bit 0x%X to 0x%X[(idx*128-127,idx*128)]" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25350" />
+ <val type="dict" id="1111027332" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004684" >
+ <item type="dict" id="1111028572" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -3816,7 +3528,7 @@
<val type="string" value="Number of Output 16 Bit" />
</entry>
</item>
- <item type="dict" id="46788464" >
+ <item type="dict" id="1111028844" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -3831,152 +3543,130 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Change Polarity Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Change Polarity Outputs 16 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25670" />
- <val type="dict" id="46788800" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46502040" >
- <item type="dict" id="46789088" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Outputs" />
- </entry>
- </item>
- <item type="dict" id="46789376" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="4" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Output %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Output Offset Integer" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25376" />
- <val type="dict" id="46789712" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46497736" >
- <item type="dict" id="46790000" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 32 Bit" />
- </entry>
- </item>
- <item type="dict" id="46790288" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="7" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Write Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Write Output 32 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25184" />
- <val type="dict" id="46415440" >
+ <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Mode Outputs 16 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25635" />
+ <val type="dict" id="1111034980" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005356" >
+ <item type="dict" id="1111036628" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="1" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input Global Interrupt Enable" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input Global Interrupt Enable" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="1" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25351" />
+ <val type="dict" id="1111042084" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005836" >
+ <item type="dict" id="1111043172" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 16 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111043444" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="6" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Value Outputs 16 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25120" />
+ <val type="dict" id="1111037172" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -3991,8 +3681,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46511888" >
- <item type="dict" id="46415728" >
+ <val type="list" id="1111005420" >
+ <item type="dict" id="1111035388" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4010,7 +3700,7 @@
<val type="string" value="Number of Output 1 Bit" />
</entry>
</item>
- <item type="dict" id="46416016" >
+ <item type="dict" id="1111037580" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4025,7 +3715,7 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Error Value Outputs 0x%X[((idx-1)*128+sub)]" />
+ <val type="string" value="Write Outputs 0x%X[((idx-1)*128+sub)]" />
</entry>
<entry>
<key type="string" value="nbmax" />
@@ -4040,13 +3730,261 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Error Value Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="24656" />
- <val type="dict" id="46792272" >
+ <val type="string" value="Write Outputs Bit %d to %d[(idx*128-127,idx*128)]" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25600" />
+ <val type="dict" id="1111037036" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005388" >
+ <item type="dict" id="1111037716" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Input 8 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111037988" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="2" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Read Analogue Input 8 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25346" />
+ <val type="dict" id="1111036764" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005452" >
+ <item type="dict" id="1111038532" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 16 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111038804" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="6" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Change Polarity Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Change Polarity Outputs 16 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25670" />
+ <val type="dict" id="1111037444" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005484" >
+ <item type="dict" id="1111038940" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Outputs" />
+ </entry>
+ </item>
+ <item type="dict" id="1111039212" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="4" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Output %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Output Offset Integer" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25376" />
+ <val type="dict" id="1111038260" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005516" >
+ <item type="dict" id="1111039348" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 32 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111039620" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="7" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Write Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Write Output 32 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25184" />
+ <val type="dict" id="1111035948" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -4061,26 +3999,26 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46502832" >
- <item type="dict" id="46792560" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Input 1 bit" />
- </entry>
- </item>
- <item type="dict" id="46792896" >
+ <val type="list" id="1111003596" >
+ <item type="dict" id="1111038124" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 1 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111038396" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4095,7 +4033,7 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Interrupt Mask Any Change Input bit 0x%X[((idx-1)*128+sub)]" />
+ <val type="string" value="Error Value Outputs 0x%X[((idx-1)*128+sub)]" />
</entry>
<entry>
<key type="string" value="nbmax" />
@@ -4110,385 +4048,13 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Interrupt Mask Input Any Change Bit 0x%X to 0x%X[(idx*128-127,idx*128)]" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25602" />
- <val type="dict" id="46793184" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46497088" >
- <item type="dict" id="46914224" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Input 32 Bit" />
- </entry>
- </item>
- <item type="dict" id="46914560" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="4" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Read Analogue Input 32 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25382" />
- <val type="dict" id="46914896" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496872" >
- <item type="dict" id="46915184" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 32 Bit" />
- </entry>
- </item>
- <item type="dict" id="46915472" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="7" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Mode Outputs 32 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25649" />
- <val type="dict" id="46915808" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496728" >
- <item type="dict" id="46916096" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Inputs" />
- </entry>
- </item>
- <item type="dict" id="46916384" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="4" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input Offset Integer" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25095" />
- <val type="dict" id="46916720" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496152" >
- <item type="dict" id="46917008" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Output 8 Bit" />
- </entry>
- </item>
- <item type="dict" id="46917296" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*8-7,sub*8)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Error Value Outputs 8 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25639" />
- <val type="dict" id="46402592" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46504632" >
- <item type="dict" id="46402880" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Inputs" />
- </entry>
- </item>
- <item type="dict" id="47097376" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="7" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input Interrupt Negative Delta Unsigned" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25601" />
- <val type="dict" id="46782704" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46502400" >
- <item type="dict" id="46782992" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Input 16 Bit" />
- </entry>
- </item>
- <item type="dict" id="46783328" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="3" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Input %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Read Analogue Input 16 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25200" />
- <val type="dict" id="47234848" >
+ <val type="string" value="Error Value Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25168" />
+ <val type="dict" id="1111034572" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -4503,8 +4069,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46502760" >
- <item type="dict" id="47235136" >
+ <val type="list" id="1111005292" >
+ <item type="dict" id="1111035660" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4522,7 +4088,7 @@
<val type="string" value="Number of Output 1 Bit" />
</entry>
</item>
- <item type="dict" id="47325760" >
+ <item type="dict" id="1111036084" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4537,7 +4103,7 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Filter Constant Outputs 0x%X[((idx-1)*128+sub)]" />
+ <val type="string" value="Error Mode Outputs 0x%X[((idx-1)*128+sub)]" />
</entry>
<entry>
<key type="string" value="nbmax" />
@@ -4552,21 +4118,83 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Filter Constant Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="24872" />
- <val type="dict" id="47097712" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46504416" >
- <item type="dict" id="47098000" >
+ <val type="string" value="Error Mode Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25602" />
+ <val type="dict" id="1111039076" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005548" >
+ <item type="dict" id="1111040724" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Input 32 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111040996" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="4" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Read Analogue Input 32 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="24870" />
+ <val type="dict" id="1111040044" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005644" >
+ <item type="dict" id="1111041132" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4584,7 +4212,7 @@
<val type="string" value="Number of Input 32 bit" />
</entry>
</item>
- <item type="dict" id="47263264" >
+ <item type="dict" id="1111041404" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4599,90 +4227,276 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Interrupt High to Low Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Interrupt Mask Input High to Low 32 Bit" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25619" />
- <val type="dict" id="46909232" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46505424" >
- <item type="dict" id="46909520" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="ro" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="5" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Number of Analogue Outputs Float" />
- </entry>
- </item>
- <item type="dict" id="46909808" >
- <entry>
- <key type="string" value="access" />
- <val type="string" value="rw" />
- </entry>
- <entry>
- <key type="string" value="pdo" />
- <val type="True" value="" />
- </entry>
- <entry>
- <key type="string" value="type" />
- <val type="numeric" value="8" />
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Analogue Output %d[(sub)]" />
- </entry>
- <entry>
- <key type="string" value="nbmax" />
- <val type="numeric" value="254" />
- </entry>
- </item>
- </val>
- </entry>
- <entry>
- <key type="string" value="name" />
- <val type="string" value="Write Analogue Output Float" />
- </entry>
- <entry>
- <key type="string" value="struct" />
- <val type="numeric" value="7" />
- </entry>
- </val>
- </entry>
- <entry>
- <key type="numeric" value="25168" />
- <val type="dict" id="46910144" >
+ <val type="string" value="Interrupt Any Change Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Interrupt Mask Input Any Change 32 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25649" />
+ <val type="dict" id="1111040452" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005580" >
+ <item type="dict" id="1111041540" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Inputs" />
+ </entry>
+ </item>
+ <item type="dict" id="1111041812" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="4" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input Offset Integer" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25095" />
+ <val type="dict" id="1111040860" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005708" >
+ <item type="dict" id="1111041948" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 8 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111042220" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*8-7,sub*8)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Value Outputs 8 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25639" />
+ <val type="dict" id="1111028708" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111004812" >
+ <item type="dict" id="1111030204" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Inputs" />
+ </entry>
+ </item>
+ <item type="dict" id="1111030476" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="7" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input Interrupt Negative Delta Unsigned" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25601" />
+ <val type="dict" id="1111041676" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005324" >
+ <item type="dict" id="1111042764" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Input 16 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111043036" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="3" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Input %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Read Analogue Input 16 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25200" />
+ <val type="dict" id="1111027892" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -4697,8 +4511,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="44128376" >
- <item type="dict" id="46910432" >
+ <val type="list" id="1111004716" >
+ <item type="dict" id="1111028980" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4716,7 +4530,7 @@
<val type="string" value="Number of Output 1 Bit" />
</entry>
</item>
- <item type="dict" id="46910720" >
+ <item type="dict" id="1111029252" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4731,7 +4545,7 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Error Mode Outputs 0x%X[((idx-1)*128+sub)]" />
+ <val type="string" value="Filter Constant Outputs 0x%X[((idx-1)*128+sub)]" />
</entry>
<entry>
<key type="string" value="nbmax" />
@@ -4746,21 +4560,207 @@
</entry>
<entry>
<key type="string" value="name" />
- <val type="string" value="Error Mode Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+ <val type="string" value="Filter Constant Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="24872" />
+ <val type="dict" id="1111036900" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005260" >
+ <item type="dict" id="1111037308" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Input 32 bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111030748" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="7" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Interrupt High to Low Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Interrupt Mask Input High to Low 32 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25619" />
+ <val type="dict" id="1111042900" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005932" >
+ <item type="dict" id="1111052332" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Analogue Outputs Float" />
+ </entry>
+ </item>
+ <item type="dict" id="1111052604" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="8" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Analogue Output %d[(sub)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Write Analogue Output Float" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
+ </entry>
+ </val>
+ </entry>
+ <entry>
+ <key type="numeric" value="25382" />
+ <val type="dict" id="1111043308" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005676" >
+ <item type="dict" id="1111052740" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="ro" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="5" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Number of Output 32 Bit" />
+ </entry>
+ </item>
+ <item type="dict" id="1111053012" >
+ <entry>
+ <key type="string" value="access" />
+ <val type="string" value="rw" />
+ </entry>
+ <entry>
+ <key type="string" value="pdo" />
+ <val type="True" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="type" />
+ <val type="numeric" value="7" />
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+ </entry>
+ <entry>
+ <key type="string" value="nbmax" />
+ <val type="numeric" value="254" />
+ </entry>
+ </item>
+ </val>
+ </entry>
+ <entry>
+ <key type="string" value="name" />
+ <val type="string" value="Error Mode Outputs 32 Bit" />
+ </entry>
+ <entry>
+ <key type="string" value="struct" />
+ <val type="numeric" value="7" />
</entry>
</val>
</entry>
<entry>
<key type="numeric" value="24839" />
- <val type="dict" id="46911792" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46496008" >
- <item type="dict" id="46912080" >
+ <val type="dict" id="1111043716" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005964" >
+ <item type="dict" id="1111053148" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4778,7 +4778,7 @@
<val type="string" value="Number of Input 16 bit" />
</entry>
</item>
- <item type="dict" id="46405376" >
+ <item type="dict" id="1111053420" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4814,15 +4814,15 @@
</entry>
<entry>
<key type="numeric" value="25671" />
- <val type="dict" id="46405712" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46504776" >
- <item type="dict" id="46406000" >
+ <val type="dict" id="1111052468" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005804" >
+ <item type="dict" id="1111053556" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4840,7 +4840,7 @@
<val type="string" value="Number of Analogue Outputs" />
</entry>
</item>
- <item type="dict" id="46406288" >
+ <item type="dict" id="1111053828" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4876,15 +4876,15 @@
</entry>
<entry>
<key type="numeric" value="25637" />
- <val type="dict" id="46406624" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46497304" >
- <item type="dict" id="46406912" >
+ <val type="dict" id="1111052876" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006060" >
+ <item type="dict" id="1111053964" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4902,7 +4902,7 @@
<val type="string" value="Number of Analogue Inputs" />
</entry>
</item>
- <item type="dict" id="46407200" >
+ <item type="dict" id="1111054236" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -4938,7 +4938,7 @@
</entry>
<entry>
<key type="numeric" value="24688" />
- <val type="dict" id="46407536" >
+ <val type="dict" id="1111053284" >
<entry>
<key type="string" value="incr" />
<val type="numeric" value="1" />
@@ -4953,8 +4953,8 @@
</entry>
<entry>
<key type="string" value="values" />
- <val type="list" id="46513472" >
- <item type="dict" id="46407824" >
+ <val type="list" id="1111006028" >
+ <item type="dict" id="1111054372" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -4972,7 +4972,7 @@
<val type="string" value="Number of Input 1 bit" />
</entry>
</item>
- <item type="dict" id="46408112" >
+ <item type="dict" id="1111054644" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5007,8 +5007,8 @@
</val>
</entry>
</attr>
-<attr name="Description" type="string"></attr>
-<attr name="Dictionary" type="dict" id="46409184" >
+<attr name="Description" type="string" value="" />
+<attr name="Dictionary" type="dict" id="1111036356" >
<entry>
<key type="numeric" value="4096" />
<val type="numeric" value="301" />
@@ -5063,7 +5063,7 @@
</entry>
<entry>
<key type="numeric" value="5122" />
- <val type="list" id="46522024" >
+ <val type="list" id="1101093676" >
<item type="numeric" value="1025" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5073,7 +5073,7 @@
</entry>
<entry>
<key type="numeric" value="4112" />
- <val type="list" id="46521016" >
+ <val type="list" id="1101092716" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5082,7 +5082,7 @@
</entry>
<entry>
<key type="numeric" value="4113" />
- <val type="list" id="46520944" >
+ <val type="list" id="1111006092" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5091,7 +5091,7 @@
</entry>
<entry>
<key type="numeric" value="5123" />
- <val type="list" id="46520872" >
+ <val type="list" id="1111005900" >
<item type="numeric" value="1154" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5101,13 +5101,13 @@
</entry>
<entry>
<key type="numeric" value="4118" />
- <val type="list" id="46520656" >
+ <val type="list" id="1111006156" >
<item type="numeric" value="132572" />
</val>
</entry>
<entry>
<key type="numeric" value="4120" />
- <val type="list" id="46520728" >
+ <val type="list" id="1111006124" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5116,7 +5116,7 @@
</entry>
<entry>
<key type="numeric" value="4736" />
- <val type="list" id="46520800" >
+ <val type="list" id="1111006444" >
<item type="numeric" value="1538" />
<item type="numeric" value="1410" />
<item type="numeric" value="2" />
@@ -5128,7 +5128,7 @@
</entry>
<entry>
<key type="numeric" value="7970" />
- <val type="list" id="46520584" >
+ <val type="list" id="1111006252" >
<item type="string" value="" />
<item type="string" value="\x01\x00\x00\x00\x17\x10\x00\x02\x00\x00\x00\xe8\x03" />
</val>
@@ -5143,7 +5143,7 @@
</entry>
<entry>
<key type="numeric" value="5120" />
- <val type="list" id="46520512" >
+ <val type="list" id="1111006316" >
<item type="string" value="{True:self.ID+(base+2)*0x100,False:0}[base<4]" />
<item type="numeric" value="1" />
<item type="numeric" value="0" />
@@ -5153,7 +5153,7 @@
</entry>
<entry>
<key type="numeric" value="5632" />
- <val type="list" id="46520440" >
+ <val type="list" id="1111006412" >
<item type="numeric" value="536870913" />
<item type="numeric" value="536936449" />
<item type="numeric" value="537001985" />
@@ -5172,7 +5172,7 @@
</entry>
<entry>
<key type="numeric" value="5121" />
- <val type="list" id="46520368" >
+ <val type="list" id="1111003532" >
<item type="string" value="{True:self.ID+(base+2)*0x100,False:0}[base<4]" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -5182,27 +5182,27 @@
</entry>
<entry>
<key type="numeric" value="5633" />
- <val type="list" id="46520296" >
+ <val type="list" id="1111006348" >
<item type="numeric" value="537526288" />
</val>
</entry>
<entry>
<key type="numeric" value="5635" />
- <val type="list" id="46520224" >
+ <val type="list" id="1111006508" >
<item type="numeric" value="537657360" />
</val>
</entry>
<entry>
<key type="numeric" value="5634" />
- <val type="list" id="46520008" >
+ <val type="list" id="1111006284" >
<item type="numeric" value="537591824" />
</val>
</entry>
</attr>
-<attr name="SpecificMenu" type="list" id="46520080" >
- <item type="tuple" id="42137936" >
+<attr name="SpecificMenu" type="list" id="1101093388" >
+ <item type="tuple" id="1111003660" >
<item type="string" value="Read Input Bit" />
- <item type="list" id="46519936" >
+ <item type="list" id="1111006188" >
<item type="numeric" value="24608" />
<item type="numeric" value="24624" />
<item type="numeric" value="24632" />
@@ -5211,9 +5211,9 @@
<item type="numeric" value="24688" />
</item>
</item>
- <item type="tuple" id="42135992" >
+ <item type="tuple" id="1111003948" >
<item type="string" value="Write Output Bit" />
- <item type="list" id="46520152" >
+ <item type="list" id="1111006476" >
<item type="numeric" value="25120" />
<item type="numeric" value="25152" />
<item type="numeric" value="25168" />
@@ -5222,20 +5222,20 @@
</item>
</item>
</attr>
-<attr name="ParamsDictionary" type="dict" id="45635056" >
+<attr name="ParamsDictionary" type="dict" id="1111171116" >
</attr>
-<attr name="UserMapping" type="dict" id="46409840" >
+<attr name="UserMapping" type="dict" id="1111054100" >
<entry>
<key type="numeric" value="8192" />
- <val type="dict" id="46410128" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519864" >
- <item type="dict" id="46410416" >
+ <val type="dict" id="1111053692" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006732" >
+ <item type="dict" id="1111055596" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5267,15 +5267,15 @@
</entry>
<entry>
<key type="numeric" value="8193" />
- <val type="dict" id="46410752" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519792" >
- <item type="dict" id="46411040" >
+ <val type="dict" id="1111039484" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005868" >
+ <item type="dict" id="1111055324" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5307,15 +5307,15 @@
</entry>
<entry>
<key type="numeric" value="8194" />
- <val type="dict" id="46411328" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519648" >
- <item type="dict" id="47330224" >
+ <val type="dict" id="1111055052" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006828" >
+ <item type="dict" id="1111054508" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5347,15 +5347,15 @@
</entry>
<entry>
<key type="numeric" value="8195" />
- <val type="dict" id="47330560" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519720" >
- <item type="dict" id="47330848" >
+ <val type="dict" id="1111055868" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111005996" >
+ <item type="dict" id="1111055732" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5387,15 +5387,15 @@
</entry>
<entry>
<key type="numeric" value="8196" />
- <val type="dict" id="47331184" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519576" >
- <item type="dict" id="47331472" >
+ <val type="dict" id="1111056140" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006636" >
+ <item type="dict" id="1111056004" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5427,15 +5427,15 @@
</entry>
<entry>
<key type="numeric" value="8197" />
- <val type="dict" id="47331936" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519360" >
- <item type="dict" id="47332224" >
+ <val type="dict" id="1111056564" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006860" >
+ <item type="dict" id="1111056428" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5467,15 +5467,15 @@
</entry>
<entry>
<key type="numeric" value="8198" />
- <val type="dict" id="47333472" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519504" >
- <item type="dict" id="47333760" >
+ <val type="dict" id="1111056836" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006796" >
+ <item type="dict" id="1111056700" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5507,15 +5507,15 @@
</entry>
<entry>
<key type="numeric" value="8199" />
- <val type="dict" id="46767408" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519072" >
- <item type="dict" id="46767696" >
+ <val type="dict" id="1111057108" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111007180" >
+ <item type="dict" id="1111056972" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5547,15 +5547,15 @@
</entry>
<entry>
<key type="numeric" value="8200" />
- <val type="dict" id="46768160" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519000" >
- <item type="dict" id="46768448" >
+ <val type="dict" id="1111057380" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111007020" >
+ <item type="dict" id="1111057244" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5587,15 +5587,15 @@
</entry>
<entry>
<key type="numeric" value="8201" />
- <val type="dict" id="46768912" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518856" >
- <item type="dict" id="46769200" >
+ <val type="dict" id="1111057652" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006956" >
+ <item type="dict" id="1111057516" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5627,15 +5627,15 @@
</entry>
<entry>
<key type="numeric" value="8202" />
- <val type="dict" id="46769664" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518496" >
- <item type="dict" id="46769952" >
+ <val type="dict" id="1111057924" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111006988" >
+ <item type="dict" id="1111057788" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5667,15 +5667,15 @@
</entry>
<entry>
<key type="numeric" value="8203" />
- <val type="dict" id="46770416" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518640" >
- <item type="dict" id="46770704" >
+ <val type="dict" id="1111058196" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111007116" >
+ <item type="dict" id="1111058060" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5707,15 +5707,15 @@
</entry>
<entry>
<key type="numeric" value="8204" />
- <val type="dict" id="46771104" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46518352" >
- <item type="dict" id="46771392" >
+ <val type="dict" id="1111058468" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111060524" >
+ <item type="dict" id="1111058332" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5746,18 +5746,18 @@
</val>
</entry>
</attr>
-<attr name="DS302" type="dict" id="46772576" >
+<attr name="DS302" type="dict" id="1111058740" >
<entry>
<key type="numeric" value="7968" />
- <val type="dict" id="46772864" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46519216" >
- <item type="dict" id="46773152" >
+ <val type="dict" id="1111055188" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111060652" >
+ <item type="dict" id="1111059420" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -5775,7 +5775,7 @@
<val type="string" value="Number of Entries" />
</entry>
</item>
- <item type="dict" id="46773488" >
+ <item type="dict" id="1111059284" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5811,15 +5811,15 @@
</entry>
<entry>
<key type="numeric" value="7969" />
- <val type="dict" id="46773824" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="46522240" >
- <item type="dict" id="46774112" >
+ <val type="dict" id="1111058876" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111060620" >
+ <item type="dict" id="1111054916" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -5837,7 +5837,7 @@
<val type="string" value="Number of Entries" />
</entry>
</item>
- <item type="dict" id="46774400" >
+ <item type="dict" id="1111059692" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -5873,15 +5873,15 @@
</entry>
<entry>
<key type="numeric" value="7970" />
- <val type="dict" id="46774736" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204832" >
- <item type="dict" id="46775024" >
+ <val type="dict" id="1111055460" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111060684" >
+ <item type="dict" id="1111059828" >
<entry>
<key type="string" value="access" />
<val type="string" value="ro" />
@@ -5899,7 +5899,7 @@
<val type="string" value="Number of Entries" />
</entry>
</item>
- <item type="dict" id="46775312" >
+ <item type="dict" id="1111060100" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
--- a/examples/TestMasterSlave/TestMasterSlave.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMasterSlave.c Wed Sep 26 16:02:00 2007 +0200
@@ -193,7 +193,8 @@
TestSlave_Data.stopped = TestSlave_stopped;
TestSlave_Data.post_sync = TestSlave_post_sync;
TestSlave_Data.post_TPDO = TestSlave_post_TPDO;
- TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex;
+ TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex;
+ TestSlave_Data.post_emcy = TestSlave_post_emcy;
if(!canOpen(&SlaveBoard,&TestSlave_Data)){
eprintf("Cannot open Slave Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate);
@@ -209,6 +210,7 @@
TestMaster_Data.stopped = TestMaster_stopped;
TestMaster_Data.post_sync = TestMaster_post_sync;
TestMaster_Data.post_TPDO = TestMaster_post_TPDO;
+ TestMaster_Data.post_emcy = TestMaster_post_emcy;
if(!canOpen(&MasterBoard,&TestMaster_Data)){
eprintf("Cannot open Master Board (%s,%s)\n",MasterBoard.busname, MasterBoard.baudrate);
--- a/examples/TestMasterSlave/TestSlave.c Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestSlave.c Wed Sep 26 16:02:00 2007 +0200
@@ -66,6 +66,44 @@
{ RO, uint8, sizeof (UNS8), (void*)&TestSlave_obj1001 }
};
+/* index 0x1003 : Pre-defined Error Field. */
+ UNS8 TestSlave_highestSubIndex_obj1003 = 8; /* number of subindex - 1*/
+ UNS32 TestSlave_obj1003[] =
+ {
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0, /* 0 */
+ 0x0 /* 0 */
+ };
+ ODCallback_t TestSlave_Index1003_callbacks[] =
+ {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ };
+ subindex TestSlave_Index1003[] =
+ {
+ { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1003 },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[0] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[1] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[2] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[3] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[4] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[5] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[6] },
+ { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[7] }
+ };
+
/* index 0x1005 : SYNC COB ID. */
UNS32 TestSlave_obj1005 = 0x80; /* 128 */
ODCallback_t TestSlave_Index1005_callbacks[] =
@@ -465,6 +503,7 @@
{
{ (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
{ (subindex*)TestSlave_Index1001,sizeof(TestSlave_Index1001)/sizeof(TestSlave_Index1001[0]), 0x1001},
+ { (subindex*)TestSlave_Index1003,sizeof(TestSlave_Index1003)/sizeof(TestSlave_Index1003[0]), 0x1003},
{ (subindex*)TestSlave_Index1005,sizeof(TestSlave_Index1005)/sizeof(TestSlave_Index1005[0]), 0x1005},
{ (subindex*)TestSlave_Index1006,sizeof(TestSlave_Index1006)/sizeof(TestSlave_Index1006[0]), 0x1006},
{ (subindex*)TestSlave_Index1010,sizeof(TestSlave_Index1010)/sizeof(TestSlave_Index1010[0]), 0x1010},
@@ -504,36 +543,37 @@
switch(wIndex){
case 0x1000: i = 0;break;
case 0x1001: i = 1;break;
- case 0x1005: i = 2;*callbacks = TestSlave_Index1005_callbacks; break;
- case 0x1006: i = 3;*callbacks = TestSlave_Index1006_callbacks; break;
- case 0x1010: i = 4;*callbacks = TestSlave_Index1010_callbacks; break;
- case 0x1011: i = 5;*callbacks = TestSlave_Index1011_callbacks; break;
- case 0x1017: i = 6;*callbacks = TestSlave_Index1017_callbacks; break;
- case 0x1018: i = 7;break;
- case 0x1200: i = 8;break;
- case 0x1800: i = 9;*callbacks = TestSlave_Index1800_callbacks; break;
- case 0x1801: i = 10;*callbacks = TestSlave_Index1801_callbacks; break;
- case 0x1802: i = 11;*callbacks = TestSlave_Index1802_callbacks; break;
- case 0x1803: i = 12;*callbacks = TestSlave_Index1803_callbacks; break;
- case 0x1804: i = 13;*callbacks = TestSlave_Index1804_callbacks; break;
- case 0x1A00: i = 14;break;
- case 0x1A01: i = 15;break;
- case 0x1A02: i = 16;break;
- case 0x1A03: i = 17;break;
- case 0x1A04: i = 18;break;
- case 0x2000: i = 19;break;
- case 0x2001: i = 20;break;
- case 0x2002: i = 21;break;
- case 0x2003: i = 22;break;
- case 0x2004: i = 23;break;
- case 0x2005: i = 24;break;
- case 0x2006: i = 25;break;
- case 0x2007: i = 26;break;
- case 0x2008: i = 27;break;
- case 0x2009: i = 28;break;
- case 0x200A: i = 29;break;
- case 0x200B: i = 30;break;
- case 0x200C: i = 31;break;
+ case 0x1003: i = 2;*callbacks = TestSlave_Index1003_callbacks; break;
+ case 0x1005: i = 3;*callbacks = TestSlave_Index1005_callbacks; break;
+ case 0x1006: i = 4;*callbacks = TestSlave_Index1006_callbacks; break;
+ case 0x1010: i = 5;*callbacks = TestSlave_Index1010_callbacks; break;
+ case 0x1011: i = 6;*callbacks = TestSlave_Index1011_callbacks; break;
+ case 0x1017: i = 7;*callbacks = TestSlave_Index1017_callbacks; break;
+ case 0x1018: i = 8;break;
+ case 0x1200: i = 9;break;
+ case 0x1800: i = 10;*callbacks = TestSlave_Index1800_callbacks; break;
+ case 0x1801: i = 11;*callbacks = TestSlave_Index1801_callbacks; break;
+ case 0x1802: i = 12;*callbacks = TestSlave_Index1802_callbacks; break;
+ case 0x1803: i = 13;*callbacks = TestSlave_Index1803_callbacks; break;
+ case 0x1804: i = 14;*callbacks = TestSlave_Index1804_callbacks; break;
+ case 0x1A00: i = 15;break;
+ case 0x1A01: i = 16;break;
+ case 0x1A02: i = 17;break;
+ case 0x1A03: i = 18;break;
+ case 0x1A04: i = 19;break;
+ case 0x2000: i = 20;break;
+ case 0x2001: i = 21;break;
+ case 0x2002: i = 22;break;
+ case 0x2003: i = 23;break;
+ case 0x2004: i = 24;break;
+ case 0x2005: i = 25;break;
+ case 0x2006: i = 26;break;
+ case 0x2007: i = 27;break;
+ case 0x2008: i = 28;break;
+ case 0x2009: i = 29;break;
+ case 0x200A: i = 30;break;
+ case 0x200B: i = 31;break;
+ case 0x200C: i = 32;break;
default:
*errorCode = OD_NO_SUCH_OBJECT;
return NULL;
@@ -550,21 +590,21 @@
s_PDO_status TestSlave_PDO_status[5] = {s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer};
quick_index TestSlave_firstIndex = {
- 8, /* SDO_SVR */
+ 9, /* SDO_SVR */
0, /* SDO_CLT */
0, /* PDO_RCV */
0, /* PDO_RCV_MAP */
- 9, /* PDO_TRS */
- 14 /* PDO_TRS_MAP */
+ 10, /* PDO_TRS */
+ 15 /* PDO_TRS_MAP */
};
quick_index TestSlave_lastIndex = {
- 8, /* SDO_SVR */
+ 9, /* SDO_SVR */
0, /* SDO_CLT */
0, /* PDO_RCV */
0, /* PDO_RCV_MAP */
- 13, /* PDO_TRS */
- 18 /* PDO_TRS_MAP */
+ 14, /* PDO_TRS */
+ 19 /* PDO_TRS_MAP */
};
UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0]);
--- a/examples/TestMasterSlave/TestSlave.od Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestSlave.od Wed Sep 26 16:02:00 2007 +0200
@@ -1,10 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="44190968">
-<attr name="Profile" type="dict" id="45532192" >
+<PyObject module="node" class="Node" id="1111185676">
+<attr name="Profile" type="dict" id="1111312828" >
</attr>
<attr name="Name" type="string">TestSlave</attr>
-<attr name="Dictionary" type="dict" id="46134672" >
+<attr name="Dictionary" type="dict" id="1111382324" >
<entry>
<key type="numeric" value="4096" />
<val type="numeric" value="301" />
@@ -59,7 +59,7 @@
</entry>
<entry>
<key type="numeric" value="6146" />
- <val type="list" id="44160208" >
+ <val type="list" id="1111185772" >
<item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]" />
<item type="numeric" value="255" />
<item type="numeric" value="5000" />
@@ -69,7 +69,7 @@
</entry>
<entry>
<key type="numeric" value="4112" />
- <val type="list" id="44204760" >
+ <val type="list" id="1111186764" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -78,7 +78,7 @@
</entry>
<entry>
<key type="numeric" value="4113" />
- <val type="list" id="44204112" >
+ <val type="list" id="1111185420" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -87,13 +87,13 @@
</entry>
<entry>
<key type="numeric" value="6658" />
- <val type="list" id="44159992" >
+ <val type="list" id="1111184332" >
<item type="numeric" value="537591824" />
</val>
</entry>
<entry>
<key type="numeric" value="6147" />
- <val type="list" id="44190680" >
+ <val type="list" id="1111186412" >
<item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]" />
<item type="numeric" value="252" />
<item type="numeric" value="0" />
@@ -103,7 +103,7 @@
</entry>
<entry>
<key type="numeric" value="4608" />
- <val type="list" id="44204472" >
+ <val type="list" id="1111185580" >
<item type="numeric" value="1537" />
<item type="numeric" value="1409" />
</val>
@@ -114,7 +114,7 @@
</entry>
<entry>
<key type="numeric" value="4120" />
- <val type="list" id="44204832" >
+ <val type="list" id="1111377772" >
<item type="numeric" value="0" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -123,7 +123,7 @@
</entry>
<entry>
<key type="numeric" value="6148" />
- <val type="list" id="44191688" >
+ <val type="list" id="1111186220" >
<item type="numeric" value="1025" />
<item type="numeric" value="253" />
<item type="numeric" value="0" />
@@ -145,7 +145,7 @@
</entry>
<entry>
<key type="numeric" value="6659" />
- <val type="list" id="44204976" >
+ <val type="list" id="1111184492" >
<item type="numeric" value="537657360" />
</val>
</entry>
@@ -155,7 +155,7 @@
</entry>
<entry>
<key type="numeric" value="6144" />
- <val type="list" id="44191616" >
+ <val type="list" id="1111184652" >
<item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -165,13 +165,13 @@
</entry>
<entry>
<key type="numeric" value="6660" />
- <val type="list" id="44191040" >
+ <val type="list" id="1111184460" >
<item type="numeric" value="537657360" />
</val>
</entry>
<entry>
<key type="numeric" value="6656" />
- <val type="list" id="44205120" >
+ <val type="list" id="1111186860" >
<item type="numeric" value="536870913" />
<item type="numeric" value="536936449" />
<item type="numeric" value="537001985" />
@@ -185,8 +185,21 @@
</val>
</entry>
<entry>
+ <key type="numeric" value="4099" />
+ <val type="list" id="1111186380" >
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ <item type="numeric" value="0" />
+ </val>
+ </entry>
+ <entry>
<key type="numeric" value="6145" />
- <val type="list" id="44205048" >
+ <val type="list" id="1111213196" >
<item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base<4]" />
<item type="numeric" value="0" />
<item type="numeric" value="0" />
@@ -196,17 +209,17 @@
</entry>
<entry>
<key type="numeric" value="6657" />
- <val type="list" id="44204904" >
+ <val type="list" id="1111215276" >
<item type="numeric" value="537526288" />
</val>
</entry>
</attr>
-<attr name="SpecificMenu" type="list" id="44204688" >
+<attr name="SpecificMenu" type="list" id="1111215180" >
</attr>
-<attr name="ParamsDictionary" type="dict" id="44502560" >
+<attr name="ParamsDictionary" type="dict" id="1102931324" >
<entry>
<key type="numeric" value="8192" />
- <val type="dict" id="46323360" >
+ <val type="dict" id="1111381644" >
<entry>
<key type="string" value="callback" />
<val type="False" value="" />
@@ -215,10 +228,10 @@
</entry>
<entry>
<key type="numeric" value="6144" />
- <val type="dict" id="46134064" >
+ <val type="dict" id="1111382460" >
<entry>
<key type="numeric" value="2" />
- <val type="dict" id="45517376" >
+ <val type="dict" id="1111381372" >
<entry>
<key type="string" value="save" />
<val type="True" value="" />
@@ -227,7 +240,7 @@
</entry>
<entry>
<key type="numeric" value="3" />
- <val type="dict" id="45486528" >
+ <val type="dict" id="1102938428" >
<entry>
<key type="string" value="save" />
<val type="True" value="" />
@@ -238,10 +251,10 @@
</entry>
<entry>
<key type="numeric" value="6146" />
- <val type="dict" id="45550400" >
+ <val type="dict" id="1111252068" >
<entry>
<key type="numeric" value="2" />
- <val type="dict" id="45424304" >
+ <val type="dict" id="1111381780" >
<entry>
<key type="string" value="comment" />
<val type="string">EVENT</val>
@@ -250,7 +263,7 @@
</entry>
<entry>
<key type="numeric" value="3" />
- <val type="dict" id="44825120" >
+ <val type="dict" id="1111381916" >
<entry>
<key type="string" value="comment" />
<val type="string">5000*100 µC = 500 ms</val>
@@ -259,7 +272,7 @@
</entry>
<entry>
<key type="numeric" value="4" />
- <val type="dict" id="45946192" >
+ <val type="dict" id="1111251932" >
<entry>
<key type="string" value="comment" />
<val type="string" value="" />
@@ -268,7 +281,7 @@
</entry>
<entry>
<key type="numeric" value="5" />
- <val type="dict" id="45558240" >
+ <val type="dict" id="1111381508" >
<entry>
<key type="string" value="comment" />
<val type="string">1000 ms</val>
@@ -279,10 +292,10 @@
</entry>
<entry>
<key type="numeric" value="6147" />
- <val type="dict" id="45381152" >
+ <val type="dict" id="1111382052" >
<entry>
<key type="numeric" value="2" />
- <val type="dict" id="44869008" >
+ <val type="dict" id="1111382188" >
<entry>
<key type="string" value="comment" />
<val type="string">RTR_SYNC</val>
@@ -293,10 +306,10 @@
</entry>
<entry>
<key type="numeric" value="6148" />
- <val type="dict" id="45645664" >
+ <val type="dict" id="1111382596" >
<entry>
<key type="numeric" value="2" />
- <val type="dict" id="45619920" >
+ <val type="dict" id="1111382732" >
<entry>
<key type="string" value="comment" />
<val type="string">RTR</val>
@@ -307,7 +320,7 @@
</entry>
<entry>
<key type="numeric" value="4112" />
- <val type="dict" id="45559424" >
+ <val type="dict" id="1111382868" >
<entry>
<key type="string" value="callback" />
<val type="True" value="" />
@@ -316,7 +329,7 @@
</entry>
<entry>
<key type="numeric" value="4113" />
- <val type="dict" id="45758656" >
+ <val type="dict" id="1111383004" >
<entry>
<key type="string" value="callback" />
<val type="True" value="" />
@@ -324,27 +337,36 @@
</val>
</entry>
<entry>
- <key type="numeric" value="4119" />
- <val type="dict" id="45945616" >
+ <key type="numeric" value="4099" />
+ <val type="dict" id="1111387644" >
<entry>
<key type="string" value="callback" />
<val type="True" value="" />
</entry>
</val>
</entry>
+ <entry>
+ <key type="numeric" value="4119" />
+ <val type="dict" id="1111383140" >
+ <entry>
+ <key type="string" value="callback" />
+ <val type="True" value="" />
+ </entry>
+ </val>
+ </entry>
</attr>
-<attr name="UserMapping" type="dict" id="45618240" >
+<attr name="UserMapping" type="dict" id="1111383276" >
<entry>
<key type="numeric" value="8192" />
- <val type="dict" id="46144528" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204544" >
- <item type="dict" id="46103712" >
+ <val type="dict" id="1111383412" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111214412" >
+ <item type="dict" id="1111383548" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -376,15 +398,15 @@
</entry>
<entry>
<key type="numeric" value="8193" />
- <val type="dict" id="45619296" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204400" >
- <item type="dict" id="46103424" >
+ <val type="dict" id="1111383684" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111213516" >
+ <item type="dict" id="1111383820" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -416,15 +438,15 @@
</entry>
<entry>
<key type="numeric" value="8194" />
- <val type="dict" id="46142672" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204328" >
- <item type="dict" id="45529040" >
+ <val type="dict" id="1111384108" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111213612" >
+ <item type="dict" id="1111384244" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -456,15 +478,15 @@
</entry>
<entry>
<key type="numeric" value="8195" />
- <val type="dict" id="45620208" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204256" >
- <item type="dict" id="46323648" >
+ <val type="dict" id="1111384380" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111214860" >
+ <item type="dict" id="1111384516" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -496,15 +518,15 @@
</entry>
<entry>
<key type="numeric" value="8196" />
- <val type="dict" id="46100416" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44204184" >
- <item type="dict" id="45805232" >
+ <val type="dict" id="1111384652" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111212716" >
+ <item type="dict" id="1111384788" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -536,15 +558,15 @@
</entry>
<entry>
<key type="numeric" value="8197" />
- <val type="dict" id="46092800" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191544" >
- <item type="dict" id="45757584" >
+ <val type="dict" id="1111384924" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111212748" >
+ <item type="dict" id="1111385060" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -576,15 +598,15 @@
</entry>
<entry>
<key type="numeric" value="8198" />
- <val type="dict" id="46132560" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191472" >
- <item type="dict" id="45619008" >
+ <val type="dict" id="1111385196" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111305356" >
+ <item type="dict" id="1111385332" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -616,15 +638,15 @@
</entry>
<entry>
<key type="numeric" value="8199" />
- <val type="dict" id="46093776" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191400" >
- <item type="dict" id="46135248" >
+ <val type="dict" id="1111385468" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111303532" >
+ <item type="dict" id="1111385604" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -656,15 +678,15 @@
</entry>
<entry>
<key type="numeric" value="8200" />
- <val type="dict" id="45524512" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44190896" >
- <item type="dict" id="46092448" >
+ <val type="dict" id="1111385740" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111306124" >
+ <item type="dict" id="1111385876" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -696,15 +718,15 @@
</entry>
<entry>
<key type="numeric" value="8201" />
- <val type="dict" id="46139744" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191112" >
- <item type="dict" id="46093376" >
+ <val type="dict" id="1111386012" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111302572" >
+ <item type="dict" id="1111386148" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -736,15 +758,15 @@
</entry>
<entry>
<key type="numeric" value="8202" />
- <val type="dict" id="46140816" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191328" >
- <item type="dict" id="46098560" >
+ <val type="dict" id="1111386284" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111305228" >
+ <item type="dict" id="1111386420" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -776,15 +798,15 @@
</entry>
<entry>
<key type="numeric" value="8203" />
- <val type="dict" id="45438400" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44191256" >
- <item type="dict" id="43876288" >
+ <val type="dict" id="1111386556" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111304524" >
+ <item type="dict" id="1111386692" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -816,15 +838,15 @@
</entry>
<entry>
<key type="numeric" value="8204" />
- <val type="dict" id="45591984" >
- <entry>
- <key type="string" value="need" />
- <val type="False" value="" />
- </entry>
- <entry>
- <key type="string" value="values" />
- <val type="list" id="44128664" >
- <item type="dict" id="45889536" >
+ <val type="dict" id="1111386828" >
+ <entry>
+ <key type="string" value="need" />
+ <val type="False" value="" />
+ </entry>
+ <entry>
+ <key type="string" value="values" />
+ <val type="list" id="1111305484" >
+ <item type="dict" id="1111386964" >
<entry>
<key type="string" value="access" />
<val type="string" value="rw" />
@@ -855,10 +877,10 @@
</val>
</entry>
</attr>
-<attr name="DS302" type="dict" id="45646224" >
+<attr name="DS302" type="dict" id="1111387100" >
</attr>
<attr name="ProfileName" type="string" value="DS-301" />
<attr name="Type" type="string">slave</attr>
<attr name="ID" type="numeric" value="2" />
-<attr name="Description" type="string"></attr>
+<attr name="Description" type="string" value="" />
</PyObject>
--- a/include/data.h Tue Sep 25 15:29:37 2007 +0200
+++ b/include/data.h Wed Sep 26 16:02:00 2007 +0200
@@ -43,6 +43,7 @@
#include "lifegrd.h"
#include "sync.h"
#include "nmtMaster.h"
+#include "emcy.h"
/* This structurs contains all necessary information for a CanOpen node */
struct struct_CO_Data {
@@ -95,6 +96,15 @@
UNS8* dcf_cursor;
UNS32 dcf_count_targets;
+ /* EMCY */
+ e_errorState error_state;
+ UNS8 error_history_size;
+ UNS8* error_number;
+ UNS32* error_first_element;
+ UNS8* error_register;
+ s_errors error_data[EMCY_MAX_ERRORS];
+ post_emcy_t post_emcy;
+
};
#define NMTable_Initializer Unknown_state,
@@ -115,6 +125,13 @@
NULL /* Callback */\
},
+#define ERROR_DATA_INITIALIZER \
+ {\
+ 0, /* errCode */\
+ 0, /* errRegMask */\
+ 0 /* active */\
+ },
+
/* A macro to initialize the data in client app.*/
/* CO_Data structure */
#define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
@@ -174,7 +191,19 @@
NODE_PREFIX ## _scanIndexOD, /* scanIndexOD */\
_storeODSubIndex, /* storeODSubIndex */\
NULL, /*dcf_cursor*/\
- 1 /*dcf_count_targets*/\
+ 1, /*dcf_count_targets*/\
+ \
+ /* EMCY */\
+ Error_free, /* error_state */\
+ sizeof(NODE_PREFIX ## _obj1003) / sizeof(NODE_PREFIX ## _obj1003[0]), /* error_history_size */\
+ & NODE_PREFIX ## _highestSubIndex_obj1003, /* error_number */\
+ & NODE_PREFIX ## _obj1003[0], /* error_first_element */\
+ & NODE_PREFIX ## _obj1001, /* error_register */\
+ /* error_data: structure s_errors */\
+ {\
+ REPEAT_EMCY_MAX_ERRORS_TIMES(ERROR_DATA_INITIALIZER)\
+ },\
+ _post_emcy /* post_emcy */\
}
#ifdef __cplusplus
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/emcy.h Wed Sep 26 16:02:00 2007 +0200
@@ -0,0 +1,83 @@
+/*
+This file is part of CanFestival, a library implementing CanOpen Stack.
+
+Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+See COPYING file for copyrights details.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+/*!
+** @file emcy.h
+** @author Luis Jimenez
+** @date Wed Sep 26 2007
+**
+** @brief Declarations of the functions that manage EMCY (emergency) messages
+**
+**
+*/
+
+#ifndef __emcy_h__
+#define __emcy_h__
+
+
+#include <applicfg.h>
+
+/* The error states
+ * ----------------- */
+typedef enum enum_errorState {
+ Error_free = 0x00,
+ Error_occurred = 0x01
+} e_errorState;
+
+typedef struct {
+ UNS16 errCode;
+ UNS8 errRegMask;
+ UNS8 active;
+} s_errors;
+
+#include "data.h"
+
+
+typedef void (*post_emcy_t)(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
+void _post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
+
+/*************************************************************************
+ * Functions
+ *************************************************************************/
+
+/** Sets a new error with code errCode. Also sets corresponding bits in Error register (1001h)
+ */
+UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask);
+
+/** Indicates it has recovered from error errCode. Also clears corresponding bits in Error register (1001h)
+ */
+void EMCY_errorRecovered(CO_Data* d, UNS16 errCode);
+
+/** Start EMCY consumer and producer
+ */
+void emergencyInit(CO_Data* d);
+
+/** Stop EMCY producer and consumer
+ */
+void emergencyStop(CO_Data* d);
+
+/** This function is responsible to process an EMCY canopen-message
+ * \param Message The CAN-message which has to be analysed.
+ */
+void proceedEMCY(CO_Data* d, Message* m);
+
+#endif /*__emcy_h__ */
--- a/objdictgen/gen_cfile.py Tue Sep 25 15:29:37 2007 +0200
+++ b/objdictgen/gen_cfile.py Wed Sep 26 16:02:00 2007 +0200
@@ -317,6 +317,27 @@
# Declaration of Particular Parameters
#-------------------------------------------------------------------------------
+ if 0x1003 not in communicationlist:
+ entry_infos = Node.GetEntryInfos(0x1003)
+ texts["EntryName"] = entry_infos["name"]
+ indexContents[0x1003] = """\n/* index 0x1003 : %(EntryName)s */
+ UNS8 %(NodeName)s_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+ UNS32 %(NodeName)s_obj1003[] =
+ {
+ 0x0 /* 0 */
+ };
+ ODCallback_t %(NodeName)s_Index1003_callbacks[] =
+ {
+ NULL,
+ NULL,
+ };
+ subindex %(NodeName)s_Index1003[] =
+ {
+ { RW, uint8, sizeof (UNS8), (void*)&%(NodeName)s_highestSubIndex_obj1003 },
+ { RO, uint32, sizeof (UNS32), (void*)&%(NodeName)s_obj1003[0] }
+ };
+"""%texts
+
if 0x1005 not in communicationlist:
entry_infos = Node.GetEntryInfos(0x1005)
texts["EntryName"] = entry_infos["name"]
--- a/objdictgen/node.py Tue Sep 25 15:29:37 2007 +0200
+++ b/objdictgen/node.py Wed Sep 26 16:02:00 2007 +0200
@@ -104,7 +104,7 @@
[{"name" : "Error Register", "type" : 0x05, "access": 'ro', "pdo" : True}]},
0x1002 : {"name" : "Manufacturer Status Register", "struct" : var, "need" : False, "values" :
[{"name" : "Manufacturer Status Register", "type" : 0x07, "access" : 'ro', "pdo" : True}]},
- 0x1003 : {"name" : "Pre-defined Error Field", "struct" : rec, "need" : False, "values" :
+ 0x1003 : {"name" : "Pre-defined Error Field", "struct" : rec, "need" : False, "callback" : True, "values" :
[{"name" : "Number of Errors", "type" : 0x05, "access" : 'rw', "pdo" : False},
{"name" : "Standard Error Field", "type" : 0x07, "access" : 'ro', "pdo" : False, "nbmax" : 0xFE}]},
0x1005 : {"name" : "SYNC COB ID", "struct" : var, "need" : False, "callback" : True, "values" :
--- a/src/Makefile.in Tue Sep 25 15:29:37 2007 +0200
+++ b/src/Makefile.in Wed Sep 26 16:02:00 2007 +0200
@@ -34,7 +34,7 @@
INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET)
OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\
- $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o $(TARGET)_timer.o $(TARGET)_dcf.o
+ $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o $(TARGET)_timer.o $(TARGET)_dcf.o $(TARGET)_emcy.o
# # # # Target specific paramters # # # #
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/emcy.c Wed Sep 26 16:02:00 2007 +0200
@@ -0,0 +1,247 @@
+/*
+ This file is part of CanFestival, a library implementing CanOpen
+ Stack.
+
+ Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+ See COPYING file for copyrights details.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
+*/
+
+/*!
+** @file emcy.c
+** @author Luis Jimenez
+** @date Wed Sep 26 2007
+**
+** @brief Definitions of the functions that manage EMCY (emergency) messages
+**
+**
+*/
+
+#include <data.h>
+#include "emcy.h"
+#include "canfestival.h"
+
+
+
+UNS32 OnNumberOfErrorsUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex);
+UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister);
+
+
+/*! This is called when Index 0x1003 is updated.
+**
+**
+** @param d
+** @param unsused_indextable
+** @param unsused_bSubindex
+**
+** @return
+**/
+UNS32 OnNumberOfErrorsUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
+{
+ UNS8 index;
+ // if 0, reset Pre-defined Error Field
+ // else, don't change and give an abort message (eeror code: 0609 0030h)
+ if (*d->error_number == 0)
+ for (index = 0; index < d->error_history_size; ++index)
+ *(d->error_first_element + index) = 0; /* clear all the fields in Pre-defined Error Field (1003h) */
+ else
+ ;// abort message
+ return 0;
+}
+
+/*! start the EMCY mangagement.
+**
+**
+** @param d
+**/
+void emergencyInit(CO_Data* d)
+{
+ RegisterSetODentryCallBack(d, 0x1003, 0x00, &OnNumberOfErrorsUpdate);
+
+ *d->error_number = 0;
+}
+
+/*!
+**
+**
+** @param d
+**/
+void emergencyStop(CO_Data* d)
+{
+
+}
+
+/*!
+ **
+ **
+ ** @param d
+ ** @param cob_id
+ **
+ ** @return
+ **/
+UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister)
+{
+ Message m;
+
+ MSG_WAR(0xA001, "sendEMCY", 0);
+
+ m.cob_id.w = cob_id ;
+ m.rtr = NOT_A_REQUEST;
+ m.len = 8;
+ m.data[0] = errCode & 0xFF; /* LSB */
+ m.data[1] = (errCode >> 8) & 0xFF; /* MSB */
+ m.data[2] = errRegister;
+ m.data[3] = 0; /* Manufacturer specific Error Field still not implemented */
+ m.data[4] = 0;
+ m.data[5] = 0;
+ m.data[6] = 0;
+ m.data[7] = 0;
+
+ return canSend(d->canHandle,&m);
+}
+
+/*! Sets a new error with code errCode. Also sets corresponding bits in Error register (1001h)
+ **
+ **
+ ** @param d
+ ** @param errCode Code of the error
+ ** @param errRegister Bits of Error register (1001h) to be set.
+ ** @return 1 if error, 0 if successful
+ */
+UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask)
+{
+ UNS8 index;
+ UNS8 errRegister_tmp;
+
+ for (index = 0; index < EMCY_MAX_ERRORS; ++index)
+ {
+ if (d->error_data[index].errCode == errCode) /* error already registered */
+ {
+ if (d->error_data[index].active)
+ {
+ MSG_WAR(0xA002, "EMCY message already sent", 0);
+ return 0;
+ } else d->error_data[index].active = 1; /* set as active error */
+ break;
+ }
+ }
+
+ if (index == EMCY_MAX_ERRORS) /* if errCode not already registered */
+ for (index = 0; index < EMCY_MAX_ERRORS; ++index) if (d->error_data[index].active == 0) break; /* find first inactive error */
+
+ if (index == EMCY_MAX_ERRORS) /* error_data full */
+ {
+ MSG_ERR(0xA003, "error_data full", 0);
+ return 1;
+ }
+
+ d->error_data[index].errCode = errCode;
+ d->error_data[index].errRegMask = 1;
+ d->error_data[index].active = 1;
+
+ /* set the new state in the error state machine */
+ d->error_state = Error_occurred;
+
+ /* set Error Register (1001h) */
+ for (index = 0, errRegister_tmp = 0; index < EMCY_MAX_ERRORS; ++index)
+ if (d->error_data[index].active == 1) errRegister_tmp |= d->error_data[index].errRegMask;
+ *d->error_register = errRegister_tmp;
+
+ /* set Pre-defined Error Field (1003h) */
+ for (index = d->error_history_size - 1; index > 0; --index)
+ *(d->error_first_element + index) = *(d->error_first_element + index - 1);
+ *(d->error_first_element) = (UNS32)errCode;
+ if(*d->error_number < d->error_history_size) ++(*d->error_number);
+
+ /* send EMCY message */
+ if (d->CurrentCommunicationState.csEmergency)
+ return sendEMCY(d, *d->bDeviceNodeId + 0x080, errCode, *d->error_register);
+ else return 1;
+}
+
+/*! Deletes error errCode. Also clears corresponding bits in Error register (1001h)
+ **
+ **
+ ** @param d
+ ** @param errCode Code of the error
+ ** @param errRegister Bits of Error register (1001h) to be set.
+ ** @return 1 if error, 0 if successful
+ */
+void EMCY_errorRecovered(CO_Data* d, UNS16 errCode)
+{
+ UNS8 index;
+ UNS8 errRegister_tmp;
+ UNS8 anyActiveError = 0;
+
+ for (index = 0; index < EMCY_MAX_ERRORS; ++index)
+ if (d->error_data[index].errCode == errCode) break; /* find the position of the error */
+
+
+ if ((index != EMCY_MAX_ERRORS) && (d->error_data[index].active == 1))
+ {
+ d->error_data[index].active = 0;
+
+ /* set Error Register (1001h) and check error state machine */
+ for (index = 0, errRegister_tmp = 0; index < EMCY_MAX_ERRORS; ++index)
+ if (d->error_data[index].active == 1)
+ {
+ anyActiveError = 1;
+ errRegister_tmp |= d->error_data[index].errRegMask;
+ }
+ if(anyActiveError == 0)
+ {
+ d->error_state = Error_free;
+ /* send a EMCY message with code "Error Reset or No Error" */
+ if (d->CurrentCommunicationState.csEmergency)
+ sendEMCY(d, *d->bDeviceNodeId + 0x080, 0x0000, 0x00);
+ }
+ *d->error_register = errRegister_tmp;
+ }
+ else
+ MSG_WAR(0xA004, "recovered error was not active", 0);
+}
+
+/*! This function is responsible to process an EMCY canopen-message.
+ **
+ **
+ ** @param d
+ ** @param m The CAN-message which has to be analysed.
+ **
+ **/
+void proceedEMCY(CO_Data* d, Message* m)
+{
+ UNS8 nodeID;
+ UNS16 errCode;
+ UNS8 errReg;
+
+ MSG_WAR(0xA005, "EMCY received. Proceed. ", 0);
+
+ /* Test if the size of the EMCY is ok */
+ if ( m->len != 8) {
+ MSG_ERR(0xA006, "Error size EMCY. CobId : ", m->cob_id.w);
+ return;
+ }
+
+ /* post the received EMCY */
+ nodeID = m->cob_id.w & 0x7F;
+ errCode = m->data[0] | ((UNS16)m->data[1] << 8);
+ errReg = m->data[2];
+ (*d->post_emcy)(nodeID, errCode, errReg);
+}
+
+void _post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg){}
--- a/src/states.c Tue Sep 25 15:29:37 2007 +0200
+++ b/src/states.c Wed Sep 26 16:02:00 2007 +0200
@@ -33,6 +33,7 @@
#include "def.h"
#include "dcf.h"
#include "nmtSlave.h"
+#include "emcy.h"
/** Prototypes for internals functions */
/*!
@@ -66,9 +67,14 @@
{
switch(m->cob_id.w >> 7)
{
- case SYNC:
- if(d->CurrentCommunicationState.csSYNC)
- proceedSYNC(d);
+ case SYNC: /* can be a SYNC or a EMCY message */
+ if(m->cob_id.w == 0x080) /* SYNC */
+ {
+ if(d->CurrentCommunicationState.csSYNC)
+ proceedSYNC(d);
+ } else /* EMCY */
+ if(d->CurrentCommunicationState.csEmergency)
+ proceedEMCY(d,m);
break;
/* case TIME_STAMP: */
case PDO1tx:
@@ -122,7 +128,7 @@
StartOrStop(csSDO, None, resetSDO(d))
StartOrStop(csSYNC, startSYNC(d), stopSYNC(d))
StartOrStop(csHeartbeat, heartbeatInit(d), heartbeatStop(d))
-/* StartOrStop(Emergency,,) */
+ StartOrStop(csEmergency, emergencyInit(d), emergencyStop(d))
StartOrStop(csPDO, PDOInit(d), PDOStop(d))
StartOrStop(csBoot_Up, None, slaveSendBootUp(d))
}