Anda di halaman 1dari 2

1.Hacer un prog para generar 1marco q tiene 2 bytes de dir.

fuente,2bytes de dir
. destino,2bytes de long de datos,los datos de acuerdo a la long,85 bytes de rel
leno y
2bytes de suma de comprobacion.Los datos se encuentran en un vector [3000] y la
long. de los datos en la variable logdat
//////////////////////1.envio de byte////////////////////////////////
void SendManchester (byte dato){
for(int i=0;i<8;i++)
{
byte dato[8];
int P=1/1024000;//
1024kbps
if(((dato>>(10-i))&00000001)==0)
{
PA.0=0;
esperar(T/2);
PA.0=1;
esperar(T/2);
}else{
PA.0=1;
esperar(T/2);
PA.0=0;
esperar(T/2);
}
}
}
//////////////////////2.ENVIAR MARCO//////////////////////////////////////
void SendMarco(byte marco){
//relleno a 64bytes
int logdat
logdat=(marco[12]<<8)+marco[13];
if(logdat<46){
nBrelleno=46-logdat
}
else{
long_m=long_m+18;
}

21||12

//envia preambulo 10101010 en base 10 = 170;


for(int i=0;i<10:i++){
SendManchester(170);
}
//envia delimitador de marco 10101011 = 171
SendManchester(171);
for(int i=0;i<20:i++){
20||logdat
SendManchester(marco[i]);
}
//////////////////////
int p=20
for(int i=0,i<logdat,i++){
SendManchester(marco[P++])
}
for(int j=0,j<nBrelleno,j++)
SendManchester(0x5D)
for(int i=0,i<4,i++){
SendManchester(marco[P++])
}
}

13||22

//////////////////////3.crear marco///////////////////////////////////
void SendLLC(byte buffer[]){
int num_m;
int long_buff=getlongbuff();
num_m=long_buff/3000
////dividimos entre el vector [3000]
int marco_recibido;
for(int j=0;j<num_m;j++){
for(int m=0,m<6,m++){
marco[m]=byte((MACO<<(8*m))>>40);
for(m=0;m<12;m++)
marco[m]=byte((MACO<<(8*(m-6)))>>40);
marco[m++]=byte(3000>>8);
marco[m++]=byte(3000&0x00FF);
}
int suma=0;
for(int j=i*1500;j<1500*(j+1);j++){
marco[m++]=buffer[j];
suma+=buffer[j];}
//Acumulador para hallar suma de verificacion
for(int j=0,j<4,j++)
marco[m++]=byte(suma>>(8*(3-j)));
SendMarco(marco){
if(long_buff%3000 != 0){
int m=0;
for(m=0;m<6;m++)
marco[m]=byte(MACO>>(8*(5-j)));
for(m;m<12;m++)
marco[m++]=byte(marco>>(8*5-(12-m));
int long_mi=long_buff-num_m*3000
marco[m++]=byte(long_mi>>8);
marco[m++]=byte(long_mi);
int suma=0;
for(int j=num_m*1500;j<long_buff;j++){
marco[m++]=buffer[i];
suma+=buffer[j]}
for(int j=0;j<4;j++)
marco[m++]=byte(suma>>(8*(3-j)));
send marco(marco)
}
}

Anda mungkin juga menyukai