AAA
Dependencies: mbed
Diff: COMMs/COMMs.cpp
- Revision:
- 0:22d57f537f92
diff -r 000000000000 -r 22d57f537f92 COMMs/COMMs.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/COMMs/COMMs.cpp Thu May 24 09:38:18 2018 +0000 @@ -0,0 +1,84 @@ +#include "mbed.h" +#include "Pin_Assign.h" +#include "Global_Variables.h" +#include "COMMs.h" + +void PrsTrk(void) +{ + for(char i=0;i<=63;i++) {MuxPck[i]=TrkPck[i];} //C/P -> 63; + + MuxPck[74]=TrkPck[74]; + MuxPck[75]=TrkPck[75]; + MuxPck[76]=TrkPck[76]; + MuxPck[77]=TrkPck[77]; + MuxPck[78]=TrkPck[78]; + MuxPck[79]=TrkPck[79]; +} +void GetTrk(void) +{ + unsigned char Trkbuf; + Trkbuf=Trk.getc(); + + if(Trkbuf==0xfe&&TrkCnt==0||Trkbuf==0xfe&&TrkCnt==1) {TrkPck[TrkCnt]=Trkbuf;TrkCnt++;} + else if(TrkCnt>=2&&TrkCnt<=81) {TrkPck[TrkCnt]=Trkbuf;TrkCnt++;} + else if(Trkbuf==0xff&&TrkCnt==82||Trkbuf==0xff&&TrkCnt==83) {TrkPck[TrkCnt]=Trkbuf;TrkCnt++;} + else if(TrkCnt==84) {PrsTrk(); TrkCnt=0;} + else TrkCnt=0; +} + +void PrsTrg(void) +{ + MuxPck[64]=TrgPck[19]; //lat + MuxPck[65]=TrgPck[20]; + MuxPck[66]=TrgPck[21]; + MuxPck[67]=TrgPck[22]; + + MuxPck[68]=TrgPck[23]; //lon + MuxPck[69]=TrgPck[24]; + MuxPck[70]=TrgPck[25]; + MuxPck[71]=TrgPck[26]; + MuxPck[72]=TrgPck[27]; //al + MuxPck[73]=TrgPck[28]; +} +void GetTrg(void) +{ + unsigned char Trgbuf; + Trgbuf=Trg.getc(); + + if(Trgbuf==0xfe&&TrgCnt==0||Trgbuf==0xfe&&TrgCnt==1) {TrgPck[TrgCnt]=Trgbuf;TrgCnt++;} + else if(TrgCnt>=2&&TrgCnt<=81) {TrgPck[TrgCnt]=Trgbuf;TrgCnt++;} + else if(Trgbuf==0xff&&TrgCnt==82||Trgbuf==0xff&&TrgCnt==83) {TrgPck[TrgCnt]=Trgbuf;TrgCnt++;} + else if(TrgCnt==84) {PrsTrg(); TrgCnt=0;} + else TrgCnt=0; +} + +void PrsPc(void) +{ + for(char i=0;i<=26;i++) {Trk.putc(PcPck[i]);} +} +void GetPc(void) +{ + unsigned char Pcbuf; + Pcbuf=Pc.getc(); + + if(Pcbuf==0xfe&&PcCnt==0||Pcbuf==0xfe&&PcCnt==1) {PcPck[PcCnt]=Pcbuf;PcCnt++;} + else if(PcCnt>=2&&PcCnt<=24) {PcPck[PcCnt]=Pcbuf;PcCnt++;} + else if(Pcbuf==0xff&&PcCnt==25||Pcbuf==0xff&&PcCnt==26) {PcPck[PcCnt]=Pcbuf;PcCnt++;} + else if(PcCnt==27) {PrsPc(); PcCnt=0;} + else PcCnt=0; +} + +void Mux2GCS(void) +{ + int chksum=0; + for(char ChkCnt=1;ChkCnt<=73;ChkCnt++) + { + chksum+=MuxPck[6+ChkCnt]; + } + MuxPck[80]=chksum/256; + MuxPck[81]=chksum%256; + MuxPck[82]=0xff; + MuxPck[83]=0xff; + + for(char i=0;i<=83;i++) {Pc.putc(MuxPck[i]);} +} \ No newline at end of file