急需高手指点:指针与数组的问题
//将CANRuf的数据放到request中 void memorycpy(UCHAR *request,UCHAR *CANRuf,UCHAR r)
{
UCHAR i;
for(i=0;i<r;i++)
{
request[i]=CANRuf[i];
}
}
然后下面就有很多request[]和response[]的数组,由于是根据DeviceNet协议编写的程序,但是协议里面并未制定什么数组更未说哪个数组代表什么意思,而且这些数组包含的数的个数都未确定,为什么就有如下的使用呢?
response[0]=request[0]; //前两位选择使用那种报文组标识,后6位表示MAC ID
response[1]=0x63; //011*0*0011 打开显式报文响应信息,标准帧,数据长度3(报文头+报文体)
response[2]=request[2]&NON_FRAGMENTED; //报文头显示不分段
response[3]=service|SUCCESS_RESPONSE; //成功响应服务
response[4]=0; //保留位,响应接收器并未使用这些位,而且响应报文发送器将这些位置0
response[length_point]=5; //从CAN 中发送出去的数据一共有5个字节,包括报文标识
其他地方还有很多这样的使用比如:
if(error) //如果要返回错误应答的格式
{
response[0]=request[0]; //前两位选择使用那种报文组标识,后6位表示MACID
response[1]=0x64; //011*0*0100 打开显式报文响应信息,标准帧,数据长度4(报文头+报文体)
response[2]=request[2]&NON_FRAGMENTED; //报文头显示不分段
response[3]=ERROR_RESPONSE; //该字节表示是应答是出错应答
response[4]=error; //返回常规出错代码
response[5]=additional_code; //返回附加出错代码
response[length_point]=6; //CAN发送的应答总长度
}
请知道的朋友帮哥忙,多谢了!
[ 本帖最后由 xiepeilin 于 2010-9-1 09:24 编辑 ]