[답변] 지상국 데이터 수신 관련 질문 (일부 소스 교육자료에 Upload)
페이지 정보
본문
지상국 쪽 수신 부분 코드를 올려 놓을께요..
필요한 부분은 메모리를 잡고 그곳을 이용하면 될 겁니다.
이때 메모리 용량을 넘어가지 않도록 점검도 하고요.
초기에 한 통신포트에서 데이터가 들어오면 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등)을 먼저 한번에 다 받고 이후 처리하는 건가요? 만약 그렇다면 하나의 데이터 패킷을 끝마치는 문자가 있는건가요? 데이터를 일부 단위마다 잘라서 하다보니까, 데이터가 중간에 너무 많이쌓여서 날라가는 것 같아서 질문 드립니다. > >
첨부파일
-
CansatGs_Rx_OnCommPortData.txt (2.6K)
0회 다운로드 | DATE : 2019-07-19 09:28:09 -
CansatGs_Rx_CameraOperation.txt (43.5K)
0회 다운로드 | DATE : 2019-07-19 09:28:09 -
CansatGs_Rx_GpsOperation.txt (2.3K)
0회 다운로드 | DATE : 2019-07-19 09:28:09
- 이전글지상국 데이터 수신 관련 질문 19.07.18
- 다음글프로토콜 교육자료 관련 질문 19.07.16
댓글목록
등록된 댓글이 없습니다.