[답변] 지상국 데이터 수신 관련 질문 (일부 소스 교육자료에 Upload) > Q&A

본문 바로가기

사이트 내 전체검색


커뮤니티
누구나 참여할 수 있는 캔위성 체험·경연대회 홈페이지 입니다.



Q&A

Home   >  커뮤니티  >  Q&A

[답변] 지상국 데이터 수신 관련 질문 (일부 소스 교육자료에 Upload)

페이지 정보

profile_image
작성자 name
댓글 0건 조회 979회 작성일 19-07-19 09:28

본문

지상국 쪽 수신 부분 코드를 올려 놓을께요..

필요한 부분은 메모리를 잡고 그곳을 이용하면 될 겁니다.

이때 메모리 용량을 넘어가지 않도록 점검도 하고요.


초기에 한 통신포트에서 데이터가 들어오면 OnCommPortData 함수를 부르고 있으니 참고하세요.

예로서 Gps 관련 처리, Cameara 처리 관련 함수 부분도 올려 놓을께요.


#define MAX_CAMERA_IMAGE_PAGE     4
#define MASK_CAMERA_IMAGE_PAGE 0x03


class csdcCAMERA
{
public:
 BOOL ImageDataUpdate;
 BOOL ImageDataHave  ;
 BYTE ImageSize[MAX_CAMERA_IMAGE_PAGE];
 BYTE ImageData[MAX_CAMERA_IMAGE_PAGE][0x100000];
 BYTE ImageDataPage  ;
 BOOL ImageDataIsLeft;
 unsigned short ImageDataIndex ;
 unsigned short ImageSizeValue ;
public:
 csdcCAMERA() { Init(); }
 void Init () { memset(this,0,sizeof(csdcCAMERA));}

 BYTE *GetWorkImageData()     { return ImageData[ImageDataPage]; }
 BYTE *GetViewImageData()     { return ImageData[(ImageDataPage+MAX_CAMERA_IMAGE_PAGE-1)& MASK_CAMERA_IMAGE_PAGE];   }
 BYTE *GetViewSteroImageData(BOOL isLeft)     { return ImageData[(ImageDataPage+MAX_CAMERA_IMAGE_PAGE-1-((isLeft==ImageDataIsLeft)? 0:1))& MASK_CAMERA_IMAGE_PAGE];   }
 void InsertImageByte(BYTE b) { if( ImageDataIndex < 0x100000 ) ImageData[ImageDataPage][ImageDataIndex++] = b;      }
 void NextImageDataPage()     { ImageDataHave = TRUE ; ImageDataPage = ((ImageDataPage+1) & MASK_CAMERA_IMAGE_PAGE) ;  ImageDataIndex = 0 ; ImageDataIsLeft = ( ImageDataIsLeft == FALSE ) ; }
 BOOL HaveImageData()         { return ImageDataHave; }


};
 


> > > 혹시 제작하신 지상국 프로그램에서 데이터를 받아서 어떻게 처리하는지 알 수 있을까요? 일단 하나의 데이터 패킷(사진, IMU, GPS등)을 먼저 한번에 다 받고 이후 처리하는 건가요? 만약 그렇다면 하나의 데이터 패킷을 끝마치는 문자가 있는건가요? 데이터를 일부 단위마다 잘라서 하다보니까, 데이터가 중간에 너무 많이쌓여서 날라가는 것 같아서 질문 드립니다. > >  

첨부파일

댓글목록

등록된 댓글이 없습니다.


캔위성체험경연대회 주소 : 34141 대전광역시 유성구 대학로 291 KAIST 인공위성연구소
E-mail : cansat@kaist.ac.kr
COPYRIGHT SATREC CANSAT COMPETITION 2023. ALL RIGHTS RESERVED.