>> Edit article
이름
제목
패스워드
전광판이라... 옛날 생각이 나는군요. 저도 93년도 무렵에 인천지역 전광판 제어 프로그램을 했던 기억이 나는군요.그 땐 저도 Turbo-C를 썼지요. 모든 걸 다 도스로 구현했었는데... 그건 그렇고 전광판과는 뭘로 통신하죠? 시리얼 통신? LAN? 아니면 I/O card를 별도로 PC에 설치하기로 하셨나요? 시리얼 통신 또는 LAN을 사용 하는 경우라면 poke(), pokeb() 가 필요 없습니다. 그냥 malloc하든가 아니면 struct 로 array를 잡고 거기다 그냥 쓴 다음 메시지로 만들어 보내면 되지요. struct 사용법은 아시죠? 만약 모르신다면 C 공부를 더 하시라고 할 밖에... 아래와 같겠죠... (어디까지나 예입니다.) struct character_t { unsigned char attribute; /* 확대/축소와 같은 속성 저장 */ unsigned char color; /* bit 1:0 사용, 11=red, 10,yellow,01=amber */ unsigned char character; /* 출력하고자 하는 문자, 한글인 경우 character_t x 2 */ }; struct message_t { struct character_t message[24]; /* 최대 24글자 가정, 한글 12문자 */ }; 만약 I/O 카드를 별도로 설치하셨다면 그 땐 얘기가 좀 복잡해지겠군요. 처음 답을 할 때 ???map 을 언급한 것 같은데 아무리 매뉴얼을 찾아봐도 I/O 주소를 application으로 mapping 시켜주는 비슷한 함수를 못 찾겠 더군요. 만약에 저라면 간단한 char device driver를 짜겠습니다. 더 간단하게는 /proc 디렉토리 밑에 간단하게 entry 를 하나 추가하고 그 것의 handler를 매달면 커널에서 I/O를 처리할 수 있습니다. 커널 드라이버를 만드는 방법은 Linux device driver 프로그래밍에 관련된 책을 보시기 바랍니다. 번역되어 나오는 유명한 책이 있는데 책 제목을 정확하게 기억하질 못하겠네요. 그 책이 얼마 전에 저작권에 관련된 중요한 변화가 있었던 것으로 기억하는데 정확하지는 않습니다. 하지만 제 경험으로 미뤄볼 때 전광판과 통신하자고 별도의 I/O 카드를 만들지는 않았을 것 같습니다. 도로 교통 관제실에 연결된 전광판이 한 두대도 아니고 관제실과 전광판 사이의 거리가 있기 때문에 I/O 카드 로는 해결이 어렵죠. 더군다나 90년도 초반도 아닌 2002년도에 그런 식으로 문제를 해결할 것 같지는 않군요. 아닌가요? 가능하면 다 가르쳐 드리고 싶지만 시간 관계상 여기까지만 설명드리죠. 참, 기존 프로그램이 window (아마도 3.1?) / dos 로 되어 있었다고 했나요? 그렇다면 그 소스를 구해보시죠. 그렇다면 답은 거기에 있을 것 같은데... 아이디가 '지나가다'인 만큼 여기까지만 쓰겠습니다. : 제가 하는 프로젝트가 도로 전광판용 운영 프로그램을 만드는데 : 기존에는 윈도우와 도스 환경으로 돼 있어서 리눅스로 바꾸는 과정이거든요 : 근데 도스의 poke나 pokeb함수가 특정 메모리 위치에 원하는 값을 저장하고 : 저장된 메모리의 값을 전광판으로 송출하는 건데 저장되는 값은 red&green : &amber의 색깔값을 저장합니다 :
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved