|
초기값을 주고 했는데 계속 안되네요,,, 컴파일은
파일을 올려보겠습니다.ㅜ
CandS_dab.cpp 에 Button1Click 함수부터 시리얼포트 열면서 데이터받고 CS_DATA에서 데이터 파싱하는 것인데 한번체크좀해주시면 감사하겠습니다.ㅜㅜ
junesaku 님이 쓰신 글 :
: data가 무엇인지 pdata가 무엇인지 모르겠지만
:
: pdata에 초기화나 데이터를 할당되지 않은 상태에서[메모리 주소건]
: pdata에 근거한 계산값[주소값]을 pdata에 집어넣고 있음으로 pdata의 값은 알수 없는 쓰레기 값이됩니다.
:
: 그런데 memcpy로 pdata에서 데이터를 읽어와서 복사하라고 하면 쓰레기 값이 복사되거나 메모리 관련 예외가 뜨게 되죠.
:
: 그래서 두 함수 모두 정상 동작을 안합니다.
:
: 초보자 님이 쓰신 글 :
: : 안되네요.ㅜㅜ 문제를 모르겟어요 구조체변수를 배열로늘리기밖에안했는데...
: :
: : 까망이 님이 쓰신 글 :
: : : 저도 왕초보라 잘은 모르겠지만,
: : : pdata에 초기값이 없어서 아닐까요??
: : : 가져오신 data는 쓰지시도 않는 구문인듯..
: : :
: : :
: : : 초보자 님이 쓰신 글 :
: : : : memcpy 하는 데 자꾸 오류가납니다.
: : : :
: : : : 원래코드에서 구조체변수를 배열로 늘렸는데 컴파일은 되는데 프로그램이 구동중에 위와같은오류가뜨는데
: : : :
: : : : 종잡을수가없습니다.ㅠㅠ
: : : :
: : : : void dab_ev_signal_quality_pars(char *data)
: : : : {
: : : : char *pdata;
: : : : pdata += 10;
: : : : memcpy(&dab_ev_signal_quality.cer, pdata, sizeof(short));
: : : : pdata += 2;
: : : : dab_ev_signal_quality.snr = *pdata;
: : : : pdata += 1;
: : : : memcpy(&dab_ev_signal_quality.rssi, pdata, sizeof(long));
: : : : #ifdef __USE_SUB_RF__
: : : : pdata += 4;
: : : : memcpy(&dab_ev_signal_quality.cer_sub, pdata, sizeof(short));
: : : : pdata += 2;
: : : : dab_ev_signal_quality.snr_sub = *pdata;
: : : : pdata += 1;
: : : : memcpy(&dab_ev_signal_quality.rssi_sub, pdata, sizeof(long));
: : : : #endif
: : : : }
: : : :
: : : : void dab_ev_signal_quality_pars(char *data, char port)
: : : : {
: : : : char *pdata;
: : : : pdata += 10;
: : : : memcpy(&dab_ev_signal_quality[port].cer, pdata, sizeof(short));
: : : : pdata += 2;
: : : : dab_ev_signal_quality[port].snr = *pdata;
: : : : pdata += 1;
: : : : memcpy(&dab_ev_signal_quality[port].rssi, pdata, sizeof(long));
: : : : #ifdef __USE_SUB_RF__
: : : : pdata += 4;
: : : : memcpy(&dab_ev_signal_quality[port].cer_sub, pdata, sizeof(short));
: : : : pdata += 2;
: : : : dab_ev_signal_quality[port].snr_sub = *pdata;
: : : : pdata += 1;
: : : : memcpy(&dab_ev_signal_quality[port].rssi_sub, pdata, sizeof(long));
: : : : #endif
: : : : }
|