View difference between Paste ID: Ky8mdM1D and QXtp5q9H
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
    m_layer_data.BroadcastID = 0;
42
    m_layer_data.MasterID = 0x078A;
43
    m_layer_data.SlaveID = 0x0791;
44
    m_layer_data.IncrementalIdUsed = false;
45
46
    m_layer_config.MotorolaFormat = true;
47
    m_layer_config.T1 = 2000;
48
    m_layer_config.T2 = 2000;
49
    m_layer_config.T3 = 2000;
50
    m_layer_config.T4 = 65535;
51
    m_layer_config.T5 = 2000;
52
    m_layer_config.T6 = 5;
53
    m_layer_config.T7 = 5;
54
    m_layer_config.AddressGranularity = 1;
55
}
56
57
void
58
PXCPTest::TestXCPConnect()
59
{
60
    m_result = XCP_Connect(m_xcp_handle, 0, m_cto_buffer, m_cto_buffer_length);
61
    GetErrorMessage();
62
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
63
64
65
    BYTE resource_byte = m_cto_buffer[1];
66
    QVERIFY2(resource_byte & (1 << 2), "DAQ lists not available.");
67
}
68
69
void
70
PXCPTest::TestXCPFreeDAQLists()
71
{
72
    m_result =
73
        XCP_FreeDAQLists(m_xcp_handle, m_cto_buffer, m_cto_buffer_length);
74
    GetErrorMessage();
75
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
76
}
77
78
void
79
PXCPTest::TestXCPAllocateDAQList()
80
{
81
    m_result =
82
        XCP_AllocateDAQLists(m_xcp_handle,
83
                1,
84
                m_cto_buffer,
85
                m_cto_buffer_length);
86
    GetErrorMessage();
87
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
88
}
89
90
void
91
PXCPTest::TestXCPAllocateODT()
92
{
93
    m_result =
94
        XCP_AllocateODT(m_xcp_handle,
95
                m_daq_list_number, // = 0
96
                1, // number of dtos
97
                m_cto_buffer,
98
                m_cto_buffer_length);
99
    GetErrorMessage();
100
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
101
}
102
103
void
104
PXCPTest::TestXCPAllocateODTEntry()
105
{
106
    m_result =
107
        XCP_AllocateODTEntry(m_xcp_handle,
108
                m_daq_list_number,
109
                0, // dto number
110
                1, // number of dto entries
111
                m_cto_buffer,
112
                m_cto_buffer_length);
113
    GetErrorMessage();
114
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
115
}
116
117
void
118
PXCPTest::TestXCPSetDAQListPointer()
119
{
120
121
    m_result = XCP_SetDAQListPointer(
122
            m_xcp_handle, 
123
            m_daq_list_number,
124
            0, // dto number
125
            0, // dto_entry number
126
            m_cto_buffer, 
127
            m_cto_buffer_length);
128
129
    GetErrorMessage();
130
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
131
132
}
133
134
void
135
PXCPTest::TestXCPWriteDAQListEntry()
136
{
137
    TXCPODTEntry odt_entry;
138
    odt_entry.BitOffset = 0;
139
    odt_entry.DAQSize = sizeof(float);
140
    odt_entry.DAQAddressExtension = 0;
141
    odt_entry.DAQAddress = 0xD0010FF0;
142
143
    m_result = XCP_WriteDAQListEntry(m_xcp_handle,
144
            odt_entry,
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
void
153
PXCPTest::TestXCPGetAndSetDAQListMode()
154
{
155
    m_result = XCP_GetDAQListMode(m_xcp_handle,
156
            m_daq_list_number,
157
            m_cto_buffer,
158
            m_cto_buffer_length);
159
    GetErrorMessage();
160
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
161
162
    BYTE mode = m_cto_buffer[1];
163
164
    mode = 00000000;
165
166
    TXCPDAQListConfig daq_list_config;
167
    daq_list_config.DAQListNumber = m_daq_list_number;
168
    daq_list_config.EventChannelNumber = 0;
169
    daq_list_config.TransmissionRate = 1;
170
    daq_list_config.DAQPriority = 0;
171
172
    m_result = XCP_SetDAQListMode(m_xcp_handle,
173
            mode,
174
            daq_list_config,
175
            m_cto_buffer,
176
            m_cto_buffer_length);
177
178
    GetErrorMessage();
179
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
180
181
}
182
183
void
184
PXCPTest::TestXCPStartStopDAQList()
185
{
186
    m_result = XCP_StartStopDAQList(m_xcp_handle,
187
            2, // Mode: 0-stop, 1-start, 2-select
188
            m_daq_list_number, // list number
189
            m_cto_buffer,
190
            m_cto_buffer_length);
191
    GetErrorMessage();
192
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
193
}
194
195
void
196
PXCPTest::TestXCPStartStopSynchronizedDAQList()
197
{
198
    m_result = XCP_StartStopSynchronizedDAQList(m_xcp_handle,
199
            1, // 0-stop all, 1-start selected, 2-stop selected
200
            m_cto_buffer,
201
            m_cto_buffer_length);
202
203
    GetErrorMessage();
204
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
205
206
    QTest::qSleep(1000);
207
}
208
209
void
210
PXCPTest::TestXCPDequeuePacket()
211
{
212
    WORD packet_buffer_length = 8;
213
    BYTE packet_buffer[packet_buffer_length];
214
    m_result = XCP_DequeuePacket(m_xcp_handle,
215
            XCP_DTO_QUEUE,
216
            packet_buffer,
217
            packet_buffer_length);
218
    GetErrorMessage();
219
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
220
221
    float value;
222
    std::memcpy(&value, &(packet_buffer[1]), sizeof(float));
223
    qDebug() << QString("%1").arg(value);
224
}
225
226
void
227
PXCPTest::TestXCPDisconnect()
228
{
229
    m_result = XCP_Disconnect(m_xcp_handle, m_cto_buffer, m_cto_buffer_length);
230
    GetErrorMessage();
231
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
232
233
}
234
235
void
236
PXCPTest::TestXCPRemoveSlave()
237
{
238
    m_result = XCP_RemoveSlave(m_xcp_handle);
239
    GetErrorMessage();
240
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
241
242
}
243
244
void
245
PXCPTest::TestXCPUninitializeChannel()
246
{
247
    m_result = XCP_UninitializeChannel(m_xcp_channel);
248
    GetErrorMessage();
249
    QVERIFY2(m_result == XCP_ERR_OK, m_error_message);
250
251
}