ptfunction.c

来自「< 嵌入式系统编程源代码解析>>这本书所附的代码,有了几个典型」· C语言 代码 · 共 73 行

C
73
字号
#include "globalvar.h"
#include<stdlib.h>

/*************function for converting ethernet packet to shiron packet ***********/

void convertEp2Sp(unsigned int *data,unsigned int pksize,unsigned int remote_id,unsigned int packet_count,unsigned int packet_no,unsigned int source_ip,unsigned int remote_ip)
	{

	   unsigned char arr[111],LRC=0x00;
	   unsigned int l=0,temp=0,j;

	   arr[0] = 0x02;	   
   	   arr[2] = 0x00; 
	   arr[3] = 0x20;
	   
    
	   if(Superloc == 'c')
	   {
    	   arr[1] = pksize + 4 + 11;
		   arr[4] = 0x43;
	       arr[5] = 0x44;
		   arr[6] = remote_id;
   
           temp = pksize + 4 + 11; 

	       for(j=7;j<(pksize)+7;j++)
		   {
		     arr[j]=*data;
		     data++;
		   }

	       l=(pksize)+7;
	   }
	   else if(Superloc == 'r')
	   {
		   arr[1] = pksize + 4 + 10;
		   arr[4] = 0x52;
	       arr[5] = 0x44;

		   temp = pksize + 4 + 10;

		   for(j=6;j<(pksize)+6;j++)
		   {
		     arr[j]=*data;
		     data++;
		   }

	       l=(pksize)+6;

	   }

	   arr[l] = source_ip; 
	   arr[l+1] = remote_ip;
	   arr[l+2] = packet_count;
	   arr[l+3] = packet_no;
	   arr[l+4] = 0x0a;
	   arr[l+5] = 0x0d;
   
   
	   for(j=2;j<l+6;j++)
		 {
		  LRC = LRC ^arr[j];
		 }
  
	   arr[l+6] = LRC;
	   arr[l+7] = 0x03;
      addP2SBuffer(arr,temp);
	 // printf("converted into shiron and added to P2S buffer\n");
	  P2SPacketcount = P2SPacketcount +1;
 	
	}

		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?