telecommand decoding

Dependencies:   mbed

Committer:
cholletisaik777
Date:
Fri May 15 05:15:08 2015 +0000
Revision:
0:81017b9a3647
telecommand decoding

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cholletisaik777 0:81017b9a3647 1 /*all variables used----------------
cholletisaik777 0:81017b9a3647 2 In one Frame sequence - Flag -> Packet -> CRC
cholletisaik777 0:81017b9a3647 3 flag
cholletisaik777 0:81017b9a3647 4 {0x7E(8)}
cholletisaik777 0:81017b9a3647 5 Packet - either Short or Long
cholletisaik777 0:81017b9a3647 6 {
cholletisaik777 0:81017b9a3647 7 psc-Packet Sequence Count(8)
cholletisaik777 0:81017b9a3647 8 apid-Application Id(2)
cholletisaik777 0:81017b9a3647 9 lfb-Last Frame Bit(1)
cholletisaik777 0:81017b9a3647 10 los-Long or Short(1)
cholletisaik777 0:81017b9a3647 11 aon-Abort on Nack(1)
cholletisaik777 0:81017b9a3647 12 spr-Spare(2)
cholletisaik777 0:81017b9a3647 13 ack-Acknoledge(1)
cholletisaik777 0:81017b9a3647 14 st-Service type(4)
cholletisaik777 0:81017b9a3647 15 sst-Service Sub Type(4)
cholletisaik777 0:81017b9a3647 16 appdata-Application Data(48 or 1040)
cholletisaik777 0:81017b9a3647 17 }
cholletisaik777 0:81017b9a3647 18 crc-Frame Check Sequence(16)
cholletisaik777 0:81017b9a3647 19
cholletisaik777 0:81017b9a3647 20 There are totally 12 bytes for short frame
cholletisaik777 0:81017b9a3647 21 and 136 for long frame
cholletisaik777 0:81017b9a3647 22 Short frame-12
cholletisaik777 0:81017b9a3647 23 {
cholletisaik777 0:81017b9a3647 24 bytes-names
cholletisaik777 0:81017b9a3647 25 1-Flag
cholletisaik777 0:81017b9a3647 26 1-PSC
cholletisaik777 0:81017b9a3647 27 1-APID(2)+LFB(1)+LoS(1)+AoN(1)+Spr(2)+Ack(1)
cholletisaik777 0:81017b9a3647 28 1-ST(4)+SST(4)
cholletisaik777 0:81017b9a3647 29 6-Appdata
cholletisaik777 0:81017b9a3647 30 2-CRC
cholletisaik777 0:81017b9a3647 31 }
cholletisaik777 0:81017b9a3647 32 Long frame-136
cholletisaik777 0:81017b9a3647 33 {
cholletisaik777 0:81017b9a3647 34 bytes-names
cholletisaik777 0:81017b9a3647 35 1-Flag
cholletisaik777 0:81017b9a3647 36 1-PSC
cholletisaik777 0:81017b9a3647 37 1-APID(2)+LFB(1)+LoS(1)+AoN(1)+Spr(2)+Ack(1)
cholletisaik777 0:81017b9a3647 38 1-ST(4)+SST(4)
cholletisaik777 0:81017b9a3647 39 130-Appdata
cholletisaik777 0:81017b9a3647 40 2-CRC
cholletisaik777 0:81017b9a3647 41 }
cholletisaik777 0:81017b9a3647 42 ------------------------------------*/
cholletisaik777 0:81017b9a3647 43 #include "mbed.h"
cholletisaik777 0:81017b9a3647 44
cholletisaik777 0:81017b9a3647 45 Serial pc(USBTX,USBRX);
cholletisaik777 0:81017b9a3647 46
cholletisaik777 0:81017b9a3647 47 int main()
cholletisaik777 0:81017b9a3647 48 {
cholletisaik777 0:81017b9a3647 49 char data[2],flag,psc,apid,lfb,los,aon,spr,ack,st,sst,crc[2],sappdata[6],lappdata[130]; //All variable used
cholletisaik777 0:81017b9a3647 50 flag=pc.getc();
cholletisaik777 0:81017b9a3647 51 psc=pc.getc();
cholletisaik777 0:81017b9a3647 52 data[0]=pc.getc(); //Data[0] contains APID,LFB,LoS,AoN,Spr and Ack
cholletisaik777 0:81017b9a3647 53 data[1]=pc.getc(); //Data[1] contains ST and SST
cholletisaik777 0:81017b9a3647 54 apid=(data[0]&0xC0)>>6;
cholletisaik777 0:81017b9a3647 55 lfb=(data[0]&0x20)>>5;
cholletisaik777 0:81017b9a3647 56 los=(data[0]&0x10)>>4;
cholletisaik777 0:81017b9a3647 57 aon=(data[0]&0x08)>>3;
cholletisaik777 0:81017b9a3647 58 spr=(data[0]&0x06)>>1;
cholletisaik777 0:81017b9a3647 59 ack=(data[0]&0x01);
cholletisaik777 0:81017b9a3647 60 st=(data[1]&0xF0)>>4;
cholletisaik777 0:81017b9a3647 61 sst=(data[1]&0x0F);
cholletisaik777 0:81017b9a3647 62 if(int(los)==0) {
cholletisaik777 0:81017b9a3647 63 for(int i=0; i<6; i++) {
cholletisaik777 0:81017b9a3647 64 sappdata[i]=pc.getc();
cholletisaik777 0:81017b9a3647 65 }
cholletisaik777 0:81017b9a3647 66 }
cholletisaik777 0:81017b9a3647 67 else {
cholletisaik777 0:81017b9a3647 68 for(int i=0; i<130; i++) {
cholletisaik777 0:81017b9a3647 69 lappdata[i]=pc.getc();
cholletisaik777 0:81017b9a3647 70 }
cholletisaik777 0:81017b9a3647 71 }
cholletisaik777 0:81017b9a3647 72
cholletisaik777 0:81017b9a3647 73 crc[0]=pc.getc();
cholletisaik777 0:81017b9a3647 74 crc[1]=pc.getc();
cholletisaik777 0:81017b9a3647 75
cholletisaik777 0:81017b9a3647 76 }