- NTP 서버를 마련한다.
- Windows 계열 PC를 NTP 서버로 설정하는 방법은 널리(?) 일려져 있으니 구글 검색..
- 방화벽으로 막혀 있을수 있으니 UDP 123 포트는 열어둘것. (이거 안해서 몇시간 공생했음..)
- VxWorks kernel에서 SNTP 추가한다. (INCLUDE_IPSNTPC)
- 세부 설정에서 server IP 설정
이렇게 까지만 하면 잘 동작하는데... NTP 서버 시간을 UTC 시간으로 인식한다.
즉 서버의 시간이 오후 1시 33분이면 vxWorks 장비에서는 04:33분으로 생각...
뭐.. 이가지만 해도 좋으면 그냥 둬도 되는데... TIMEZONE 변수로 맞출수도 있다.
->putenv("TIMEZONE=KST::-540:000000:000000")이렇게 하면 동작 함...
(daylight 기능은 확인안해봤지만 될것 같은 느낌....)
-> t = time()
t = 0x7912b70: value = 1327552404 = 0x4f20d794
-> printf("%s\n", asctime(gmtime(&t)))
THU JAN 26 04:33:24 2012
value = 26 = 0x1a
-> printf("%s\n", asctime(localtime(&t)))
THU JAN 26 13:33:24 2012
value = 26 = 0x1a
** 기타 시간관련 함수는 ansiTime 관련 도움말 참고...
** bsp에서 RTC 관련 시간은 바뀌지 않기때문에 시간 관련 함수 통일할것...
댓글 1개:
VxWorks로 NTP Client 구현해야해서 찾아봤는데 바로 나와서 잘 보고갑니다 ^^
근데 궁금한게 있어요!
1. NTP서버시간을 UTC로 인식한다
받은 시간이 13:33인데 이걸 UTC로 인식해서 현지 시각으로 맞춰서 4:33 으로 출력한다는거죠??
우리나라는 GMT+9인데.. 제생각엔 13:33 -> 22:33 으로 나오는게 맞는것 같은데 잘못 이해한걸까요? ㅎㅎ
아니면.. 받은 시각을 UTC로 변환해서 출력해준다는 말씀이신가요? 약간 헷갈리네요~~ㅎㅎ
2. putenv("TIMEOZNE")으로 문제해결?!
TIMEZONE으로 해결 가능하다고 하셨는데 밑에 코드 보니까 시간을 출력하신게 gmtime과 localtime 두가지를 쓰셨더라구요.
문제가 되셨던게 localtime()사용시 처음에는 GMT로 나왔다가 putenv하니까 localtime()이 제대로 나온건가요~? ㅎㅎ
궁금합니다 ^^
3. 그냥..
제생각엔 putenv로 TIMEZONE 설정을 따로 KST로 해줘야 받아온 시각을 GMT+9로 계산해주는게 아닌가 싶네요!
답변은 메일로 주시면 감사하겠습니다 ^^
nacl1119@daum.net
댓글 쓰기