examples/DS401_Master/TestMaster.c
changeset 294 d5493fe07e79
parent 246 d635cfc520ee
child 307 230d55cb75a4
equal deleted inserted replaced
293:62152872b90d 294:d5493fe07e79
    30 
    30 
    31 /**************************************************************************/
    31 /**************************************************************************/
    32 /* Declaration of the value range types                                   */
    32 /* Declaration of the value range types                                   */
    33 /**************************************************************************/
    33 /**************************************************************************/
    34 
    34 
       
    35 #define valueRange_EMC 0x9F /* Type for index 0x1003 subindex 0x00 (only set of value 0 is possible) */
    35 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value)
    36 UNS32 TestMaster_valueRangeTest (UNS8 typeValue, void * value)
    36 {
    37 {
    37   switch (typeValue) {
    38   switch (typeValue) {
       
    39     case valueRange_EMC:
       
    40       if (*(UNS8*)value > (UNS8)0) return OD_VALUE_TOO_HIGH;
       
    41       break;
    38   }
    42   }
    39   return 0;
    43   return 0;
    40 }
    44 }
    41 
    45 
    42 /**************************************************************************/
    46 /**************************************************************************/
    70 /* index 0x1001 :   Error Register. */
    74 /* index 0x1001 :   Error Register. */
    71                     UNS8 TestMaster_obj1001 = 0x0;	/* 0 */
    75                     UNS8 TestMaster_obj1001 = 0x0;	/* 0 */
    72                     subindex TestMaster_Index1001[] = 
    76                     subindex TestMaster_Index1001[] = 
    73                      {
    77                      {
    74                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
    78                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
       
    79                      };
       
    80 
       
    81 /* index 0x1003 :   Pre-defined Error Field */
       
    82                     UNS8 TestMaster_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
       
    83                     UNS32 TestMaster_obj1003[] = 
       
    84                     {
       
    85                       0x0	/* 0 */
       
    86                     };
       
    87                     ODCallback_t TestMaster_Index1003_callbacks[] = 
       
    88                      {
       
    89                        NULL,
       
    90                        NULL,
       
    91                      };
       
    92                     subindex TestMaster_Index1003[] = 
       
    93                      {
       
    94                        { RW, valueRange_EMC, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1003 },
       
    95                        { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1003[0] }
    75                      };
    96                      };
    76 
    97 
    77 /* index 0x1005 :   SYNC COB ID. */
    98 /* index 0x1005 :   SYNC COB ID. */
    78                     UNS32 TestMaster_obj1005 = 0x40000080;	/* 1073741952 */
    99                     UNS32 TestMaster_obj1005 = 0x40000080;	/* 1073741952 */
    79                     ODCallback_t TestMaster_Index1005_callbacks[] = 
   100                     ODCallback_t TestMaster_Index1005_callbacks[] = 
   128 
   149 
   129 /* index 0x1280 :   Client SDO 1 Parameter. */
   150 /* index 0x1280 :   Client SDO 1 Parameter. */
   130                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
   151                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
   131                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640;	/* 1600 */
   152                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640;	/* 1600 */
   132                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0;	/* 1472 */
   153                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0;	/* 1472 */
   133                     INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40;	/* 64 */
   154                     UNS8 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40;	/* 64 */
   134                     subindex TestMaster_Index1280[] = 
   155                     subindex TestMaster_Index1280[] = 
   135                      {
   156                      {
   136                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
   157                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
   137                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
   158                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
   138                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
   159                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
   139                        { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
   160                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
   140                      };
   161                      };
   141 
   162 
   142 /* index 0x1400 :   Receive PDO 1 Parameter. */
   163 /* index 0x1400 :   Receive PDO 1 Parameter. */
   143                     UNS8 TestMaster_highestSubIndex_obj1400 = 5; /* number of subindex - 1*/
   164                     UNS8 TestMaster_highestSubIndex_obj1400 = 5; /* number of subindex - 1*/
   144                     UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x1C0;	/* 448 */
   165                     UNS32 TestMaster_obj1400_COB_ID_used_by_PDO = 0x1C0;	/* 448 */
   257                     UNS32 TestMaster_obj1800_COB_ID_used_by_PDO = 0x240;	/* 576 */
   278                     UNS32 TestMaster_obj1800_COB_ID_used_by_PDO = 0x240;	/* 576 */
   258                     UNS8 TestMaster_obj1800_Transmission_Type = 0x1;	/* 1 */
   279                     UNS8 TestMaster_obj1800_Transmission_Type = 0x1;	/* 1 */
   259                     UNS16 TestMaster_obj1800_Inhibit_Time = 0x0;	/* 0 */
   280                     UNS16 TestMaster_obj1800_Inhibit_Time = 0x0;	/* 0 */
   260                     UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0;	/* 0 */
   281                     UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0;	/* 0 */
   261                     UNS16 TestMaster_obj1800_Event_Timer = 0x0;	/* 0 */
   282                     UNS16 TestMaster_obj1800_Event_Timer = 0x0;	/* 0 */
       
   283                     ODCallback_t TestMaster_Index1800_callbacks[] = 
       
   284                      {
       
   285                        NULL,
       
   286                        NULL,
       
   287                        NULL,
       
   288                        NULL,
       
   289                        NULL,
       
   290                        NULL,
       
   291                      };
   262                     subindex TestMaster_Index1800[] = 
   292                     subindex TestMaster_Index1800[] = 
   263                      {
   293                      {
   264                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
   294                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
   265                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1800_COB_ID_used_by_PDO },
   295                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1800_COB_ID_used_by_PDO },
   266                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Transmission_Type },
   296                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1800_Transmission_Type },
   274                     UNS32 TestMaster_obj1801_COB_ID_used_by_PDO = 0x340;	/* 832 */
   304                     UNS32 TestMaster_obj1801_COB_ID_used_by_PDO = 0x340;	/* 832 */
   275                     UNS8 TestMaster_obj1801_Transmission_Type = 0x1;	/* 1 */
   305                     UNS8 TestMaster_obj1801_Transmission_Type = 0x1;	/* 1 */
   276                     UNS16 TestMaster_obj1801_Inhibit_Time = 0x0;	/* 0 */
   306                     UNS16 TestMaster_obj1801_Inhibit_Time = 0x0;	/* 0 */
   277                     UNS8 TestMaster_obj1801_Compatibility_Entry = 0x0;	/* 0 */
   307                     UNS8 TestMaster_obj1801_Compatibility_Entry = 0x0;	/* 0 */
   278                     UNS16 TestMaster_obj1801_Event_Timer = 0x0;	/* 0 */
   308                     UNS16 TestMaster_obj1801_Event_Timer = 0x0;	/* 0 */
       
   309                     ODCallback_t TestMaster_Index1801_callbacks[] = 
       
   310                      {
       
   311                        NULL,
       
   312                        NULL,
       
   313                        NULL,
       
   314                        NULL,
       
   315                        NULL,
       
   316                        NULL,
       
   317                      };
   279                     subindex TestMaster_Index1801[] = 
   318                     subindex TestMaster_Index1801[] = 
   280                      {
   319                      {
   281                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1801 },
   320                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1801 },
   282                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1801_COB_ID_used_by_PDO },
   321                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1801_COB_ID_used_by_PDO },
   283                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1801_Transmission_Type },
   322                        { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1801_Transmission_Type },
   500 		case 0x1401: i = 8;break;
   539 		case 0x1401: i = 8;break;
   501 		case 0x1402: i = 9;break;
   540 		case 0x1402: i = 9;break;
   502 		case 0x1600: i = 10;break;
   541 		case 0x1600: i = 10;break;
   503 		case 0x1601: i = 11;break;
   542 		case 0x1601: i = 11;break;
   504 		case 0x1602: i = 12;break;
   543 		case 0x1602: i = 12;break;
   505 		case 0x1800: i = 13;break;
   544 		case 0x1800: i = 13;*callbacks = TestMaster_Index1800_callbacks; break;
   506 		case 0x1801: i = 14;break;
   545 		case 0x1801: i = 14;*callbacks = TestMaster_Index1801_callbacks; break;
   507 		case 0x1A00: i = 15;break;
   546 		case 0x1A00: i = 15;break;
   508 		case 0x1A01: i = 16;break;
   547 		case 0x1A01: i = 16;break;
   509 		case 0x2000: i = 17;break;
   548 		case 0x2000: i = 17;break;
   510 		case 0x2001: i = 18;break;
   549 		case 0x2001: i = 18;break;
   511 		case 0x2002: i = 19;break;
   550 		case 0x2002: i = 19;break;