#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include "../can200-api/can200-api.h"
int main(int argc, char *argv[])
{
int device;
int channel;
int type;
int speed;
int count;
HANDLE hCan;
int result;
int i;
int status;
int cnt;
int num_channel;
if (argc < 5)
{
printf("Use receive <number_device> <channel> <speed> <type>\n");
return -1;
}
{
printf("Error CAN200_GetNumberDevice (%d, last error = %u)\n", result, GetLastError());
return -1;
}
device = atoi(argv[1]);
if (device < 0 || device >= count)
{
printf("CAN-200PCI(e) #%d not found\n", device);
return -1;
}
channel = atoi(argv[2]);
speed = atoi(argv[3]);
{
printf("Unexpected speed #%d (expected %d or %d or %d or %d or %d or %d or %d or %d)\n", speed,
return -1;
}
result = strcmp(argv[4], "BasicCAN");
if (0 == result)
{
}
else
{
result = strcmp(argv[4], "PeliCAN");
if (0 == result)
{
}
else
{
printf("Unexpected type %s (expected PeliCAN or BaicCAN)\n", argv[3]);
return -1;
}
}
if (INVALID_HANDLE_VALUE == hCan)
{
printf("Error open CAN-200 device # %d (last error = %u)\n", device, GetLastError());
exit(-1);
}
{
printf("Error CAN200_GetConfig (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_GetNumChannel (%d, last error = %u)\n", result, GetLastError());
return -1;
}
if ((channel < 1) || (channel > num_channel))
{
printf("Unexpected channel #%d (expected %d-%d)\n", channel, 1, num_channel);
return -1;
}
printf(
"Board: %s\n", conf.
szName);
printf(
"Serial num.: %s\n", conf.
szSN);
printf(
"Channel: %Xh\n", conf.
wPorts[channel - 1]);
printf(
"IRQ: %.2d\n\n", conf.
wIRQ);
{
printf("Error CAN200_SetWorkMode (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_P_SetInputFilter (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_SetCANSpeed (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_SetInterruptSource (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_P_SetErrorWarningLimit (%d, last error = %u)\n", result, GetLastError());
return -1;
}
{
printf("Error CAN200_SetDriverMode (%d, last error = %u)\n", result, GetLastError());
return -1;
}
for (i = 0; i < 8; i++)
{
}
cnt = 0;
while (!_kbhit())
{
SendFrame.
DLC = (SendFrame.
DLC + 1) % 9;
{
SendFrame.
extID = (SendFrame.
extID + 1) % 0x20000000;
}
else
{
SendFrame.
sID = (SendFrame.
sID + 1) % 0x800;
}
for (i = 0; i < 8; i++)
{
}
while (1)
{
{
printf("Error CAN200_GetStatus (%d, last error = %u)\n", result, GetLastError());
return -1;
}
if (0 != (status & 0x04))
{
break;
}
}
{
printf("Error CAN200_SetTxBuffer (%d, last error = %u)\n", result, GetLastError());
return -1;
}
while (1)
{
{
printf("Error CAN200_GetStatus (%d, last error = %u)\n", result, GetLastError());
return -1;
}
if (0 != (status & 0x08))
{
break;
}
}
{
printf("Error CAN200_SetCommand (%d, last error = %u)\n", result, GetLastError());
return -1;
}
cnt++;
printf("Send %d\r", cnt);
}
return 0;
}