2012년 6월 27일 수요일

랩뷰에서 연속읽기

NI_DAQmx API 는 circular 버퍼를 사용한다. 버퍼가 채워지는 동안 버퍼안의 데이터의 일부가 읽혀지는 것이다.
circular버퍼를 사용하면 NI-DAQmx가 취득된 데이터를 가져다 쓰는 동안, 장치가 연속적으로 데이터를 취득할 수 있게 할 수 있다.
버퍼의 끝에 도달하면, 버퍼의 처음으로 돌아가 다시 채워나간다. Application이 버퍼의 한 곳에서 데이터를 블록 단위로 가져다 쓰는 동안 다른 장소에는 데이터가 들어가고 있는 것이다. 이로써 새로운 데이터가 아직 읽지 않은 데이터에 덮어 쓰여지지 않게 된다.
circular 버퍼가 많은 application에서 잘 쓰이고 있지만, 두가지 가능한 문제가 발생가능하다.
첫번째는 데이터가 쌓이는 속도보다 빠른 속도로 데이터를 가져 나가는 경우와 두번째는 NI-DAQmx가 버퍼에 overwrite하기 전에 데이터를 꺼내가지 않는 경우이다. (첫번째는 데이터를 빨리 가져가는 경우, 두번째는 데이터를 늦게 가져가는 경우)
Application이 아직 수집되지 않은 버퍼로부터 데이터를 읽으려고 할 때, NI-DAQmx는 데이터가 취득되기를 기다렸다가 데이터를 return한다. application이 circular버퍼로부터 데이터를 충분히 빨리 읽지 않을 경우 에러가 발생한다. 에러 내용은 데이터의 일부가 overwrite되어 손실되었다는 것이다. 이런 식으로 데이터를 잃는 것이 중요하지 않다면 OverWrite Mode 세팅을 바꾸면 된다.

요약하면
1. 버퍼에 데이터를 채워 나간다. 버퍼는 유한하므로 버퍼의 끝까지 채우면 버퍼의 처음부터 데이터를 덮어쓴다.
2. Application은 버퍼에서 데이터를 일정크기로 끊어서가져다 쓴다.(예:먼저1~50까지 다음에는 51~100까지...)
3. 가져다 쓰는 속도가 빠르면 문제가 되지 않는다. 버퍼가 채워질때까지 기다리기 때문
4. 가져다 쓰는 속도가 느리면 데이터를 잃게 된다.

2012년 6월 24일 일요일

호기심의 부활

The author Stephen King has used an extended variation of this idiom in several of his novellas: "Curiosity killed the cat, satisfaction brought him back".

2012년 6월 8일 금요일

나라사랑 리더십의 뿌리

청소년 나라사랑 리더십 아카데미 개최
인천상륙작전기념관, 시 중고생 100여명 대상으로 교육
천안함 순직 장병 추모엽서 쓰기 등 다양한 프로그램 운영

갈담초등학교에서도 열린다고 하나,  내용을 모르고 신청했다가 난감할 수도.

이것은 한국자유초연맹에서 주최하고 보훈처가 후원하는 이벤트이다.
갈담초등학교는 사령부근처의 학교로 자주 애국 삐라가 뿌려지던 곳이다.