View difference between Paste ID: dcpUznkj and Ky8mdM1D
SHOW: | | - or go back to the newest paste.
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
}