examples/TestMasterSlave/TestSlave.c
changeset 201 2966cd34162a
parent 179 763b6d32c1a6
child 235 f812bf6b7237
equal deleted inserted replaced
200:930be51ddc24 201:2966cd34162a
     8 /**************************************************************************/
     8 /**************************************************************************/
     9 UNS8 SlaveMap1 = 0x0;		/* Mapped at index 0x2000, subindex 0x00 */
     9 UNS8 SlaveMap1 = 0x0;		/* Mapped at index 0x2000, subindex 0x00 */
    10 UNS8 SlaveMap2 = 0x0;		/* Mapped at index 0x2001, subindex 0x00 */
    10 UNS8 SlaveMap2 = 0x0;		/* Mapped at index 0x2001, subindex 0x00 */
    11 UNS8 SlaveMap3 = 0x0;		/* Mapped at index 0x2002, subindex 0x00 */
    11 UNS8 SlaveMap3 = 0x0;		/* Mapped at index 0x2002, subindex 0x00 */
    12 UNS8 SlaveMap4 = 0x0;		/* Mapped at index 0x2003, subindex 0x00 */
    12 UNS8 SlaveMap4 = 0x0;		/* Mapped at index 0x2003, subindex 0x00 */
       
    13 UNS8 SlaveMap5 = 0x0;		/* Mapped at index 0x2004, subindex 0x00 */
       
    14 UNS8 SlaveMap6 = 0x0;		/* Mapped at index 0x2005, subindex 0x00 */
       
    15 UNS8 SlaveMap7 = 0x0;		/* Mapped at index 0x2006, subindex 0x00 */
       
    16 UNS8 SlaveMap8 = 0x0;		/* Mapped at index 0x2007, subindex 0x00 */
       
    17 UNS8 SlaveMap9 = 0x0;		/* Mapped at index 0x2008, subindex 0x00 */
       
    18 UNS32 SlaveMap10 = 0x0;		/* Mapped at index 0x2009, subindex 0x00 */
       
    19 UNS16 SlaveMap11 = 0x0;		/* Mapped at index 0x200A, subindex 0x00 */
    13 
    20 
    14 /**************************************************************************/
    21 /**************************************************************************/
    15 /* Declaration of the value range types                                   */
    22 /* Declaration of the value range types                                   */
    16 /**************************************************************************/
    23 /**************************************************************************/
    17 
    24 
   169 /* index 0x1800 :   Transmit PDO 1 Parameter. */
   176 /* index 0x1800 :   Transmit PDO 1 Parameter. */
   170                     UNS8 TestSlave_highestSubIndex_obj1800 = 5; /* number of subindex - 1*/
   177                     UNS8 TestSlave_highestSubIndex_obj1800 = 5; /* number of subindex - 1*/
   171                     UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182;	/* 386 */
   178                     UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182;	/* 386 */
   172                     UNS8 TestSlave_obj1800_Transmission_Type = 0x0;	/* 0 */
   179                     UNS8 TestSlave_obj1800_Transmission_Type = 0x0;	/* 0 */
   173                     UNS16 TestSlave_obj1800_Inhibit_Time = 0x0;	/* 0 */
   180                     UNS16 TestSlave_obj1800_Inhibit_Time = 0x0;	/* 0 */
   174                     UNS16 TestSlave_obj1800_Compatibility_Entry = 0x0;	/* 0 */
   181                     UNS8 TestSlave_obj1800_Compatibility_Entry = 0x0;	/* 0 */
   175                     UNS16 TestSlave_obj1800_Event_Timer = 0x0;	/* 0 */
   182                     UNS16 TestSlave_obj1800_Event_Timer = 0x0;	/* 0 */
   176                     subindex TestSlave_Index1800[] = 
   183                     subindex TestSlave_Index1800[] = 
   177                      {
   184                      {
   178                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 },
   185                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 },
   179                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1800_COB_ID_used_by_PDO },
   186                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1800_COB_ID_used_by_PDO },
   180                        { RW|TO_BE_SAVE, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type },
   187                        { RW|TO_BE_SAVE, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type },
   181                        { RW|TO_BE_SAVE, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time },
   188                        { RW|TO_BE_SAVE, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time },
   182                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Compatibility_Entry },
   189                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Compatibility_Entry },
   183                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Event_Timer }
   190                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Event_Timer }
   184                      };
   191                      };
   185 
   192 
   186 /* index 0x1801 :   Transmit PDO 2 Parameter. */
   193 /* index 0x1801 :   Transmit PDO 2 Parameter. */
   187                     UNS8 TestSlave_highestSubIndex_obj1801 = 5; /* number of subindex - 1*/
   194                     UNS8 TestSlave_highestSubIndex_obj1801 = 5; /* number of subindex - 1*/
   188                     UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x282;	/* 642 */
   195                     UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x0;	/* 0 */
   189                     UNS8 TestSlave_obj1801_Transmission_Type = 0x0;	/* 0 */
   196                     UNS8 TestSlave_obj1801_Transmission_Type = 0x0;	/* 0 */
   190                     UNS16 TestSlave_obj1801_Inhibit_Time = 0x0;	/* 0 */
   197                     UNS16 TestSlave_obj1801_Inhibit_Time = 0x0;	/* 0 */
   191                     UNS16 TestSlave_obj1801_Compatibility_Entry = 0x0;	/* 0 */
   198                     UNS8 TestSlave_obj1801_Compatibility_Entry = 0x0;	/* 0 */
   192                     UNS16 TestSlave_obj1801_Event_Timer = 0x0;	/* 0 */
   199                     UNS16 TestSlave_obj1801_Event_Timer = 0x0;	/* 0 */
   193                     subindex TestSlave_Index1801[] = 
   200                     subindex TestSlave_Index1801[] = 
   194                      {
   201                      {
   195                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1801 },
   202                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1801 },
   196                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1801_COB_ID_used_by_PDO },
   203                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1801_COB_ID_used_by_PDO },
   197                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Transmission_Type },
   204                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Transmission_Type },
   198                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Inhibit_Time },
   205                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Inhibit_Time },
   199                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Compatibility_Entry },
   206                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1801_Compatibility_Entry },
   200                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Event_Timer }
   207                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1801_Event_Timer }
   201                      };
   208                      };
   202 
   209 
   203 /* index 0x1A00 :   Transmit PDO 1 Mapping. */
   210 /* index 0x1A00 :   Transmit PDO 1 Mapping. */
   204                     UNS8 TestSlave_highestSubIndex_obj1A00 = 2; /* number of subindex - 1*/
   211                     UNS8 TestSlave_highestSubIndex_obj1A00 = 10; /* number of subindex - 1*/
   205                     UNS32 TestSlave_obj1A00[] = 
   212                     UNS32 TestSlave_obj1A00[] = 
   206                     {
   213                     {
   207                       0x20000008,	/* 536870920 */
   214                       0x20000001,	/* 536870913 */
   208                       0x20010008	/* 536936456 */
   215                       0x20010001,	/* 536936449 */
       
   216                       0x20020001,	/* 537001985 */
       
   217                       0x20030001,	/* 537067521 */
       
   218                       0x20040001,	/* 537133057 */
       
   219                       0x20050001,	/* 537198593 */
       
   220                       0x20060001,	/* 537264129 */
       
   221                       0x20070001,	/* 537329665 */
       
   222                       0x20080008,	/* 537395208 */
       
   223                       0x20090020	/* 537460768 */
   209                     };
   224                     };
   210                     subindex TestSlave_Index1A00[] = 
   225                     subindex TestSlave_Index1A00[] = 
   211                      {
   226                      {
   212                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A00 },
   227                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A00 },
   213                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[0] },
   228                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[0] },
   214                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[1] }
   229                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[1] },
       
   230                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[2] },
       
   231                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[3] },
       
   232                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[4] },
       
   233                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[5] },
       
   234                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[6] },
       
   235                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[7] },
       
   236                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[8] },
       
   237                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A00[9] }
   215                      };
   238                      };
   216 
   239 
   217 /* index 0x1A01 :   Transmit PDO 2 Mapping. */
   240 /* index 0x1A01 :   Transmit PDO 2 Mapping. */
   218                     UNS8 TestSlave_highestSubIndex_obj1A01 = 2; /* number of subindex - 1*/
   241                     UNS8 TestSlave_highestSubIndex_obj1A01 = 1; /* number of subindex - 1*/
   219                     UNS32 TestSlave_obj1A01[] = 
   242                     UNS32 TestSlave_obj1A01[] = 
   220                     {
   243                     {
   221                       0x20020008,	/* 537001992 */
   244                       0x200A0010	/* 537526288 */
   222                       0x20030008	/* 537067528 */
       
   223                     };
   245                     };
   224                     subindex TestSlave_Index1A01[] = 
   246                     subindex TestSlave_Index1A01[] = 
   225                      {
   247                      {
   226                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A01 },
   248                        { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1A01 },
   227                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A01[0] },
   249                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A01[0] }
   228                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1A01[1] }
       
   229                      };
   250                      };
   230 
   251 
   231 /* index 0x2000 :   Mapped variable SlaveMap1 */
   252 /* index 0x2000 :   Mapped variable SlaveMap1 */
   232                     subindex TestSlave_Index2000[] = 
   253                     subindex TestSlave_Index2000[] = 
   233                      {
   254                      {
   234                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap1 }
   255                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap1 }
   235                      };
   256                      };
   236 
   257 
   237 /* index 0x2001 :   Mapped variable SlaveMap2 */
   258 /* index 0x2001 :   Mapped variable SlaveMap2 */
   238                     subindex TestSlave_Index2001[] = 
   259                     subindex TestSlave_Index2001[] = 
   239                      {
   260                      {
   240                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap2 }
   261                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap2 }
   241                      };
   262                      };
   242 
   263 
   243 /* index 0x2002 :   Mapped variable SlaveMap3 */
   264 /* index 0x2002 :   Mapped variable SlaveMap3 */
   244                     subindex TestSlave_Index2002[] = 
   265                     subindex TestSlave_Index2002[] = 
   245                      {
   266                      {
   246                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap3 }
   267                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap3 }
   247                      };
   268                      };
   248 
   269 
   249 /* index 0x2003 :   Mapped variable SlaveMap4 */
   270 /* index 0x2003 :   Mapped variable SlaveMap4 */
   250                     subindex TestSlave_Index2003[] = 
   271                     subindex TestSlave_Index2003[] = 
   251                      {
   272                      {
   252                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap4 }
   273                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap4 }
       
   274                      };
       
   275 
       
   276 /* index 0x2004 :   Mapped variable SlaveMap5 */
       
   277                     subindex TestSlave_Index2004[] = 
       
   278                      {
       
   279                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap5 }
       
   280                      };
       
   281 
       
   282 /* index 0x2005 :   Mapped variable SlaveMap6 */
       
   283                     subindex TestSlave_Index2005[] = 
       
   284                      {
       
   285                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap6 }
       
   286                      };
       
   287 
       
   288 /* index 0x2006 :   Mapped variable SlaveMap7 */
       
   289                     subindex TestSlave_Index2006[] = 
       
   290                      {
       
   291                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap7 }
       
   292                      };
       
   293 
       
   294 /* index 0x2007 :   Mapped variable SlaveMap8 */
       
   295                     subindex TestSlave_Index2007[] = 
       
   296                      {
       
   297                        { RW, boolean, sizeof (UNS8), (void*)&SlaveMap8 }
       
   298                      };
       
   299 
       
   300 /* index 0x2008 :   Mapped variable SlaveMap9 */
       
   301                     subindex TestSlave_Index2008[] = 
       
   302                      {
       
   303                        { RW, uint8, sizeof (UNS8), (void*)&SlaveMap9 }
       
   304                      };
       
   305 
       
   306 /* index 0x2009 :   Mapped variable SlaveMap10 */
       
   307                     subindex TestSlave_Index2009[] = 
       
   308                      {
       
   309                        { RW, uint32, sizeof (UNS32), (void*)&SlaveMap10 }
       
   310                      };
       
   311 
       
   312 /* index 0x200A :   Mapped variable SlaveMap11 */
       
   313                     subindex TestSlave_Index200A[] = 
       
   314                      {
       
   315                        { RW, uint16, sizeof (UNS16), (void*)&SlaveMap11 }
   253                      };
   316                      };
   254 
   317 
   255 const indextable TestSlave_objdict[] = 
   318 const indextable TestSlave_objdict[] = 
   256 {
   319 {
   257   { (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
   320   { (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
   269   { (subindex*)TestSlave_Index1A01,sizeof(TestSlave_Index1A01)/sizeof(TestSlave_Index1A01[0]), 0x1A01},
   332   { (subindex*)TestSlave_Index1A01,sizeof(TestSlave_Index1A01)/sizeof(TestSlave_Index1A01[0]), 0x1A01},
   270   { (subindex*)TestSlave_Index2000,sizeof(TestSlave_Index2000)/sizeof(TestSlave_Index2000[0]), 0x2000},
   333   { (subindex*)TestSlave_Index2000,sizeof(TestSlave_Index2000)/sizeof(TestSlave_Index2000[0]), 0x2000},
   271   { (subindex*)TestSlave_Index2001,sizeof(TestSlave_Index2001)/sizeof(TestSlave_Index2001[0]), 0x2001},
   334   { (subindex*)TestSlave_Index2001,sizeof(TestSlave_Index2001)/sizeof(TestSlave_Index2001[0]), 0x2001},
   272   { (subindex*)TestSlave_Index2002,sizeof(TestSlave_Index2002)/sizeof(TestSlave_Index2002[0]), 0x2002},
   335   { (subindex*)TestSlave_Index2002,sizeof(TestSlave_Index2002)/sizeof(TestSlave_Index2002[0]), 0x2002},
   273   { (subindex*)TestSlave_Index2003,sizeof(TestSlave_Index2003)/sizeof(TestSlave_Index2003[0]), 0x2003},
   336   { (subindex*)TestSlave_Index2003,sizeof(TestSlave_Index2003)/sizeof(TestSlave_Index2003[0]), 0x2003},
       
   337   { (subindex*)TestSlave_Index2004,sizeof(TestSlave_Index2004)/sizeof(TestSlave_Index2004[0]), 0x2004},
       
   338   { (subindex*)TestSlave_Index2005,sizeof(TestSlave_Index2005)/sizeof(TestSlave_Index2005[0]), 0x2005},
       
   339   { (subindex*)TestSlave_Index2006,sizeof(TestSlave_Index2006)/sizeof(TestSlave_Index2006[0]), 0x2006},
       
   340   { (subindex*)TestSlave_Index2007,sizeof(TestSlave_Index2007)/sizeof(TestSlave_Index2007[0]), 0x2007},
       
   341   { (subindex*)TestSlave_Index2008,sizeof(TestSlave_Index2008)/sizeof(TestSlave_Index2008[0]), 0x2008},
       
   342   { (subindex*)TestSlave_Index2009,sizeof(TestSlave_Index2009)/sizeof(TestSlave_Index2009[0]), 0x2009},
       
   343   { (subindex*)TestSlave_Index200A,sizeof(TestSlave_Index200A)/sizeof(TestSlave_Index200A[0]), 0x200A},
   274 };
   344 };
   275 
   345 
   276 const indextable * TestSlave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
   346 const indextable * TestSlave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
   277 {
   347 {
   278 	int i;
   348 	int i;
   293 		case 0x1A01: i = 12;break;
   363 		case 0x1A01: i = 12;break;
   294 		case 0x2000: i = 13;break;
   364 		case 0x2000: i = 13;break;
   295 		case 0x2001: i = 14;break;
   365 		case 0x2001: i = 14;break;
   296 		case 0x2002: i = 15;break;
   366 		case 0x2002: i = 15;break;
   297 		case 0x2003: i = 16;break;
   367 		case 0x2003: i = 16;break;
       
   368 		case 0x2004: i = 17;break;
       
   369 		case 0x2005: i = 18;break;
       
   370 		case 0x2006: i = 19;break;
       
   371 		case 0x2007: i = 20;break;
       
   372 		case 0x2008: i = 21;break;
       
   373 		case 0x2009: i = 22;break;
       
   374 		case 0x200A: i = 23;break;
   298 		default:
   375 		default:
   299 			*errorCode = OD_NO_SUCH_OBJECT;
   376 			*errorCode = OD_NO_SUCH_OBJECT;
   300 			return NULL;
   377 			return NULL;
   301 	}
   378 	}
   302 	*errorCode = OD_SUCCESSFUL;
   379 	*errorCode = OD_SUCCESSFUL;