Advertisement
lslah

xcp test session

Jul 26th, 2013
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void
  2. PXCPTest::initTestCase()
  3. {
  4.     InitErrorCodes();
  5.  
  6.     m_can_handle = PCAN_PCIBUS1;
  7.     m_can_baudrate = PCAN_BAUD_1M;
  8.        
  9. }
  10.  
  11. void
  12. PXCPTest::TestXCPInitializeCanChannel()
  13. {
  14.     m_result = XCP_InitializeCanChannel(&m_xcp_channel,
  15.             m_can_handle,
  16.             m_can_baudrate,
  17.             0,0,0);
  18.  
  19.     GetErrorMessage();
  20.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  21.  
  22. }
  23.  
  24. void
  25. PXCPTest::TestXCPAddSlave()
  26. {
  27.     FillLayerDataAndConfig();
  28.     m_result = XCP_AddSlaveOnCAN(m_xcp_channel,
  29.             m_layer_data,
  30.             m_layer_config,
  31.             &m_xcp_handle);
  32.  
  33.  
  34.     GetErrorMessage();
  35.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  36.  
  37. }
  38.  
  39. void PXCPTest::FillLayerDataAndConfig()
  40. {
  41. //      /begin IF_DATA XCP
  42. //         /begin PROTOCOL_LAYER
  43. //            0x0100
  44. //            2000  /* T1 */
  45. //            2000  /* T2 */
  46. //            2000  /* T3 */
  47. //            65535  /* T4 */
  48. //            2000  /* T5 */
  49. //            0005  /* T6 */
  50. //            0005  /* T7 */
  51. //            0x08
  52. //            0x0008
  53. //            BYTE_ORDER_MSB_LAST /* Motorola Format */
  54. //            ADDRESS_GRANULARITY_BYTE  /* address granularity: 1 */
  55. //            ...
  56. //         /end PROTOCOL_LAYER
  57. //         ...
  58. //       /end IF_DATA XCP
  59.  
  60.     m_layer_data.BroadcastID = 0;
  61.     m_layer_data.MasterID = 0x078A;
  62.     m_layer_data.SlaveID = 0x0791;
  63.     m_layer_data.IncrementalIdUsed = false;
  64.  
  65.     m_layer_config.MotorolaFormat = true;
  66.     m_layer_config.T1 = 2000;
  67.     m_layer_config.T2 = 2000;
  68.     m_layer_config.T3 = 2000;
  69.     m_layer_config.T4 = 65535;
  70.     m_layer_config.T5 = 2000;
  71.     m_layer_config.T6 = 5;
  72.     m_layer_config.T7 = 5;
  73.     m_layer_config.AddressGranularity = 1;
  74. }
  75.  
  76. void
  77. PXCPTest::TestXCPConnect()
  78. {
  79.     m_result = XCP_Connect(m_xcp_handle, 0, m_cto_buffer, m_cto_buffer_length);
  80.     GetErrorMessage();
  81.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  82.  
  83.  
  84.     BYTE resource_byte = m_cto_buffer[1];
  85.     QVERIFY2(resource_byte & (1 << 2), "DAQ lists not available.");
  86. }
  87.  
  88. void
  89. PXCPTest::TestXCPFreeDAQLists()
  90. {
  91.     m_result =
  92.         XCP_FreeDAQLists(m_xcp_handle, m_cto_buffer, m_cto_buffer_length);
  93.     GetErrorMessage();
  94.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  95. }
  96.  
  97. void
  98. PXCPTest::TestXCPAllocateDAQList()
  99. {
  100.     m_result =
  101.         XCP_AllocateDAQLists(m_xcp_handle,
  102.                 1,
  103.                 m_cto_buffer,
  104.                 m_cto_buffer_length);
  105.     GetErrorMessage();
  106.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  107. }
  108.  
  109. void
  110. PXCPTest::TestXCPAllocateODT()
  111. {
  112.     m_result =
  113.         XCP_AllocateODT(m_xcp_handle,
  114.                 m_daq_list_number, // = 0
  115.                 1, // number of dtos
  116.                 m_cto_buffer,
  117.                 m_cto_buffer_length);
  118.     GetErrorMessage();
  119.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  120. }
  121.  
  122. void
  123. PXCPTest::TestXCPAllocateODTEntry()
  124. {
  125.     m_result =
  126.         XCP_AllocateODTEntry(m_xcp_handle,
  127.                 m_daq_list_number,
  128.                 0, // dto number
  129.                 1, // number of dto entries
  130.                 m_cto_buffer,
  131.                 m_cto_buffer_length);
  132.     GetErrorMessage();
  133.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  134. }
  135.  
  136. void
  137. PXCPTest::TestXCPSetDAQListPointer()
  138. {
  139.  
  140.     m_result = XCP_SetDAQListPointer(
  141.             m_xcp_handle,
  142.             m_daq_list_number,
  143.             0, // dto number
  144.             0, // dto_entry number
  145.             m_cto_buffer,
  146.             m_cto_buffer_length);
  147.  
  148.     GetErrorMessage();
  149.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  150.  
  151. }
  152.  
  153. void
  154. PXCPTest::TestXCPWriteDAQListEntry()
  155. {
  156.     TXCPODTEntry odt_entry;
  157.     odt_entry.BitOffset = 0;
  158.     odt_entry.DAQSize = sizeof(float);
  159.     odt_entry.DAQAddressExtension = 0;
  160.     odt_entry.DAQAddress = 0xD0010FF0;
  161.  
  162.     m_result = XCP_WriteDAQListEntry(m_xcp_handle,
  163.             odt_entry,
  164.             m_cto_buffer,
  165.             m_cto_buffer_length);
  166.  
  167.     GetErrorMessage();
  168.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  169. }
  170.  
  171. void
  172. PXCPTest::TestXCPGetAndSetDAQListMode()
  173. {
  174.     m_result = XCP_GetDAQListMode(m_xcp_handle,
  175.             m_daq_list_number,
  176.             m_cto_buffer,
  177.             m_cto_buffer_length);
  178.     GetErrorMessage();
  179.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  180.  
  181.     BYTE mode = m_cto_buffer[1];
  182.  
  183.     mode = 00000000;
  184.  
  185.     TXCPDAQListConfig daq_list_config;
  186.     daq_list_config.DAQListNumber = m_daq_list_number;
  187.     daq_list_config.EventChannelNumber = 0;
  188.     daq_list_config.TransmissionRate = 1;
  189.     daq_list_config.DAQPriority = 0;
  190.  
  191.     m_result = XCP_SetDAQListMode(m_xcp_handle,
  192.             mode,
  193.             daq_list_config,
  194.             m_cto_buffer,
  195.             m_cto_buffer_length);
  196.  
  197.     GetErrorMessage();
  198.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  199.  
  200. }
  201.  
  202. void
  203. PXCPTest::TestXCPStartStopDAQList()
  204. {
  205.     m_result = XCP_StartStopDAQList(m_xcp_handle,
  206.             2, // Mode: 0-stop, 1-start, 2-select
  207.             m_daq_list_number, // list number
  208.             m_cto_buffer,
  209.             m_cto_buffer_length);
  210.     GetErrorMessage();
  211.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  212. }
  213.  
  214. void
  215. PXCPTest::TestXCPStartStopSynchronizedDAQList()
  216. {
  217.     m_result = XCP_StartStopSynchronizedDAQList(m_xcp_handle,
  218.             1, // 0-stop all, 1-start selected, 2-stop selected
  219.             m_cto_buffer,
  220.             m_cto_buffer_length);
  221.  
  222.     GetErrorMessage();
  223.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  224.  
  225.     QTest::qSleep(1000);
  226. }
  227.  
  228. void
  229. PXCPTest::TestXCPDequeuePacket()
  230. {
  231.     WORD packet_buffer_length = 8;
  232.     BYTE packet_buffer[packet_buffer_length];
  233.     m_result = XCP_DequeuePacket(m_xcp_handle,
  234.             XCP_DTO_QUEUE,
  235.             packet_buffer,
  236.             packet_buffer_length);
  237.     GetErrorMessage();
  238.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  239.  
  240.     float value;
  241.     std::memcpy(&value, &(packet_buffer[1]), sizeof(float));
  242.     qDebug() << QString("%1").arg(value);
  243. }
  244.  
  245. void
  246. PXCPTest::TestXCPDisconnect()
  247. {
  248.     m_result = XCP_Disconnect(m_xcp_handle, m_cto_buffer, m_cto_buffer_length);
  249.     GetErrorMessage();
  250.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  251.  
  252. }
  253.  
  254. void
  255. PXCPTest::TestXCPRemoveSlave()
  256. {
  257.     m_result = XCP_RemoveSlave(m_xcp_handle);
  258.     GetErrorMessage();
  259.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  260.  
  261. }
  262.  
  263. void
  264. PXCPTest::TestXCPUninitializeChannel()
  265. {
  266.     m_result = XCP_UninitializeChannel(m_xcp_channel);
  267.     GetErrorMessage();
  268.     QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
  269.  
  270. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement