📄 test.cpp
字号:
// test.cpp : Defines the entry point for the console application.
//
#include "Winbase.h"
#include "stdafx.h"
#include "CSDdriver.h"
static DWORD lock=0;
static DWORD recbytes=0;
static UCHAR recbuff[20000];
void DELAY(DWORD loop)
{
DWORD n;
for(n=0;n<loop;n++);
// printf("loop=%d\n",n);
}
__inline static UCHAR peekb(UCHAR *reg,UCHAR offset)
{
while(lock==1);
*reg=offset;
DELAY(100);
UCHAR date=*(reg+8);
lock=0;
return date;
}
__inline static void pokeb(UCHAR *reg,UCHAR offset,UCHAR value)
{
while(lock==1);
*reg=offset;
DELAY(100);
*(reg+8)=value;
lock=0;
}
static DWORD WINAPI
CSDTESTDispatchThread(
PVOID pContext
)
{
pCAN_OPEN_INFO pCSDHead=(pCAN_OPEN_INFO)pContext;
while(1){
DWORD WaitReturn = WaitForSingleObject(pCSDHead->hCANEvent, INFINITE);
printf("ready to read\n");
recbytes=CSDRead(pCSDHead,recbuff,1300);
printf("recbytes=%d\n",recbytes);
printf("test words:1,%x,%x,%x,%x,%x,%x\n",recbuff[0],recbuff[1],recbuff[2],recbuff[3],recbuff[4],recbuff[5]);
printf("test words:1300,%x,%x,%x,%x,%x,%x\n",recbuff[1287],recbuff[1288],recbuff[1289],recbuff[1290],recbuff[1291],recbuff[1292]);
printf("test words:130,%x,%x,%x,%x,%x,%x\n",recbuff[117],recbuff[118],recbuff[119],recbuff[120],recbuff[121],recbuff[122]);
}
}
void main(void)
{
HANDLE pDispatchThread;
UCHAR buff[15000];
ULONG m,n,l=0,totle;
printf("CAN_RPACKET=%d\n",sizeof(CAN_RPACKET));
for(n=0;n<1000;n++)
{
buff[l++]=0x88;
buff[l++]=0x08;
buff[l++]=0x00;
buff[l++]=0xcd;
buff[l++]=0xa0;
for(m=0;m<8;m++)
buff[l++]=n;//n;
}
pCAN_OPEN_INFO pHead1,pHead2;
printf ("go to init\n");
if(!(pHead1=CSDInit(2)))
{
printf ("initFailed\n");
//return;
}
if(!CSDOpen(pHead1))
{
printf("openFailed\n");
return;
}
else
{
printf("open ok,can is ready!\n");
}
if(!(pHead2=CSDInit(1)))
{
printf ("initFailed\n");
//return;
}
if(!CSDOpen(pHead2))
{
printf("openFailed\n");
return;
}
else
{
printf("open ok,can is ready!\n");
}
printf("ready to creatthread\n");
if ((pDispatchThread=CreateThread(NULL,0,CSDTESTDispatchThread,pHead2, 0,NULL))==NULL) {
printf("Failed to creatthread\n");
return;
}
if(!(totle=CSDWrite(pHead1,buff,1300)))
{
printf("write failed");
}
else
{
printf("write words=%d\n",totle);
}
/* if(!(totle=CSDWrite(pHead2,buff,1300)))
{
printf("write failed");
}
else
{
printf("write words=%d\n",totle);
}
*/
Sleep(3000);
pCAN_OPEN_INFO pCSDHead = (pCAN_OPEN_INFO)pHead1;
printf("dwFIFO_Out=%d\n",pCSDHead->CSDHead.pXmitBuffer->dwFIFO_Out);
printf("dwFIFO_In=%d\n",pCSDHead->CSDHead.pXmitBuffer->dwFIFO_In);
if(!CSDClose(pHead1))
{
printf("CSDClose failed\n");
return;
}
if(!CSDClose(pHead2))
{
printf("CSDClose failed\n");
return;
}
printf("CSDClose OK\n");
// totle=CSDWrite(pHead,buff,130);
// printf("%d bytes sended",totle);
// CSDClose(pHead);
//
CloseHandle(pDispatchThread);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -