Device Programming Guide for P20

Size: px
Start display at page:

Download "Device Programming Guide for P20"

Transcription

1 PHPoC Device Programming Guide for P20 Version 1.2 솔내시스템 PHPoC 포럼 : 홈페이지 :

2 목차 개요 디바이스 디바이스파일의위치 디바이스종류 디바이스사용절차 디바이스열기 디바이스사용 디바이스닫기 디지털 I/O 개요 사용절차 디지털 I/O 열기 디지털 I/O 설정 설정가능한디지털 I/O 종류 디지털 I/O 사용 디지털 I/O 상태읽기 디지털 I/O에값쓰기 릴레이제어하기 UART 사용절차 UART 열기 UART 설정 설정가능한 UART 항목 시리얼통신방식설정 UART 상태정보확인 확인가능한 UART 상태정보 송신버퍼에남아있는데이터크기 수신데이터크기 수신버퍼여유공간 UART 사용 데이터수신 데이터송신 NET 사용절차 NET 열기 NET 상태정보확인

3 4.3.1 확인가능한 NET 상태정보 TCP 사용절차 TCP 열기 TCP 설정 설정가능한 TCP 항목 SSL사용 TELNET서버사용 SSH서버사용 웹소켓서버사용 TCP 접속 TCP클라이언트 ( 능동접속 ) TCP서버 ( 수동접속 ) TCP 상태정보확인 확인가능한 TCP 상태정보 TCP세션상태 송신버퍼에남아있는데이터크기 수신데이터크기 수신버퍼여유공간 TCP 데이터통신 TCP 데이터수신 TCP 데이터송신 UDP 사용절차 UDP 열기 UDP 바인딩 UDP 설정 설정가능한 UDP 항목 UDP 상태정보확인 확인가능한 UDP 상태정보 수신데이터크기확인 UDP 데이터통신 데이터수신 데이터송신 ST 사용절차 ST 열기 ST 설정및사용 공통명령어

4 7.3.2 프리모드 프리모드사용예 토글출력모드 토글출력모드사용예 펄스출력모드 펄스출력모드사용예 PWM출력모드 PWM출력모드사용예 트리거 부록 : 디바이스관련함수 부록 : 디바이스정보 제품별디바이스개수 제품별디바이스파일경로 UART NET TCP UDP I/O ST ENV 및사용자메모리 부록 : 펌웨어사양및제한사항 펌웨어별적용제품 펌웨어사양 제한사항 부록 : pid_ioctl 명령어인덱스 문서변경이력

5 개요 1.1 디바이스 PHPoC가제공하는하드웨어장치또는소프트웨어기능을디바이스라고합니다. 모든디바이스들은특수한파일형태로제공되며일반적인파일입 / 출력과같은방식으로사용할수있습니다. PHPoC의파일시스템구조는아래그림과같습니다. 그림 1-1 PHPoC 의파일시스템구조 1.2 디바이스파일의위치 PHPoC에서제공하는모든디바이스파일들은 root 디렉터리안에있는 mmap(memory map) 이라는디렉터리에위치합니다. 따라서특정디바이스는다음과같은경로를사용하여접근해야합니다. /mmap/ 디바이스이름 사용자가 PHPoC로업로드하는모든파일들은파일시스템의최상위디렉터리인 root 디렉터리에위치하게됩니다. PHPoC에서사용자가접근할수있는디렉터리로는 root와 /mmap이있습니다. 사용자는파일시스템에임의로디렉터리를만들거나삭제할수없습니다

6 1.3 디바이스종류 PHPoC는다음과같은디바이스를제공합니다. 구분디바이스이름하드웨어디지털I/O( 입 / 출력 ), UART( 시리얼 ), NET( 네트워크 ) 소프트웨어 TCP, UDP, ST( 타이머 ) 표 1-1 디바이스종류제공되는디바이스들의개수는제품또는펌웨어버전에따라서달라질수있습니다. 제품별디바이스에관한자세한내용은부록을참조하시기바랍니다. 1.4 디바이스사용절차 일반적인디바이스사용법은다음과같습니다. 그림 1-2 디바이스사용절차 디바이스열기 pid_open함수를이용하여각디바이스를열수있습니다. 이함수는 pid(peripheral ID) 라는정수값을반환하는데이값은해당디바이스에접근할수있는고유번호로사용됩니다 디바이스사용 디바이스를성공적으로연다음에는반환된 pid 가가리키는디바이스를사용할수 있습니다 디바이스닫기 디바이스의사용이끝나서더이상필요하지않으면해당 pid 가가리키는디바이스를 pid_close 함수를이용해닫습니다. 디바이스에따라서 pid_close 함수가필요하지않을수있습니다

7 디지털 I/O 2.1 개요 디지털 I/O는디지털입력을감시하거나출력을제어하는용도로사용할수있습니다. 또한제품의각종상태를나타내기위한 LED로연결하거나시리얼통신종류를설정할때에도사용됩니다. 디지털 I/O의구조모든디지털 I/O의상태는 HIGH( 또는 1), LOW( 또는 0) 의두가지상태값을가집니다. 따라서각각의포트는다음과같이하나의비트로맵핑되어표현됩니다. 그림 2-1 디지털 I/O 맵핑예 2.2 사용절차 일반적인디지털 I/O 사용절차는다음과같습니다. 그림 2-2 디지털 I/O 사용절차 2.3 디지털 I/O 열기 디지털 I/O 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/io3"); // 3 번디지털 I/O 열기 LED 를포함한제품별디지털 I/O 에관한자세한내용은부록을참조하시기 바랍니다

8 2.4 디지털 I/O 설정 디지털 I/O를사용하기전에반드시어떤용도로사용할것인지를설정해야합니다. 설정을위해서는 pid_ioctl함수의 set명령을사용합니다. pid_ioctl($pid, "set N1[-N2] mode TYPE"); N1과 N2는설정할디지털 I/O의포트번호의범위를나타냅니다. 단일포트를설정하는경우에는 N2를생략할수있습니다. 설정가능한 TYPE은다음과같습니다 설정가능한디지털 I/O 종류 TYPE in out led_sys 설명 디지털입력 - 디지털출력 low high led_net0_act / led_net1_act led_net0_link / led_net1_link led_net0_rx / led_net1_rx led_net0_tx / led_net1_tx 디지털출력 : 초기값 LOW 디지털출력 : 초기값 HIGH 시스템상태 LED NET(net0 - 유선, net1 - 무선 ) 링크활성화 LED: - NET 이네트워크에정상적으로연결된경우 LOW - 네트워크데이터를송신또는수신하는순간 HIGH NET 링크 LED: 네트워크연결시 LOW NET 수신 LED: 네트워크로부터데이터를수신하는순간 LOW NET 송신 LED: 네트워크로데이터를송신하는순간 LOW 표 2-1 설정가능한디지털 I/O 종류 LED 가인터페이스되어있는제품들은위포트들을물리적인 LED 로맵핑할수 있습니다. 물리적인 LED 는포트상태가 LOW 이면켜지고 (ON) HIGH 이면 꺼집니다 (OFF). 자세한내용은해당제품의회로도를참조하시기바랍니다. 디지털 I/O종류설정예 $pid = pid_open("/mmap/io3"); // 3번디지털 I/O 열기 pid_ioctl($pid, "set 0 mode out"); // 0번출력 (out) 포트로설정 pid_ioctl($pid, "set 1-2 mode out high"); // 1~2번출력 (in) 포트로설정 : HIGH pid_ioctl($pid, "set 3 mode led_net0_link"); // 3번 NET 링크LED로설정 pid_ioctl($pid, "set 12 mode led_net0_rx"); // 12번 NET 수신 LED로설정 pid_ioctl($pid, "set 13 mode led_net0_tx"); // 13번 NET 송신 LED로설정

9 2.5 디지털 I/O 사용 디지털 I/O 상태읽기 디지털 I/O 상태를읽을때에는 pid_read함수를사용하여모든포트의상태를한번에읽거나, pid_ioctl함수의 get명령을사용해단일포트정보를읽습니다. 단일포트정보의경우에는입 / 출력상태뿐만아니라설정유형까지읽을수있습니다. pid_read($pid, VALUE); // 모든포트상태읽기 (16 bits 단위 ) pid_ioctl($pid, "get N ITEM); // 단일포트정보읽기 (1 bit 단위 ) 단일포트정보읽기에서사용가능한 ITEM은다음과같습니다. ITEM mode 설명 해당포트의설정유형을 문자열형태로반환 입 / 출력핀 : "in", "out", "led_xxx" 등 ST 출력으로사용중인핀 : "st_out" input output 해당입력포트의상태를정수형태로반환 (0: LOW, 1: HIGH) 해당출력포트의상태를정수형태로반환 (0: LOW, 1: HIGH) 모든포트상태읽기예 표 2-2 단일포트정보읽기에서사용가능한 ITEM 아래예제는 3 번 IO 의포트들을입력포트로설정한후그상태값을읽어서출력합니다. $value = 0; $pid = pid_open("/mmap/io3"); // 3번디지털 I/O 열기 pid_ioctl($pid, "set 0-3 mode in"); // 0~3번입력설정 pid_read($pid, $value); // 디지털 I/O 상태읽기 (16bits 단위 ) printf("0x%x\r\n", $value); // 출력결과예 : 0xf00f 단일포트정보읽기예 아래예제는 3 번 IO 의 0 번포트를기본상태가 HIGH 인출력포트로설정하고설정유형 및출력상태를읽어서출력합니다. $pid = pid_open("/mmap/io3"); // 디지털 I/O 열기 pid_ioctl($pid, "set 0 mode out high"); // 0번포트출력설정 (HIGH) $mode = pid_ioctl($pid, "get 0 mode"); // 0번포트설정유형확인 $output = pid_ioctl($pid, "get 0 output"); // 0번포트출력상태확인 printf("%s, %d\r\n", $mode, $output); // 출력결과 : out, 1 pid_ioctl 의 get 명령으로단일포트의상태를읽을때해당포트의유형이 입력포트인경우에는 "get N input" 을, 출력포트인경우에는 "get N output" 을 사용해야합니다

10 2.5.2 디지털 I/O 에값쓰기 디지털 I/O에값을출력하기위해서는 pid_write함수를사용하여모든포트에한번에출력하거나, pid_ioctl함수의 set명령을사용해단일포트로출력합니다. pid_write($pid, VALUE); // 모든포트출력 (16 bits 단위 ) pid_ioctl($pid, "set N output TYPE"); // 단일포트출력 (1 bit 단위 ) 모든포트출력예아래예제는 3번 IO의모든포트를출력포트로설정한후임의의값을쓰고, 다시디지털 I/O의상태를읽어출력하는예제입니다. $value = 0; $pid = pid_open("/mmap/io3"); // 3번디지털 I/O 열기 pid_ioctl($pid, "set 0-7 mode out"); // 디지털 I/O 0~7번출력설정 pid_read($pid, $value); // 디지털 I/O 상태읽기 pid_write($pid, ($value & 0xff00) 0x0055); // 0x0055 출력 pid_read($pid, $value); // 디지털 I/O 상태읽기 printf("0x%0x\r\n", $value); // 출력결과예 : 0x0055 단일포트출력예아래예제는 3번 IO의 0번포트를기본상태가 LOW인출력포트로설정하고 HIGH를출력한후입 / 출력상태를읽어서출력합니다. $pid = pid_open("/mmap/io3"); // 3번디지털 I/O 열기 pid_ioctl($pid, "set 0 mode out low"); // 0번포트출력설정 (LOW) pid_ioctl($pid, "set 0 output high"); // 0번포트에 HIGH 출력 $output = pid_ioctl($pid, "get 0 output"); // 0번포트출력상태확인 printf("%d\r\n", $output); // 출력결과 : 1 출력제한설정예아래예제는 0번포트에출력제한을설정한경우와그렇지않은경우에 HIGH 출력의적용여부를비교하는예제입니다. $pid = pid_open("/mmap/io3"); // 디지털 I/O 열기 pid_ioctl($pid, "set 0 mode out low"); // 0번포트출력설정 (LOW) pid_ioctl($pid, "set 0 lock"); // 0번포트출력제한설정 pid_ioctl($pid, "set 0 output high"); // 0번포트에 HIGH 출력 $output1 = pid_ioctl($pid, "get 0 output"); // 0번포트출력상태확인 pid_ioctl($pid, "set 0 unlock"); // 0번포트출력제한해제 pid_ioctl($pid, "set 0 output high"); // 0번포트에 HIGH 출력 $output2 = pid_ioctl($pid, "get 0 output"); // 0번포트출력상태확인 printf("%d, %d\r\n", $output1, $output2); // 출력결과 : 0,

11 2.5.3 릴레이제어하기 디지털출력포트가릴레이로연결된외장형제품들이있습니다. 릴레이제어예아래예제는릴레이포트를매초마다 0번부터순서대로 ON한다음모든포트를 ON/OFF하는예제입니다. $pid = pid_open("/mmap/io4"); // 4번디지털 I/O( 릴레이 ) 열기 pid_ioctl($pid, "set 7 mode out"); // 7번 ( 릴레이활성 ) 을출력으로설정 pid_ioctl($pid, "set 8-11 mode out"); // 8 ~ 11번설정 ( 릴레이포트 0 ~ 3번 ) pid_write($pid, 0x0100); // 릴레이포트 0번 ON sleep(1); pid_write($pid, 0x0200); // 릴레이포트 1번 ON sleep(1); pid_write($pid, 0x0400); // 릴레이포트 2번 ON sleep(1); pid_write($pid, 0x0800); // 릴레이포트 3번 ON sleep(1); pid_write($pid, 0x0f00); // 릴레이포트 0 ~ 3번모두 ON sleep(1); pid_write($pid, 0x0000); // 릴레이포트 0 ~ 3번모두 OFF 위예제는릴레이포트가없는제품의경우에는사용할수없습니다

12 UART UART(Universal Asynchronous Receiver and Transmitter) 는가장널리사용되고있는 시리얼통신방식입니다. 3.1 사용절차 일반적인 UART 사용절차는다음과같습니다. 그림 3-1 UART 사용절차 3.2 UART 열기 UART 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/uart0"); // 0 번 UART 열기 제품별 UART 에관한자세한내용은부록을참조하시기바랍니다. 3.3 UART 설정 UART를사용하기전에반드시설정이필요합니다. 통신속도 (baud rate), 데이터비트 (data bit), 정지비트 (stop bit), 패리티 (parity) 등의설정항목이있으며, 설정을위해서는 pid_ioctl함수의 set명령을사용합니다. pid_ioctl($pid, "set ITEM VALUE"); ITEM은설정할항목을, VALUE는항목에설정할값을의미합니다

13 3.3.1 설정가능한 UART 항목 ITEM VALUE 설명 baud 예 ) 9600 통신속도 [bps], 2400 ~ parity 0 패리티사용안함 1 EVEN( 짝수패리티 ) 2 ODD( 홀수패리티 ) 3 MARK( 패리티비트항상 1) 4 SPACE( 패리티비트항상 0) 8 데이터비트 8 data 7 데이터비트 7( 이때반드시패리티를사용해야함 ) 1 정지비트 1 stop 2 정지비트 2 flowctrl 0 흐름제어사용안함 1 RTS/CTS 흐름제어사용 2 Xon/Xoff 흐름제어사용 3 TxDE 흐름제어사용 (RS485) 표 3-1 설정가능한 UART 항목 UART 설정예 $pid = pid_open("/mmap/uart0"); // 0번 UART 열기 pid_ioctl($pid, "set baud 9600"); // 통신속도 9600 bps pid_ioctl($pid, "set parity 0"); // 패리티사용안함 pid_ioctl($pid, "set data 8"); // 데이터비트 8 pid_ioctl($pid, "set stop 1"); // 정지비트 1 pid_ioctl($pid, "set flowctrl 0"); // 흐름제어사용안함

14 3.3.2 시리얼통신방식설정 UART는제품에따라 RS232뿐만아니라 RS422이나 RS485로도확장이가능합니다. 시리얼통신방식을설정하기위해서는 TxDE 및관련입 / 출력핀을알맞게설정해야합니다. 다음예제는 0번 UART의시리얼통신방식을변경하는방법을안내하는예제입니다. $pid = pid_open("/mmap/uart0"); // 0번 UART 열기 pid_ioctl($pid, "set baud 9600"); // 통신속도 9600 bps pid_ioctl($pid, "set parity 0"); // 패리티사용안함 pid_ioctl($pid, "set data 8"); // 데이터비트 8 pid_ioctl($pid, "set stop 1"); // 정지비트 1 pid_ioctl($pid, "set flowctrl 3"); // TxDE 흐름제어사용 $pid_mode = pid_open("/mmap/io4"); // UART모드설정포트열기 pid_ioctl($pid_mode, "set 0-3 mode out"); // UART모드설정핀초기화 pid_write($pid_mode, 0x05); // RS232 설정 //pid_write($pid_mode, 0x02); // RS422 설정 ( 주석해제 ) //pid_write($pid_mode, 0x0c); // RS485 설정 ( 주석해제 ) pid_close($pid_mode); 위예제는 "/mmap/io4" 의 0-3 번비트가시리얼통신방식을설정하는용도로 맵핑된경우를가정하였습니다. 통신방식설정을위한맵핑경로및설정값은제품에 따라다를수있으니제품별디바이스관련정보를확인하시기바랍니다. 제품별디지털 I/O 관련정보는부록을참조하시기바랍니다

15 3.4 UART 상태정보확인 pid_ioctl 함수의 get 명령어로 UART 의각종상태를확인할수있습니다. $return = pid_ioctl($pid, "get ITEM"); 확인가능한 UART 상태정보 ITEM 설명 반환값 반환형식 baud 통신속도 [bps] 예 ) 9600 정수 parity 패리티 0 / 1 / 2 / 3 / 4 정수 data 데이터비트 [bit] 8 / 7 정수 stop 정지비트 [bit] 1 / 2 정수 flowctrl 흐름제어 0 / 1 / 2 / 3 정수 txbuf 송신버퍼크기 [Byte] 예 ) 1024 정수 txfree 송신버퍼여유공간 [Byte] 예 ) 1024 정수 rxbuf 수신버퍼크기 [Byte] 예 ) 1024 정수 rxlen 수신데이터크기 [Byte] 예 ) 10 정수 표 3-2 확인가능한 UART 상태정보 UART 상태정보확인예 UART의현재설정값은다음과같이확인할수있습니다. $pid = pid_open("/mmap/uart0"); // 0번 UART 열기 $baud = pid_ioctl($pid, "get baud"); // 통신속도 $parity = pid_ioctl($pid, "get parity"); // 패리티 $data = pid_ioctl($pid, "get data"); // 데이터비트 $stop = pid_ioctl($pid, "get stop"); // 정지비트 $flowctrl = pid_ioctl($pid, "get flowctrl"); // 흐름제어 echo "baud = $baud\r\n"; // 출력예 : baud = 9600 echo "parity = $parity\r\n"; // 출력예 : parity = 0 echo "data = $data\r\n"; // 출력예 : data = 8 echo "stop = $stop\r\n"; // 출력예 : stop = 1 echo "flowctrl = $flowctrl\r\n"; // 출력예 : flowctrl =

16 3.4.2 송신버퍼에남아있는데이터크기 UART 의송신버퍼에남아있는데이터크기는다음과같이계산할수있습니다. 송신버퍼에남아있는데이터크기 = 송신버퍼크기 - 송신버퍼여유공간 사용예 이예제는 0 번 UART 에 10 바이트를전송하고, 송신버퍼에남아있는데이터크기를 계산하여출력합니다. $txlen = -1; $data = " "; $pid = pid_open("/mmap/uart0"); pid_ioctl($pid, "set baud 9600"); pid_ioctl($pid, "set parity 0"); // 0 번 UART 열기 // 통신속도 9600 bps // 패리티사용안함 pid_ioctl($pid, "set data 8"); // 데이터비트 8 pid_ioctl($pid, "set stop 1"); // 정지비트 1 pid_ioctl($pid, "set flowctrl 0"); pid_write($pid, $data); while($txlen) { $txbuf = pid_ioctl($pid, "get txbuf"); // 흐름제어사용안함 // UART 에데이터 ($data) 송신 // 송신버퍼크기확인 $txfree = pid_ioctl($pid, "get txfree"); // 송신버퍼여유공간확인 $txlen = $txbuf - $txfree; echo "tx len = $txlen\r\n"; usleep(1000); } pid_close($pid); // 송신버퍼에남아있는데이터크기계산 // 송신버퍼에남아있는데이터크기출력 수신데이터크기 UART 가수신한데이터크기는다음과같이확인할수있습니다. $rxlen = pid_ioctl($pid, "get rxlen[ $string]"); 특정문자 ( 열 ) 까지수신한데이터크기확인하기 rxlen명령어뒤에특정문자열 ($string) 을입력하면 pid_ioctl함수는해당문자열이들어오기전까지는 0을반환하다가해당문자열이들어오면그문자열까지의수신데이터크기를반환합니다

17 3.4.4 수신버퍼여유공간 UART 의수신버퍼여유공간은다음과같이계산할수있습니다. 수신버퍼여유공간 = 수신버퍼크기 - 수신데이터크기 사용예이예제는 0번 UART의수신버퍼의여유공간을계산하여출력합니다. $rdata = ""; $pid = pid_open("/mmap/uart0"); // 0번시리얼포트열기 pid_ioctl($pid, "set baud 9600"); // 통신속도 9600 bps pid_ioctl($pid, "set parity 0"); // 패리티사용안함 pid_ioctl($pid, "set data 8"); // 데이터비트 8 pid_ioctl($pid, "set stop 1"); // 정지비트 1 pid_ioctl($pid, "set flowctrl 0"); // 흐름제어사용안함 $rxbuf = pid_ioctl($pid, "get rxbuf"); // 수신버퍼크기확인 $rxlen = pid_ioctl($pid, "get rxlen"); // 수신데이터크기확인 $rxfree = $rxbuf - $rxlen; echo "rxfree = $rxfree\r\n"; pid_close($pid); // 수신버퍼여유공간계산 // 수신버퍼여유공간출력

18 3.5 UART 사용 데이터수신 시리얼포트로부터들어온데이터는수신버퍼에저장됩니다. 이수신버퍼에저장된값을 pid_read 함수로읽어서데이터를수신합니다. pid_read 함수는다음과같이사용합니다. 그림 3-2 UART 데이터수신 pid_read($pid, $var[, $len]); $var 는읽은값을저장할변수이고, $len 은읽을바이트수를의미합니다. 사용예 이예제는약 1 초마다 UART 로수신되는데이터를확인하여출력합니다. $rdata = ""; $pid = pid_open("/mmap/uart0"); pid_ioctl($pid, "set baud 9600"); pid_ioctl($pid, "set parity 0"); // 0 번 UART 열기 // 통신속도 9600bps // 패리티사용안함 pid_ioctl($pid, "set data 8"); // 데이터비트 8 pid_ioctl($pid, "set stop 1"); // 정지비트 1 $rxbuf = pid_ioctl($pid, "get rxbuf"); while(1) { $rxlen = pid_ioctl($pid, "get rxlen"); $rx_free = $rxbuf - $rxlen; echo "$rx_free / $rxbuf\r\n"; // 수신버퍼크기확인 // 수신데이터크기확인 // 버퍼여유공간확인 $len = pid_read($pid, $rdata, $rxlen); // 데이터읽기 echo "len = $len / "; echo "rdata = $rdata\r\n"; sleep(1); } pid_close($pid); // 수신버퍼여유공간 / 크기출력 // 읽은데이터크기출력 // 읽은데이터출력

19 3.5.2 데이터송신 pid_write 함수를이용해쓰기한데이터는송신버퍼에저장되었다가 UART 를통해외부로 송신됩니다. pid_write 함수는다음과같이사용합니다. 그림 3-3 UART 데이터송신 pid_write($pid, $var[, $wlen]); $var는쓸데이터가저장된변수이고, $wlen은쓸바이트수입니다. 사용예이예제는약 1초마다송신버퍼의여유공간을확인하여 UART로데이터를출력합니다. $sdata = " "; $pid = pid_open("/mmap/uart0"); pid_ioctl($pid, "set baud 9600"); $txbuf = pid_ioctl($pid, "get txbuf"); while(1) { // 0 번시리얼포트열기 // 통신속도 9600bps // 송신버퍼크기확인 $txfree = pid_ioctl($pid, "get txfree"); // 송신버퍼여유공간확인 echo "txfree = $txfree\r\n"; // 송신버퍼여유공간출력 $len = pid_write($pid, $sdata, $txfree); // 데이터쓰기 echo "len = $len\r\n"; sleep(1); } pid_close($pid); // 쓰기한데이터크기출력 위코드에서 pid_write 함수의세번째인수는쓰기할데이터의크기를의미합니다. 쓰기 데이터크기가송신버퍼의여유공간보다크면데이터가유실될수있습니다. 따라서항상 버퍼여유공간을확인한후그값또는그이하의값으로쓰기데이터크기를설정하시기 바랍니다

20 NET NET 는물리적인유 / 무선네트워크인터페이스입니다. 4.1 사용절차 일반적인 NET 사용절차는다음과같습니다. 그림 4-1 NET 사용절차 4.2 NET 열기 NET 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/net0"); // 0 번 NET 열기 제품별 NET 에관한자세한내용은부록을참조하시기바랍니다

21 4.3 NET 상태정보확인 pid_ioctl 함수의 get 명령어를이용하여 NET 의상태정보를확인할수있습니다. $return = pid_ioctl($pid, "get ITEM"); ITEM 은확인가능한상태정보의이름입니다 확인가능한 NET 상태정보 ITEM 설명 반환값 반환형식 hwaddr MAC주소 예 ) 00:30:f9:00:00:01 문자열 ipaddr 설정된 IP주소 예 ) 문자열 netmask 서브넷마스크 예 ) 문자열 gwaddr 게이트웨이주소 예 ) 문자열 nsaddr 네임서버주소 예 ) 문자열 10M이더넷 10BASET 문자열 100M이더넷 100BASET 문자열 mode speed 무선랜사용불가 ""( 빈문자열 ) 문자열 무선랜인프라스트럭처 INFRA 문자열 무선랜애드혹 IBSS 문자열 무선랜 Soft AP AP 문자열 유선랜속도 [Mbps] 0 / 10 / 100 정수 무선랜속도 [100Kbps] 0 / 10 / 20 / 55 / 110 / 60 / 90 / 120 / 180 / 240 / 360 / 480 / 540 표 4-1 확인가능한 NET 상태정보 정수 NET 상태정보확인예 이예제는 NET 의각상태정보를확인하여출력합니다. $pid = pid_open("/mmap/net0"); echo pid_ioctl($pid, "get hwaddr"), "\r\n"; echo pid_ioctl($pid, "get ipaddr"), "\r\n"; echo pid_ioctl($pid, "get netmask"), "\r\n"; echo pid_ioctl($pid, "get gwaddr"), "\r\n"; echo pid_ioctl($pid, "get nsaddr"), "\r\n"; echo pid_ioctl($pid, "get mode"), "\r\n"; echo pid_ioctl($pid, "get speed"), "\r\n"; pid_close($pid); // 0번 NET 열기 // MAC주소확인 // IP주소확인 // 서브넷마크스확인 // 게이트웨이주소확인 // 네임서버주소확인 // 이더넷방식확인 // 이더넷속도확인 // 네트워크포트닫기

22 TCP TCP 는네트워크상에서데이터를전송할때사용하는프로토콜로 UDP 와더불어 오늘날의인터넷에서사용되는 TCP/IP 프로토콜중전송을담당하는핵심적인프로토콜 입니다. TCP 는접속과정이있으며데이터의신뢰성을보장하는특징이있습니다. 5.1 사용절차 일반적인 TCP 사용절차는다음과같습니다. 그림 5-1 TCP 사용절차 디바이스를 TCP 서버로동작시키고자하는경우에는바인딩과정을생략할수 없습니다. 5.2 TCP 열기 TCP 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/tcp0"); // 0 번 TCP 열기 제품별 TCP 에관한자세한내용은부록을참조하시기바랍니다

23 5.3 TCP 설정 TCP를사용하기전에설정이필요한경우가있습니다. 특히 SSL, SSH, TELNET 또는웹소켓을사용하기위해서는 pid_ioctl함수의 set명령을이용하여반드시접속전에설정을먼저해주어야합니다. pid_ioctl($pid, "set ITEM VALUE"); ITEM은설정항목을, VALUE는항목에대한값을나타냅니다 설정가능한 TCP 항목 ITEM VALUE 설명 nodelay 0 TCP Nagle 알고리즘사용 1 TCP Nagle 알고리즘사용안함 ssl SSL 사용 api ssh SSH 서버사용 telnet TELNET 서버사용 ws 웹소켓 (Web Socket) 서버사용 ssl method ssl3_client SSL클라이언트 (SSL 3.0) tls1_client SSL클라이언트 (TLS 1.0) ssl3_server SSL서버 (SSL 3.0) tls1_server SSL서버 (TLS 1.0) ssh auth accept SSH 인증허용 reject SSH 인증거부 path PATH 웹소켓 URI의경로설정 0 웹소켓데이터형식 : 텍스트 (text) mode ws 1 웹소켓데이터형식 : 바이너리 (binary) proto PROTOCOL 웹소켓통신에서사용할프로토콜 origin ADDR 접근을허용할호스트의주소설정 표 5-1 설정가능한 TCP 항목 TCP Nagle 알고리즘은데이터를전송할때세그먼트의수를최소한으로줄여전송효율 높이기위한기능으로약간의지연시간이동반됩니다. 주의 : "set api" 명령으로설정하는항목들은 TCP0 ~ 3 에서만사용이가능합니다. 또한특정 TCP 의 api 모드가설정되면해당 TCP 는제품이리부팅되기전까지다른 api 모드로사용할수없습니다

24 5.3.2 SSL 사용 PHPoC 는 "set api ssl" 명령을이용해 SSL 서버또는클라이언트로동작시킬수있습니다. 다음은 SSL 서버설정예입니다. SSL 서버설정예 $port = 1470; $pid = pid_open("/mmap/tcp0"); pid_ioctl($pid, "set api ssl"); // 포트번호 // 0 번 TCP 열기 // SSL 사용 pid_ioctl($pid, "set ssl method tls1_server"); // SSL 서버 (TLS 1.0) 설정 pid_bind($pid, "", $port); pid_listen($pid); // 바인딩 // TCP 수동접속대기 do $state = pid_ioctl($pid, "get state"); while(($state!= SSL_CLOSED) && ($state!= SSL_CONNECTED)); if($state == SSL_CONNECTED) { echo "Connection has been established!\r\n"; } pid_close($pid); // TCP 접속종료 PHPoC 를 SSL 서버로사용할때제품에인증서가저장되어있어야합니다. 인증서는 PHPoC Debugger 를통해생성하거나저장할수있습니다. 다음예제는 PHPoC 를 SSL 클라이언트로설정하는예입니다. SSL 클라이언트설정예 $addr = " "; $port = 1470; $pid = pid_open("/mmap/tcp0"); pid_ioctl($pid, "set api ssl"); pid_ioctl($pid, "set ssl method tls1_client"); pid_connect($pid, $addr, $port); // 서버 IP 주소 // 포트번호 // 0 번 TCP 열기 // SSL 사용 // SSL 서버 (TLS 1.0) 설정 // TCP 능동접속시도 do $state = pid_ioctl($pid, "get state"); while(($state!= SSL_CLOSED) && ($state!= SSL_CONNECTED)); if($state == SSL_CONNECTED) { echo "Connection has been established!\r\n"; } pid_close($pid); // TCP 접속종료 PHPoC 의메모리사용량이늘어나면 SSL 통신을위한메모리공간이확보되지못해 SSL 동작이원활하지않거나불가능할수있습니다

25 5.3.3 TELNET 서버사용 PHPoC 를 "set api telnet" 명령을이용해 TELNET 서버로동작시킬수있습니다. 다음은 TELNET 서버설정예입니다. TELNET 서버설정예 $port = 23; $pid = pid_open("/mmap/tcp0"); pid_ioctl($pid, "set api telnet"); pid_bind($pid, "", $port); pid_listen($pid); // 포트번호 // 0 번 TCP 열기 // TELNET 사용 // 바인딩 // TCP 수동접속대기 do $state = pid_ioctl($pid, "get state"); while(($state!= TCP_CLOSED) && ($state!= TCP_CONNECTED)); if($state == TCP_CONNECTED) { pid_send($pid, "Welcome to PHPoC TELNET server\r\n"); echo "Connection has been established!\r\n"; } pid_close($pid); // TCP 접속종료 위예제에서 PHPoC 는 23 번포트로접속을대기하다가 TELNET 클라이언트가접속하면 환영메시지를송신하고접속을종료합니다

26 5.3.4 SSH 서버사용 PHPoC를 "set api ssh" 명령을이용해 SSH 서버로동작시킬수있습니다. 다음은 SSH 서버설정예입니다. SSH 서버설정예 $port = 22; // 포트번호 $pid = pid_open("/mmap/tcp0"); pid_ioctl($pid, "set api ssh"); pid_bind($pid, "", $port); pid_listen($pid); // 0 번 TCP 열기 // SSH 사용 // 바인딩 // TCP 수동접속대기 while(1) { $state = pid_ioctl($pid, "get state"); if($state == SSH_AUTH) { $username = pid_ioctl($pid, "get ssh username"); $password = pid_ioctl($pid, "get ssh password"); echo "$username / $password\r\n"; pid_ioctl($pid, "set ssh auth accept"); } if($state == SSH_CONNECTED) { pid_send($pid, "Welcome to PHPoC SSH server\r\n"); echo "Connection has been established!\r\n"; pid_close($pid); break; } } 위예제에서 PHPoC 는 22 번포트로접속을대기하다가 SSH 클라이언트가접속하면 사용자이름과암호를출력하여인증을허용합니다. 그리고는환영메시지를송신하고 접속을종료합니다. SSH 의사용자아이디및암호확인과정은 PHPoC 스크립트에서처리해야합니다

27 5.3.5 웹소켓서버사용 PHPoC를 "set api ws" 명령을이용해웹소켓서버로동작시킬수있습니다. 다음은웹소켓서버설정예입니다. 웹소켓서버설정예이예제는웹소켓이접속되고클라이언트로부터데이터를수신하면수신한데이터를출력한뒤응답횟수를송신합니다. $pid = pid_open("/mmap/tcp0"); // 0번 TCP 열기 pid_ioctl($pid, "set api ws"); // 웹소켓설정 pid_ioctl($pid, "set ws path test"); // URI 경로 : /test pid_ioctl($pid, "set ws mode 0"); // 전송모드 : 텍스트 pid_ioctl($pid, "set ws origin "); // 접근허용호스트 : pid_ioctl($pid, "set ws proto myproto"); // 프로토콜 : myproto pid_bind($pid, "", 0); // 바인딩 : 기본포트 (80) $rwbuf = ""; $count = 1; while(1) { if(pid_ioctl($pid, "get state") == TCP_CLOSED) pid_listen($pid); // TCP 접속대기 $rlen = pid_ioctl($pid, "get rxlen"); if($rlen) { pid_recv($pid, $rwbuf); echo "$rwbuf\r\n"; pid_send($pid, "echo reply $count"); $count++; } } pid_close($pid); // 데이터송신 웹소켓서버와제품기본웹서버기능 (index.php) 을활용하면보다더효율적인웹인터페이스를구현할수있습니다. 웹소켓을사용하기위해서는반드시웹소켓을지원하는웹브라우저를사용하시기바랍니다

28 5.4 TCP 접속 TCP 클라이언트 ( 능동접속 ) 능동접속은접속을대기하고있는 TCP서버로접속을시도하는것을의미하며능동접속호스트를 TCP클라이언트라고합니다. 능동접속을위해서는 pid_connect함수를사용해야합니다. pid_connect($pid, $addr, $port); 여기서 $addr 은접속할 TCP 서버의 IP 주소를, $port 는 TCP 포트번호를의미합니다. TCP 클라이언트사용예 $pid = pid_open("/mmap/tcp0"); $addr = " "; $port = 1470; pid_connect($pid, $addr, $port); sleep(25); pid_close($pid); // 0번 TCP 열기 // 서버 IP주소 // TCP포트 // TCP능동접속시도 TCP 서버 ( 수동접속 ) 수동접속은 TCP클라이언트의접속을대기하고있는것을의미하며수동접속호스트를 TCP서버라고합니다. 수동접속을위해서는 pid_bind함수와 pid_listen함수를사용해야합니다. pid_bind($pid, "", $port); pid_listen($pid[, $backlog]); 여기서 $port 는접속을대기할 TCP 포트번호를의미합니다. TCP 서버사용예 $pid = pid_open("/mmap/tcp0"); $port = 1470; pid_bind($pid, "", $port); pid_listen($pid); sleep(25); pid_close($pid); // 0번 TCP 열기 // TCP포트 // 바인딩 // TCP수동접속대기

29 5.5 TCP 상태정보확인 pid_ioctl 함수의 get 명령어로 TCP 의각종상태를확인할수있습니다. $return = pid_ioctl($pid, "get ITEM"); 확인가능한 TCP 상태정보 ITEM 설명 반환값 반환형식 state TCP 세션상태 - 접속끊김 TCP_CLOSED 정수 TCP 세션상태 - 접속완료 TCP_CONNECTED 정수 TCP 세션상태 - 접속대기 TCP_LISTEN 정수 SSL 세션상태 - 접속끊김 SSL_CLOSED 정수 SSL 세션상태 - 접속완료 SSL_CONNECTED 정수 SSL 세션상태 - 접속대기 SSL_LISTEN 정수 SSH 세션상태 - 접속끊김 SSH_CLOSED 정수 SSH 세션상태 - 접속완료 SSH_CONNECTED 정수 SSH 세션상태 - 접속대기 SSH_LISTEN 정수 SSH 세션상태 - 인증완료 SSH_AUTH 정수 srcaddr 장치의로컬 IP주소 예 ) 문자열 srcport 장치의로컬 TCP 포트번호 예 ) 1470 정수 dstaddr TCP통신상대방의 IP주소 예 ) 문자열 dstport TCP통신상대방의포트번호 예 ) 1470 정수 txbuf 송신버퍼크기 [Byte] 예 ) 1152 정수 txfree 송신버퍼여유공간 [Byte] 예 ) 1152 정수 rxbuf 수신버퍼크기 [Byte] 예 ) 1068 정수 rxlen 수신데이터량 [Byte] 예 ) 200 정수 ssh username SSH 아이디 예 ) user 문자열 ssh password SSH 비밀번호 예 ) password 문자열 표 5-2 확인가능한 TCP 상태정보

30 5.5.2 TCP 세션상태 TCP는접속과정이후에데이터통신을하므로 TCP세션의상태를확인하는것은매우중요합니다. 상태값은접속이되지않았거나이미끊긴상태를나타내는 TCP_CLOSED, 접속이완료된상태인 TCP_CONNECTED, TCP서버로서접속을대기하고있는상태인 TCP_LISTEN의세가지입니다. SSL과 SSH도마찬가지로접속안됨, 접속완료및접속대기의세가지상태가있으며 SSH는인증 (SSH_AUTH) 상태가하나더있습니다. 모든세션의상태는다음과같이확인할수있습니다. $state = pid_ioctl($pid, "get state"); TCP, SSL 또는 SSH접속을시도하는중이거나종료하는중일때세션의상태정보를확인하는경우위표에나온값들이외의값들이반환될수있습니다. 이값들은펌웨어내부적으로만사용되는상수이며향후변경의소지가있으므로사용자는프로그래밍에사용하지마십시오 송신버퍼에남아있는데이터크기 TCP 송신버퍼에남아있는데이터크기는다음과같이계산할수있습니다. 송신버퍼에남아있는데이터크기 = 송신버퍼크기 - 송신버퍼여유공간 사용예 이예제는 TCP 접속후 8 바이트를전송하고 TCP 송신버퍼에남아있는데이터크기를 계산하여출력합니다. $tx_len = -1; $pid = pid_open("/mmap/tcp0"); do { // 0 번 TCP 열기 pid_connect($pid, " ", 1470); // TCP 능동접속 usleep(500000); } while(pid_ioctl($pid, "get state")!= TCP_CONNECTED); pid_send($pid, " "); // 8 바이트전송 while($tx_len && (pid_ioctl($pid, "get state") == TCP_CONNECTED)) { } $txbuf = pid_ioctl($pid, "get txbuf"); // 송신버퍼크기확인 $txfree = pid_ioctl($pid, "get txfree"); // 송신버퍼여유공간확인 $tx_len = $txbuf - $txfree; echo "tx len = $tx_len\r\n"; usleep(10000); pid_close($pid); // 송신버퍼에남아있는데이터크기확인 // 송신버퍼에남아있는데이터크기출력 // TCP 종료

31 5.5.4 수신데이터크기 TCP 에서수신한데이터크기는다음과같이확인할수있습니다. $rxlen = pid_ioctl($pid, "get rxlen[ $string]"); 특정문자 ( 열 ) 까지수신한데이터크기확인하기 rxlen명령어뒤에특정문자열 ($string) 을입력하면 pid_ioctl함수는해당문자열이들어오기전까지는 0을반환하다가해당문자열이들어오면그문자열까지의수신데이터크기를반환합니다 수신버퍼여유공간 TCP 수신버퍼여유공간은다음과같이계산할수있습니다. 수신버퍼여유공간 = 수신버퍼크기 - 수신데이터크기 사용예 이예제는 TCP 접속후수신버퍼의여유공간을계산하여출력합니다. $rx_free = 1068; $pid = pid_open("/mmap/tcp0"); do { // 0 번 TCP 열기 pid_connect($pid, " ", 1470); // TCP 능동접속 usleep(500000); } while(pid_ioctl($pid, "get state")!= TCP_CONNECTED); while(($rx_free > 500) && (pid_ioctl($pid, "get state") == TCP_CONNECTED)) { } $rxbuf = pid_ioctl($pid, "get rxbuf"); $rxlen = pid_ioctl($pid, "get rxlen"); $rx_free = $rxbuf - $rxlen; echo "rx free = $rx_free\r\n"; sleep(1); pid_close($pid); // 수신버퍼크기확인 // 수신데이터크기확인 // 수신버퍼여유공간확인 // 수신버퍼여유공간출력 // TCP 종료

32 5.6 TCP 데이터통신 TCP 데이터수신 네트워크로부터들어온 TCP 데이터는수신버퍼에저장됩니다. 이수신버퍼에저장된 값을 pid_recv 함수로읽습니다. pid_recv 함수는다음과같이사용합니다. 그림 5-2 TCP 데이터수신 pid_recv($pid, $value[, $len]); 사용예 이예제는매초마다 TCP 로수신되는데이터를확인하고출력합니다. $rdata = ""; $pid = pid_open("/mmap/tcp0"); pid_connect($pid, " ", 1470); do { sleep(1); $state = pid_ioctl($pid, "get state"); $rxlen = pid_ioctl($pid, "get rxlen"); // 0 번 TCP 열기 // TCP 접속 // TCP 세션상태확인 // 수신데이터크기확인 $rlen = pid_recv($pid, $rdata, $rxlen); // 데이터읽기 echo "rlen = $rlen / "; echo "rdata = $rdata\r\n"; if($rlen) $rdata = ""; } while($state == TCP_CONNECTED); pid_close($pid); // 읽은데이터크기출력 // 읽은데이터출력 // 수신버퍼초기화

33 5.6.2 TCP 데이터송신 pid_send 함수를이용해송신한데이터는송신버퍼에저장되었다가네트워크로 전송됩니다. pid_send 함수는다음과같이사용합니다. 그림 5-3 TCP 데이터송신 pid_send($pid, $value[, $len]); 사용예 이예제는송신버퍼의여유공간을확인하여 TCP 로데이터를송신합니다. $sdata = " "; $pid = pid_open("/mmap/tcp0"); pid_connect($pid, " ", 1470); do { sleep(1); $state = pid_ioctl($pid, "get state"); $txfree = pid_ioctl($pid, "get txfree"); // 0 번 TCP 열기 // TCP 접속 // TCP 세션상태확인 // 버퍼여유공간확인 $tx_len = pid_send($pid, $sdata, $txfree); // 데이터송신 echo "tx len = $tx_len\r\n"; } while($state == TCP_CONNECTED); pid_close($pid); // 송신한데이터크기출력 위코드에서 pid_send 함수의세번째인수는송신할데이터의크기를의미합니다. 송신 데이터크기가송신버퍼의여유공간보다크면데이터가유실될수있습니다. 따라서항상 버퍼여유공간을확인한후그값또는그이하로쓰기데이터크기를설정하는것을 권장합니다

34 UDP UDP 는 TCP 와달리접속과정이없어데이터의신뢰성이보장되지않지만, 프로토콜 헤더가단순하고속도가빠르다는특징이있습니다. 6.1 사용절차 일반적인 UDP 사용절차는다음과같습니다. 그림 6-1 UDP 사용절차 UDP 데이터를송신만하거나 UDP 설정을하지않는경우에는바인딩과정을생략할 수있습니다. 6.2 UDP 열기 UDP 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/udp0"); // 0 번 UDP 열기 제품별 UDP 에관한자세한내용은부록을참조하시기바랍니다

35 6.3 UDP 바인딩 UDP데이터를수신하거나 pid_ioctl함수로수신 IP주소또는포트번호를설정하기위해서는 pid_bind함수를사용하는바인딩과정이필요합니다. $pid = pid_bind($pid, $addr, $port); $addr은바인딩할 IP주소이고 $port는바인딩할 UDP포트번호입니다. 바인딩할 IP주소에빈문자열 ("") 을설정하면현재 PHPoC에설정된 IP주소로자동설정됩니다. 바인딩할 IP 주소는빈문자열 ("") 이외의값을설정할수없습니다. UDP 바인딩예 $pid = pid_open("/mmap/udp0"); $port = 1470; pid_bind($pid, "", $port); // 0 번 UDP 열기 // UDP 포트번호 // 바인딩 6.4 UDP 설정 UDP를사용하기전에수신 IP주소와 UDP포트번호를미리설정할수있습니다. 이설정을해놓으면 pid_sendto함수로데이터를송신할때 4번째와 5번째인자를생략할수있습니다. 설정을위해서는 pid_ioctl함수의 set명령을사용합니다. pid_ioctl($pid, "set ITEM VALUE"); ITEM 은설정항목을, VALUE 는항목에대한값을나타냅니다 설정가능한 UDP 항목 ITEM VALUE 설명 dstaddr 예 ) UDP통신상대방의 IP주소 dstport 예 ) 1470 UDP통신상대방의포트번호 표 6-1 설정가능한 UDP 항목 UDP 설정예 $pid = pid_open("/mmap/udp0"); pid_bind($pid, "", 1470); pid_ioctl($pid, "set dstaddr "); pid_ioctl($pid, "set dstport 1470"); // 0번 UDP 열기 // 바인딩 // 통신상대방 IP주소설정 // 통신상대방포트번호설정

36 6.5 UDP 상태정보확인 pid_ioctl 함수의 get 명령어로 UDP 의각종상태를확인할수있습니다. $return = pid_ioctl($pid, "get ITEM"); 확인가능한 UDP 상태정보 ITEM 설명 반환값 반환형식 srcaddr UDP통신 - 송신 IP주소 예 ) 문자열 srcport UDP통신 - 송신포트번호 예 ) 1470 정수 dstaddr UDP통신 - 수신 IP주소 예 ) 문자열 dstport UDP통신 - 수신포트번호 예 ) 1470 정수 rxlen 수신데이터량 [Byte] 예 ) 200 정수 표 6-2 확인가능한 UDP 상태정보 수신데이터크기확인 UDP 수신데이터크기는 pid_ioctl 함수의 "get rxlen" 로확인할수있습니다. $rxlen = pid_ioctl($pid, "get rxlen"); 사용예 이예제는 PHPoC 장치가 UDP 수신데이터크기를반복적으로확인하다가수신데이터가 있으면데이터크기를콘솔로출력하고스크립트를종료합니다. $rbuf = ""; $pid = pid_open("/mmap/udp0"); pid_bind($pid, "", 1470); do { $rxlen = pid_ioctl($pid, "get rxlen"); if($rxlen) { // 0 번 UDP 열기 // 바인딩 // 수신데이터크기확인 pid_recvfrom($pid, $rbuf, $rxlen); // 데이터수신 echo "$rxlen bytes\r\n"; } usleep(100000); }while($rxlen == 0); pid_close($pid); // 수신데이터크기출력 // 수신데이터가없는동안반복

37 6.6 UDP 데이터통신 데이터수신 UDP 데이터를수신하기위해서는 pid_recvfrom 함수를사용합니다. UDP 수신버퍼는 2 개 이며, 다음과같이동작합니다. 제품별 UDP 수신버퍼의크기는부록을참조하시기바랍니다. 네트워크로부터데이터수신 수신버퍼에저장된데이터읽기 그림 6-2 네트워크로부터데이터수신 pid_recvfrom 함수를호출하면수신버퍼에저장된데이터를읽고, 버퍼를비웁니다. 그림 6-3 수신버퍼에저장된데이터읽기 수신버퍼에저장된데이터의크기보다작은길이만큼읽은경우 수신버퍼에읽고남은데이터는버퍼를비움과동시에유실됩니다. 그림 6-4 수신버퍼에읽고남은데이터가있을경우

38 두개의수신버퍼에모두데이터가있는경우두개의수신버퍼에모두데이터가있는경우수신버퍼가비워지기전까지는다음에들어오는데이터가모두유실됩니다. 따라서항상수신버퍼를확인하여데이터가있으면바로데이터를읽도록프로그래밍하는것을권장합니다. 그림 6-5 두개의수신버퍼에모두데이터가있는경우 사용예이예제는 UDP 수신데이터크기를계속확인하여수신데이터가있으면데이터를출력합니다. $rbuf = ""; $pid = pid_open("/mmap/udp0"); pid_bind($pid, "", 1470); do { }while(1) $rxlen = pid_ioctl($pid, "get rxlen"); if($rxlen) { pid_recvfrom($pid, $rbuf, $rxlen); echo "$rbuf\r\n"; } usleep(100000); // 0번 UDP 열기 // 바인딩 // 수신데이터크기확인 // 데이터수신 // 수신데이터출력 // 무한루프 데이터송신 UDP 데이터를송신하기위해서는 pid_sendto 함수를사용합니다. UDP 데이터송신예 $sdata = " "; $pid = pid_open("/mmap/udp0"); // 0번 UDP 열기 $slen = pid_sendto($pid, $sdata, 8, 0, " ", 1470); // 데이터송신 echo "slen = $slen\r\n"; // 송신한데이터크기출력 pid_close($pid);

39 ST PHPoC 는소프트웨어타이머디바이스 ST 를제공합니다. 7.1 사용절차 일반적인 ST 사용절차는다음과같습니다. 그림 7-1 ST 사용절차 7.2 ST 열기 ST 를열기위해서는 pid_open 함수를사용합니다. $pid = pid_open("/mmap/st0"); // 0 번 ST 열기 제품별제공되는 ST 에대한정보는부록을참조하시기바랍니다. 7.3 ST 설정및사용 ST 를설정하거나사용하기위해서는 pid_ioctl 함수를사용해야합니다. ST 는사용형태에 따라다음 4 가지동작모드를제공합니다. 모드프리모드펄스출력모드토글출력모드 PWM출력모드 설명일반적인카운터모드특정핀으로펄스신호를출력하기위한모드특정핀으로토글신호를출력하기위한모드무한펄스출력모드표 7-1 ST 동작모드

40 7.3.1 공통명령어 다음명령어들은모드와상관없이공통적으로사용됩니다. 명령어 하위명령어 설명 free 모드설정 : 프리모드 mode pulse 모드설정 : 펄스출력모드 output toggle 모드설정 : 토글출력모드 set pwm 모드설정 : PWM출력모드 sec 단위설정 : 초 div ms 단위설정 : 밀리초 us 단위설정 : 마이크로초 reset - 초기화 get state 상태읽기 start - 시작 stop - 정지표 7-2 공통명령어 모드설정 ST는일반적인카운터모드인프리모드와신호를출력하는출력모드를지원합니다. 출력모드에는 토글출력모드, 펄스출력모드 및 PWM출력모드가 있습니다. PWM출력모드는출력횟수가무한대인펄스출력모드입니다. 모드설정초기값은프리모드이며, 각각의모드설정방법은다음과같습니다. 구분프리모드펄스출력모드토글출력모드 PWM출력모드 문법 pid_ioctl($pid, "set mode free"); pid_ioctl($pid, "set mode output pulse"); pid_ioctl($pid, "set mode output toggle"); pid_ioctl($pid, "set mode output pwm"); 표 7-3 모드설정 단위설정 ST 의단위는다음세가지로설정할수있습니다. 초기값은밀리초입니다. 구분초밀리초마이크로초 문법 pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set div ms"); pid_ioctl($pid, "set div us""); 표 7-4 단위설정

41 초기화 "reset" 명령어는 ST 의동작을그즉시중단하고초기화합니다. 구분 초기화 문법 pid_ioctl($pid, "reset"); 표 7-5 초기화 상태읽기 "get state" 명령어는 ST 의상태를읽는명령어입니다. 구분 상태읽기 문법 pid_ioctl($pid, "get state"); 표 7-6 상태읽기 이명령어에의한반환값은다음과같습니다. 반환값 상태 0 정지 1 ~ 5 동작중 표 7-7 상태읽기반환값 시작 ST 를시작시키기위해서는 "start" 명령을사용합니다. 구분 시작 문법 pid_ioctl($pid, "start"); 표 7-8 시작 정지 ST 를정지시키기위해서는 "stop" 명령을사용합니다. 출력모드에서 ST 를정지시키면 출력핀의상태는정지시점의상태를유지합니다. 구분 정지 문법 pid_ioctl($pid, "stop"); 표 7-9 정지

42 7.3.2 프리모드 프리모드는 ST 를일반적인카운터로동작시키는모드입니다. 그림 7-2 프리모드블록도 프리모드에서사용가능한 pid_ioctl함수의명령어는다음과같습니다. 명령어 하위명령어 설명 mode free 모드설정 : 프리모드 sec 단위설정 : 초 div ms 단위설정 : 밀리초 set us 단위설정 : 마이크로초 dir up 업카운터로설정 down 다운카운터로설정 count [T] 다운카운터초기값을 [T] 로설정 reset - 초기화 get count 카운트값읽기 state 상태읽기 start - 시작 stop - 정지표 7-10 프리모드명령어 카운터종류설정 ST의카운터종류는업카운터또는다운카운터로설정할수있습니다. 초기값은 업카운터입니다. 구분 업카운터 (UP) 다운카운터 (DOWN) 문법 pid_ioctl($pid, "set dir up"); pid_ioctl($pid, "set dir down"); 표 7-11 카운터종류설정

43 카운트값설정 프리모드에서는다운카운터로설정했을때카운터의초기값을설정합니다. 카운트 설정방법은다음과같습니다. 구분 프리모드 문법 pid_ioctl($pid, "set count T"); 표 7-12 카운트설정 만약업카운터일때 T를설정하면해당값은반영되지않습니다. 즉, 업카운터일때타이머초기값은항상 0입니다. 다운카운터에서설정가능한 T의범위는다음과같습니다. 구분 T 설정범위프리모드 0 ~ (2의 64제곱 - 1) 표 7-13 설정가능한카운트값의범위 카운트값읽기 "get count" 명령어는 ST의현재카운트값을읽는명령어입니다. 구분 프리모드 문법 pid_ioctl($pid, "get count"); 표 7-14 카운트읽기

44 7.3.3 프리모드사용예 프리모드에서의 ST값은 pid_ioctl함수의 "get count" 명령으로읽을수있으며이값은타이머가가동된시점부터값을읽는시점까지소요된시간을의미합니다. $tick = pid_ioctl($pid, "get count"); 업카운터 이예제는 ST 를업카운터로설정하고약 1 초마다 ST 값을읽어와출력합니다. $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set mode free"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set dir up"); pid_ioctl($pid, "start"); for($i=0; $i<10; $i++) { // 0 번 ST 열기 // 프리모드설정 // 단위설정 : 초 // 업카운터설정 // ST 시작 $value = pid_ioctl($pid, "get count"); // 카운트값읽기 echo "$value\r\n"; sleep(1); } pid_close($pid); 다운카운터 // 카운트값출력 이예제는 ST 를다운카운터로설정하고초기값을 10 초로하여약 1 초마다 ST 값을 읽어와출력합니다. $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set mode free"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set dir down"); pid_ioctl($pid, "set count 10"); pid_ioctl($pid, "start"); for($i = 0; $i < 10; $i++) { // 0 번 ST 열기 // 프리모드설정 // 단위설정 : 초 // 다운카운터설정 // 카운트값을 10 으로초기화 // ST 시작 $value = pid_ioctl($pid, "get count"); // 카운트값읽기 echo "$value\r\n"; sleep(1); } pid_close($pid); // 카운트값출력

45 7.3.4 토글출력모드 토글출력모드는지정된핀으로토글신호를출력하는모드입니다. 그림 7-3 토글출력모드블록도 토글출력모드에서사용가능한명령어는다음과같습니다. 명령어 하위명령어 설명 mode output toggle 모드설정 : 토글출력모드 sec 단위설정 : 초 div ms 단위설정 : 밀리초 us 단위설정 : 마이크로초 low LOW 출력 high HIGH 출력 output dev io3/io4 #pin 출력핀설정 : io3/io4의 #pin set 0 정상 ( 비반전 ) 출력 invert 1 반전출력 count [T1] [T8] 출력타이밍설정 delay [D] 출력지연시간설정 repc [N] 출력횟수설정 trigger from st# 트리거대상설정 : st0 ~ st7 php 트리거대상설정 : 없음 reset - 초기화 get state 상태읽기 repc 남은출력횟수읽기 start - 시작 stop - 정지표 7-15 토글출력모드명령어

46 출력설정 ST 의출력설정은다음과같은항목들이있습니다. 구분출력핀 HIGH출력 LOW출력반전출력 문법 pid_ioctl($pid, "set output dev io3 0"); // io3의 0번핀 pid_ioctl($pid, "set output high"); pid_ioctl($pid, "set output low"); pid_ioctl($pid, "set output invert 0"); // 정상출력 pid_ioctl($pid, "set output invert 1"); // 반전출력표 7-16 출력설정 모든출력명령은명령어실행과동시에출력핀에반영됩니다. 지연시간설정출력모드에서는출력전지연시간을줄수있습니다. 지연시간설정단위는 "set div" 명령에의한단위가사용됩니다. 지연시간설정방법은다음과같습니다. 구분 지연시간 문법 pid_ioctl($pid, "set delay D"); 표 7-17 지연시간설정 반복횟수설정출력모드에서는출력신호의반복횟수를설정할수있습니다. 설정가능한 N의범위는 0 ~ 1,000,000,000(10억 ) 입니다. 기본값은 0이며 0은최대반복횟수인 10억을의미합니다. 구분 반복횟수 문법 pid_ioctl($pid, "set repc N"); 표 7-18 반복횟수설정 카운트값설정카운트값설정은출력타이밍을조정하기위해사용합니다. 토글출력모드에서는카운트값을최소 1개에서최대 8개까지설정할수있습니다. 설정방법은다음과같습니다. 구분 토글출력모드 문법 pid_ioctl($pid, "set count T1 T2 T8"); 표 7-19 카운트값설정

47 토글출력모드에서가능한카운트값의범위는다음과같습니다. 단위설정가능범위 (10μs ~ 30분 ) 마이크로초 10 ~ 1,800,000,000 밀리초 1 ~ 1,800,000 초 1 ~ 1,800 표 7-20 설정가능한카운트값의범위지연시간이 D이고카운트값을하나 (T1) 만설정할때의타이밍은다음과같습니다. 그림 7-4 토글출력모드에서 T1 타이밍 (LOW -> HIGH) 그림 7-5 토글출력모드에서 T1 타이밍 (HIGH -> LOW)

48 토글출력모드에서카운트값을 2개이상설정하면이값들은출력시점마다순서대로사용됩니다. 만약반복횟수가설정한카운트값의수보다많으면다시첫번째값부터순서대로사용됩니다. 반복횟수가 4이고지연시간이 D일때 3개의값 (T1 ~ T3) 을설정하는경우의타이밍은다음과같습니다. 그림 7-6 토글출력모드에서 T1, T2 및 T3 타이밍 트리거설정트리거는 ST를출력모드로사용할때시작시점을동기화하기위해사용합니다. 이때 ST의시작시점은트리거대상과동기화되며트리거대상은또다른 ST만설정이가능합니다. ST의트리거설정방법은다음과같습니다. 구분 ST(st0/1 ) php 문법 pid_ioctl($pid, "set trigger from st0"); pid_ioctl($pid, "set trigger from php"); 표 7-21 트리거설정 ST의트리거설정기본값은 " 대상없음 (php)" 입니다. 남은출력횟수읽기 "get repc" 명령어는 ST의남은출력횟수를확인하는명령어입니다. 구분 남은출력횟수 문법 pid_ioctl($pid, "get repc"); 표 7-22 남은출력횟수읽기

49 7.3.5 토글출력모드사용예 토글출력모드는 ST 의출력신호를반전시키는모드입니다. 토글출력모드사용 $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set mode output toggle"); pid_ioctl($pid, "set output dev io3 0"); // 0 번 ST 열기 // 단위설정 : 초 // 토글출력모드설정 // 출력핀설정 : io3 의 0 번 pid_ioctl($pid, "set repc 1"); // 출력횟수설정 : 1 pid_ioctl($pid, "set count 1"); // 카운트값설정 : 1 pid_ioctl($pid, "start"); while(pid_ioctl($pid, "get state")); pid_close($pid); // ST 시작 toggle 모드에서의 "set count" 는 ST 의시작시점부터토글신호를내보내는시점까지의 시간을의미합니다. 위예제를실행했을때 ST 의출력결과는다음과같습니다. 그림 7-7 토글출력모드예

50 반복적토글출력모드 $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set mode output toggle"); pid_ioctl($pid, "set output dev io3 0"); // 0 번 ST 열기 // 단위설정 : 초 // 토글출력모드설정 // 출력핀설정 : io3 의 0 번핀 pid_ioctl($pid, "set repc 3"); // 출력횟수설정 : 3 pid_ioctl($pid, "set count 1 2 1"); // 카운트값설정 : 1, 2, 1 pid_ioctl($pid, "start"); while(pid_ioctl($pid, "get state")); pid_close($pid); // ST 시작 위예제에서는 "set repc" 명령어로토글출력횟수를 3 회로설정하고토글출력 타이밍을위해 "set count" 로 T1, T2 및 T3 를각각 1, 2 그리고 1 초로설정했습니다. 위예제를실행했을때 ST 출력결과는다음과같습니다. 그림 7-8 반복적토글출력모드

51 7.3.6 펄스출력모드 펄스출력모드는구형파 ( 펄스 ) 를출력하는모드입니다. 그림 7-9 펄스출력모드블록도 펄스출력모드에서사용가능한명령어는다음과같습니다. 명령어 하위명령어 설명 mode output pulse 모드설정 : 펄스출력모드 sec 단위설정 : 초 div ms 단위설정 : 밀리초 us 단위설정 : 마이크로초 low LOW 출력 high HIGH 출력 output dev io3/4 #pin 출력핀설정 : io3/4의 #pin set 0 정상 ( 비반전 ) 출력 invert 1 반전출력 count [T1] [T2] 출력타이밍설정 delay [D] 출력지연시간설정 repc [N] 출력횟수설정 trigger from st# 트리거대상설정 : st0 ~ st7 php 트리거대상설정 : 없음 reset - 초기화 get state 상태읽기 repc 남은출력횟수읽기 start - 시작 stop - 정지표 7-23 펄스출력모드명령어

52 출력설정 ST 의출력설정은출력모드에서사용이가능하며다음과같은항목들이있습니다. 구분출력핀 HIGH출력 LOW출력반전출력 문법 pid_ioctl($pid, "set output dev io3 0"); // io3의 0번핀 pid_ioctl($pid, "set output high"); pid_ioctl($pid, "set output low"); pid_ioctl($pid, "set output invert 1"); // 반전출력 pid_ioctl($pid, "set output invert 0"); // 정상출력표 7-24 출력설정 모든출력명령은명령어실행과동시에출력핀에반영됩니다. 지연시간설정출력모드에서는출력전지연시간을줄수있습니다. 지연시간설정단위는 "set div" 명령에의한단위가사용됩니다. 지연시간설정방법은다음과같습니다. 구분 지연시간 문법 pid_ioctl($pid, "set delay D"); 표 7-25 지연시간설정 반복횟수설정 출력모드에서는출력신호의반복횟수를설정할수있습니다. 설정가능한 N 의 범위는 0 ~ 10 억입니다. 기본값은 0 이며 0 은최대반복횟수인 10 억을의미합니다. 구분 반복횟수 문법 pid_ioctl($pid, "set repc N"); 표 7-26 반복횟수설정

53 카운트값설정 카운트값은출력타이밍을조정하기위해설정합니다. 펄스출력모드에서카운트값 설정방법은다음과같습니다. 구분 카운트설정 문법 pid_ioctl($pid, "set count T1 T2"); 표 7-27 카운트값설정 펄스출력모드에서설정가능한카운트값의범위는다음과같습니다. 단위 카운트값설정가능범위 (0 ~ 30분 ) 마이크로초 0, 10 ~ 1,800,000,000 밀리초 0 ~ 1,800,000 초 0 ~ 1,800 표 7-28 설정가능한카운트값의범위 펄스출력모드에서는 두 가지 카운트 값 (T1과 T2) 의 설정이 필요합니다. 펄스출력모드에서반복횟수가 2이고지연시간이 D일때 T1과 T2의타이밍은다음과 같습니다. 여기서 D는지연시간을의미합니다. 반복횟수읽기 그림 7-10 펄스출력모드 T1, T2 타이밍 "get repc" 명령어는 ST 의남은출력횟수를확인하는명령어입니다. 구분 남은출력횟수 문법 pid_ioctl($pid, "get repc"); 표 7-29 반복횟수읽기

54 7.3.7 펄스출력모드사용예 펄스출력모드사용 (HIGH 펄스 ) $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set mode output pulse"); pid_ioctl($pid, "set output dev io3 0"); // 0번 ST 열기 // 단위설정 : 초 // 펄스출력모드설정 // 출력핀설정 : io3의 0번 pid_ioctl($pid, "set count 1 2"); // 카운트값설정 : 1, 2 pid_ioctl($pid, "set repc 1"); // 출력횟수설정 : 1 pid_ioctl($pid, "start"); while(pid_ioctl($pid, "get state")); pid_close($pid); // ST 시작 펄스출력모드의출력은기본적으로 HIGH 펄스입니다. HIGH 상태를유지하는시간은 설정단위와 "set count" 로설정하는 T1 과 T2 에의해결정됩니다. 위예제를실행했을 때 ST 출력결과는다음과같습니다. 그림 7-11 펄스출력모드 (HIGH 펄스 )

55 펄스출력모드사용 (LOW 펄스 ) $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set div sec"); pid_ioctl($pid, "set mode output pulse"); pid_ioctl($pid, "set output dev io3 0"); // 0번 ST 열기 // 단위설정 : 초 // 펄스출력모드설정 // 출력핀설정 : io3의 0번 pid_ioctl($pid, "set count 1 2"); // 카운트값설정 : 1, 2 pid_ioctl($pid, "set output invert 1"); // 출력반전 pid_ioctl($pid, "set repc 1"); // 출력횟수설정 : 1 pid_ioctl($pid, "start"); while(pid_ioctl($pid, "get state")); pid_close($pid); // ST 시작 "set output invert 1" 명령을수행하면이후의출력이반전됩니다. 펄스출력도반전이 되므로위예제를실행했을때 ST 의출력결과는다음과같습니다. 그림 7-12 펄스출력모드 (LOW 펄스 )

56 7.3.8 PWM 출력모드 PWM 출력모드는반복횟수가무한한펄스출력모드입니다. 따라서반복횟수와카운트 설정을제외하고모든사용방법은펄스출력모드와동일합니다. 그림 7-13 PWM출력모드블록도 PWM출력모드에서사용가능한명령어는다음과같습니다. 명령어하위명령어설명 mode output pwm 모드설정 : PWM출력모드 sec 단위설정 : 초 div ms 단위설정 : 밀리초 us 단위설정 : 마이크로초 low LOW 출력 high HIGH 출력 set output dev io3/4 #pin 출력핀설정 : io3/4의 #pin 0 정상 ( 비반전 ) 출력 invert 1 반전출력 count [T1] [T2] 출력타이밍설정 delay [D] 출력지연시간설정 trigger from reset - 초기화 get state 상태읽기 start - 시작 stop - 정지표 7-30 PWM출력모드명령어 st# 트리거대상설정 : st0 ~ st7 php 트리거대상설정 : 없음

57 카운트값설정 카운트값은출력타이밍을조정하기위해설정합니다. PWM 출력모드에서는두개의 카운트값설정이필요합니다. 카운트값설정방법은다음과같습니다. 구분 카운트값설정 문법 pid_ioctl($pid, "set count T1 T2"); 표 7-31 카운트값설정 PWM출력모드에서설정가능한카운트값의범위는다음과같습니다. 단위설정가능한카운트값 (0 ~ 30분 ) 마이크로초 0, 10 ~ 1,800,000,000 밀리초 0 ~ 1,800,000 초 0 ~ 1,800 표 7-32 설정가능한카운트값의범위 PWM출력모드에서지연시간이 D일때 T1과 T2의타이밍은다음과같습니다. 여기서 D는지연시간을의미합니다. 그림 7-14 PWM 출력모드

58 7.3.9 PWM 출력모드사용예 PWM 출력모드사용예 $pid = pid_open("/mmap/st0"); pid_ioctl($pid, "set div sec"); // 0 번 ST 열기 // 단위설정 : 초 pid_ioctl($pid, "set mode output pwm"); // PWM출력모드설정 pid_ioctl($pid, "set output dev io3 0"); // 출력핀설정 : io3의 0번 pid_ioctl($pid, "set count 1 1"); // 카운트값설정 : 1, 1 pid_ioctl($pid, "start"); // ST 시작 sleep(10); pid_ioctl($pid, "stop"); // ST 정지 pid_close($pid); 위예제를실행했을때 ST의출력결과는다음과같습니다. 그림 7-15 PWM 출력모드예

59 트리거 트리거명령은 ST의출력시점을또다른 ST와동기화시키고자할때사용합니다. 아래 예제는 ST1의출력시점을 ST0와동기화시키는예입니다. 트리거사용예 $pid0 = pid_open("/mmap/st0"); // 0번 ST 열기 pid_ioctl($pid0, "set div sec"); // 단위설정 : 초 pid_ioctl($pid0, "set mode output pulse"); // 펄스출력모드설정 pid_ioctl($pid0, "set count 1 1"); // 카운트값설정 : 1, 1 pid_ioctl($pid0, "set repc 2"); // 출력횟수설정 : 2 pid_ioctl($pid0, "set output dev io3 0"); // 출력핀설정 : io3의 0번 $pid1 = pid_open("/mmap/st1"); // 1번 ST 열기 pid_ioctl($pid1, "set div sec"); // 단위설정 : 초 pid_ioctl($pid1, "set mode output pulse"); // 펄스출력모드설정 pid_ioctl($pid1, "set trigger from st0"); // 트리거대상 ST 지정 : st0 pid_ioctl($pid1, "set count 1 1"); // 카운트값설정 : 1, 1 pid_ioctl($pid1, "set repc 2"); // 출력횟수설정 : 2 pid_ioctl($pid1, "set output dev io3 1"); // 출력핀설정 : io3의 1번 pid_ioctl($pid1, "start"); pid_ioctl($pid0, "start"); // 1 번 ST 시작 // 0 번 ST 시작 while(pid_ioctl($pid1, "get state")); pid_close($pid0); pid_close($pid1); 위예제에서보는바와같이, 출력을동기화시킬 ST 는트리거의대상이되는 ST 보다 반드시먼저가동되어야합니다. ST 의트리거오차 ST 는트리거오차가존재합니다. ST 의트리거오차범위는다음과같습니다. 구분 오차범위 2 개의타이머사용시약 1 μs 8 개의타이머사용시약 4 μs 표 7-33 트리거오차

60 부록 : 디바이스관련함수 PHPoC 는다음과같은디바이스사용관련내부함수를제공합니다. 함수이름 pid_bind pid_close pid_connect pid_ioctl pid_listen pid_open pid_read pid_recv pid_recvfrom pid_send pid_sendto pid_write 사용법 pid_bind(pid[, IP, PORT]); pid_close(pid); pid_connect(pid, IP, PORT); pid_ioctl(pid, COMMAND); pid_listen(pid, [BACKLOG]); pid_open(pid[, FLAG]); pid_read(pid, BUF[, LEN]); pid_recv(pid, BUF[, LEN, FLAG]); pid_recvfrom(pid, BUF[, LEN, FLAG, IP, PORT]); pid_send(pid, BUF[, LEN, FLAG]); pid_sendto(pid, BUF[, LEN, FLAG, IP, PORT]); pid_write(pid, BUF[, LEN]); 표 8-1 PHPoC 의디바이스관련내부함수 각함수에대한자세한내용은 PHPoC Internal Functions 문서를참조하시기 바랍니다

61 부록 : 디바이스정보 9.1 제품별디바이스개수 구분 PBH-101 PBH-104 PBH-204 UART NET TCP UDP Digital Input I/O Digital Output Digital Output(LED) ST 표 9-1 제품별디바이스수 9.2 제품별디바이스파일경로 UART 구분 PBH-101, PBH-204 PBH NET 파일경로 /mmap/uart0 /mmap/uart0 /mmap/uart1 /mmap/uart2 /mmap/uart3 표 9-2 UART 구분파일경로비고 PBH-101, PBH-104, PBH TCP /mmap/net0 /mmap/net1 표 9-3 NET 유선랜 무선랜 구분 PBH-101, PBH-104, PBH-204 파일경로 /mmap/tcp0 /mmap/tcp1 /mmap/tcp2 /mmap/tcp3 /mmap/tcp4 표 9-4 TCP

62 9.2.4 UDP 구분 파일경로 /mmap/udp0 PBH-101, PBH-104, PBH-204 /mmap/udp1 /mmap/udp2 /mmap/udp3 /mmap/udp4 표 9-5 UDP I/O PBH-101 구분 파일경로및맵핑정보 /mmap/io3 LED PBH-101 /mmap/io4 UART Mode ( 시리얼 통신방식 ) 통신방식별설정예 구분 값 SET RS485 SET 422 RE SET RS422 RS232 0x RS422 0x RS485 0x0c SET RS232 표 9-6 PBH-101 디지털 I/O

63 PBH-104 구분 파일경로및맵핑정보 /mmap/io3 LED /mmap/io4 PBH-104 UART Mode ( 시리얼 통신방식 ) 통신방식별설정예 구분 값 SET SET SET SET RS RE RS422 RS232 RS232 0x RS422 0x RS485 0x0c 포트별설정예 구분 일괄설정 UART0 UART1 UART2 UART3 RS232 0x5555 0x0005 0x0050 0x0500 0x5000 RS422 0x2222 0x0002 0x0020 0x0200 0x2000 RS485 0xCCCC 0x000C 0x00C0 0x0C00 0xC000 표 9-7 PBH-104 디지털 I/O

64 PBH-204 구분 파일경로및맵핑정보 /mmap/io3 LED /mmap/io4 Digital Input (photocoupler) /mmap/io4 PBH-204 Digital Output (Relay) OE: 출력릴레이를 Enable / Disable 하기위한비트 - Enable: LOW(0), Disable: HIGH(1) /mmap/io4 UART Mode 통신방식별설정예 구분 값 SET SET SET SET RS RE RS422 RS232 RS232 0x RS422 0x RS485 0x0c 표 9-8 PBH-204 디지털 I/O

65 9.2.6 ST 구분 PBH-101, PBH-104, PBH-204 파일경로 /mmap/st0 /mmap/st1 /mmap/st2 /mmap/st3 /mmap/st4 /mmap/st5 /mmap/st6 /mmap/st7 표 9-9 ST ENV 및사용자메모리 구분파일경로크기 ( 바이트 ) PBH-101, PBH-104, PBH-204 System ENV /mmap/envs 1536 User ENV /mmap/envu 1536 /mmap/um0 64 User Memory /mmap/um1 64 /mmap/um2 64 /mmap/um3 64 표 9-10 ENV 및사용자메모리

66 부록 : 펌웨어사양및제한사항 10.1 펌웨어별적용제품 펌웨어 P20 적용제품 PBH-101, PBH-104, PBH-204 표 10-1 펌웨어별적용제품 10.2 펌웨어사양 항목 사양 (p20) 설명 ENVS 1,536 시스템 ENV 크기, byte ENVU 1,536 사용자 ENV 크기, byte WLAN 1 무선랜 EMAC 1 이더넷 UART 4 UART 개수 FLOAT 지원 부동소수점수 SSL 지원 SSL보안통신 PHP_MAX_NAME_SPACE 16 네임스페이스수 PHP_NAME_LEN 32 사용자식별자길이, byte PHP_MAX_USER_DEF_NAME 480 사용자식별자개수 PHP_LLSTR_BLK_SIZE 64 문자열블록크기, byte PHP_MAX_LLSTR_BLK 192 문자열블록개수 string buffer size 12K 문자열버퍼크기, byte PHP_MAX_STRING_LEN 1,536 문자열변수최대길이, byte PHP_INT_MAX 약 9.2*10 18 정수값의최대크기 EZFS_MAX_NAME_LEN 64 EZFS파일이름길이, byte TASK 2 태스크 (Task) TCP 5 TCP세션개수 UDP 5 UDP세션개수 TCP_RXBUF_SIZE 1,068 TCP 수신버퍼크기, byte TCP_TXBUF_SIZE 1,152 TCP 송신버퍼크기, byte PDB_TXBUF_SIZE 2,048 디버거송신버퍼크기, byte HTTP_TXBUF_SIZE 1,536 HTTP 송신버퍼크기, byte UART_RXBUF_SIZE 1,024 UART 수신버퍼크기, byte UDP_RXBUF_SIZE 512 UDP 수신버퍼크기, byte ST 8 소프트웨어타이머 표 10-2 펌웨어사양

67 10.3 제한사항 구분 제한사항 네임스페이스레벨 PHP_MAX_NAME_SPACE - 1 함수호출레벨 PHP_MAX_NAME_SPACE - 2 사용자식별자길이 PHP_NAME_LEN - 1 문자열변수최대길이 PHP_MAX_STRING_LEN - 2 배열오프셋최대크기 string length - 2 파일이름길이 EZFS_MAX_NAME_LEN - 1 system함수인수길이 PHP_LLSTR_BLK_SIZE - 1 pid_ioctl함수인수길이 PHP_LLSTR_BLK_SIZE - 1 sendto함수주소길이 PHP_LLSTR_BLK_SIZE - 1 str_replace함수 $needle & replace 길이 PHP_LLSTR_BLK_SIZE - 1 inet_pton함수주소길이 PHP_LLSTR_BLK_SIZE - 1 inet_ntop함수주소길이 PHP_LLSTR_BLK_SIZE - 1 explode함수구분자길이 PHP_LLSTR_BLK_SIZE - 1 최대 UDP 수신가능크기 UDP 수신버퍼크기 - 2 표 10-3 제한사항

68 부록 : pid_ioctl 명령어인덱스 디바이스명령어인자 / 값페이지 NET ST TCP UART get mode get speed get hwaddr get ipaddr get netmask get gwaddr get nsaddr get count get repc get state set div us/ms/sec set mode free set mode output toggle set mode output pulse set mode output pwm set count (int) set count (int1) [(int2) (int8)] set count (int1) (int2) set dir up/down set repc (int) set delay (int) set output low/high set output invert [0/1] set output dev io3/4 (int) set trigger from php/st0/st1 /st reset start stop get state get rxlen get rxbuf get txfree get txbuf get dstport get srcport get dstaddr get srcaddr get ssh username get ssh password set nodelay 0/ set api telnet/ssl/ssh/ws set ssl method ssl3_client/ssl3_server/tls1_client/tls1/server set ssh auth accept/reject set ws path/mode/proto/origin get rxlen get txfree get rxbuf get txbuf get flowctrl

69 UDP IO3/4 get baud get parity get data get stop set baud (int) set parity 0/1/2/3/ set data 7/ set stop 1/ set flowctrl 0/1/2/ get rxlen get dstport get srcport get dstaddr get srcaddr set dstaddr (string) set dstport (int) get n mode get n input/output set n mode in/out/led_xx [low/high] set n output low/high/toggle set n lock/unlock 표 11-1 pid_ioctl 명령어인덱스

70 문서변경이력 날짜 버전 변경내용 작성자 최초작성 이인 문서제목수정 : for P20 추가 이인 TCP API 추가 : TELNET, SSH, 웹소켓 ST 출력모드관련내용추가 부록개선 일부오류수정및표현개선 일부오류수정및표현개선 이인

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

P4S-341 User Manual > 주요특징 주요특징 자체개발한 PHPoC 인터프리터탑재 USB 를이용한간편한개발환경제공 10/100Mbit 이더넷지원 22 개의디지털 I/O 포트및 6 개의아날로그입력포트제공 2 개의 UART 포트를제공 4 개의하드웨어타이머를제공

P4S-341 User Manual > 주요특징 주요특징 자체개발한 PHPoC 인터프리터탑재 USB 를이용한간편한개발환경제공 10/100Mbit 이더넷지원 22 개의디지털 I/O 포트및 6 개의아날로그입력포트제공 2 개의 UART 포트를제공 4 개의하드웨어타이머를제공 P4S-341 User Manual > 제품소개 제품소개 P4S-341 은산업용프로그래밍보드입니다. P4S-341 을이용하면각종센서나모터등을이용해다양한네트워크시스템을구축할수있습니다. P4S-341 에프로그래밍을하기위해서는자체개발한프로그래밍언어인 PHPoC(PHP on Chip) 를사용해야합니다. PHPoC 는범용스크립트언어인 PHP 와호환되며사용법이매우간단하여누구나쉽게사용할수있습니다.

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

ADP-2480

ADP-2480 Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter

More information

개요

개요 Application Note (003) 시리얼인터페이스 (RS232/RS422/RS485) Version 1.0 솔내시스템주식회사 1. 개요 는 RS232, RS422, RS485등 3개의시리얼인터페이스를지원합니다. 사용자는 의설정용유틸리티인 ezconfig를이용해서 3개의인터페이스중에서하나를선택하여설정할수있습니다. 1.1. RS232 Ground를기준으로한전압을이용해서통신하는형태입니다.

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예 Mitsubishi FX Series Computer Link 2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK... 1 1. 시스템구성... 3 2. 시스템설정... 4 3. 사용예... 6 3.1. 사용예 1... 6 3.2. 사용예 2... 9 4. 케이블연결도... 13 4.1.

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013 1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE

More information

운영체제실습_명령어

운영체제실습_명령어 운영체제실습 리눅스네트워크기본개념및설정 서 기옥 Contents 네트워크용어정의 IP 주소 네트워크기본명령어 네트워크관리명령어 네트워크설정파일 telnet 서버설정 네트워크용어정의 네트워크 (Network) : 전자적으로데이터를주고받기위한목적으로연결된 2 개이상의컴퓨터시스템 IP 주소와 Ethernet 주소 IP 주소 : 네트워크에연결된시스템을구분하는소프트웨어적인주소

More information

PHPoC vs PHP > 개요 개요 PHPoC 는솔내시스템 이자체개발한프로그래밍언어입니다. 당사의모든 PHPoC 제품들의펌웨어에는 PHPoC 인터프리터가내장되어있습니다. PHPoC 는범용스크립트언어인 PHP 를기반으로제작되었습니다. PHPoC 는매우간단하여 C 언어등

PHPoC vs PHP > 개요 개요 PHPoC 는솔내시스템 이자체개발한프로그래밍언어입니다. 당사의모든 PHPoC 제품들의펌웨어에는 PHPoC 인터프리터가내장되어있습니다. PHPoC 는범용스크립트언어인 PHP 를기반으로제작되었습니다. PHPoC 는매우간단하여 C 언어등 PHPoC vs PHP > 개요 개요 PHPoC 는솔내시스템 이자체개발한프로그래밍언어입니다. 당사의모든 PHPoC 제품들의펌웨어에는 PHPoC 인터프리터가내장되어있습니다. PHPoC 는범용스크립트언어인 PHP 를기반으로제작되었습니다. PHPoC 는매우간단하여 C 언어등프로그래밍언어에대한경험이있는사람이라면누구나쉽게사용할수있습니다. PHPoC 는기본적으로 PHP

More information

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_ Sena Technologies 백서 : Latency/Throughput Test September 11, 2008 Copyright Sena Technologies, Inc 2008 All rights strictly reserved. No part of this document may not be reproduced or distributed without

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 1 목포해양대해양컴퓨터공학과 UDP 소켓 네트워크프로그램설계 4 장 2 목포해양대해양컴퓨터공학과 목차 제 4장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송신및수신 4.4 UDP 소켓의연결 3 목포해양대해양컴퓨터공학과 UDP 소켓의특징 UDP 소켓의특성 신뢰할수없는데이터전송방식 목적지에정확하게전송된다는보장이없음.

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-PIR100은 UART 인터페이스를통하여인체모션감지 (PIR) 데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. ( PIR: Pyroelectric

More information

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

More information

네트워크 설정

네트워크 설정 158. 내용 비고 제조사 기기명 통신모듈 MITSUBISHI MELSEC(GOLDSEC-M) AJ71E71(MJ71E71)/QJ71E71 통신방식 Ethernet 3 장참조 프로토콜 3E 통신프레임표시가능 1 장 8 쪽참조 쓰기후읽기가능 1 장 9 쪽참조 통신설정 1. 통신포트설정 소켓포트번호네트워크통신을위해지정된소켓포트번호를입력합니다. 값은 5000 에서

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

USB-AIO11 API

USB-AIO11 API NET-AIO11 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver 1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-MOS100은 UART 인터페이스를통하여토양수분데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. PC에서는 OSTSen-MOS100에서제공하는토양수분데이터를

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-THL100은 UART 인터페이스를통하여온도, 습도, 조도데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에쉽게적용할수있도록소형으로제작되었습니다. PC에서 OSTSen-THL100의온도,

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

(MHT-SB112\273\347\276\347\274\255.hwp)

(MHT-SB112\273\347\276\347\274\255.hwp) 무한테크 Digital I/O Board MHT-SB112 경기도의왕시고천동 290-2 대영골든밸리 902 호 http:// Tel : 031-450 - 6737 Fax : 031-450 - 6738 Email : info@moohantechbiz 차례 1 사용되는용도및특징 2 구성요소 3 인터페이스구성 4 아날로그입력 5 통신프로토콜 6 딥스위치설정 7 PCB

More information

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는 Dong Yang E&P 인버터 Modbus Monitoring Protocol 2018. 08. 27 Sun Spec (Modbus-RTU) -. Modbus Protocol 각 Field에대한설명 Frame갂의구별을위한최소한의시갂 BaudRate 9600에서 1bit 젂송시갂은 Start 0.104msec, (3.5 character Times, 1 Character

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PEB08_USER_GUIDE.doc 0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든

More information

ATmega128

ATmega128 ATmega128 외부인터럽트실습 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi 외부인터럽트실험 외부인터럽트를사용하기위해관렦레지스터를설정 일반적으로 I/O 포트에대한설정이끝난후에외부인터럽트나타이머 / 카운터설정 PE4~7 번까지 4 개의외부인터럽트 INT4~INT7 까지사용 외부인터럽트사용법요약

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

Microsoft PowerPoint - Chapter 8_USART Serial Communication

Microsoft PowerPoint - Chapter 8_USART Serial Communication MEC382 마이크로프로세서응용및실습 USART Serial Communication Jee-Hwan Ryu School of Mechanical Engineering 통신방법 병렬통신 고속데이터전송이필요한곳에서이루어짐 여러개의라인에서동시에이루어짐 직렬통신 한라인에서이루어짐 데이터의송수신속도가느리다 라인수적고멀리까지통신 동기식, 비동기식있음 동기식 : 기준클럭인동기클럭라인과데이터송

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

CANTUS Evaluation Board Ap. Note

CANTUS Evaluation Board Ap. Note Preliminary CANTUS - UART - 32bits EISC Microprocessor CANTUS Ver 1. October 8, 29 Advanced Digital Chips Inc. Ver 1. PRELIMINARY CANTUS Application Note( EVM B d ) History 29-1-8 Created Preliminary Specification

More information

Mango220 Android How to compile and Transfer image to Target

Mango220 Android How to compile and Transfer image to Target Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys

More information

DSP_MON 프로그램 메뉴얼

DSP_MON 프로그램 메뉴얼 UART_ 통신프로토콜사용자메뉴얼 리얼시스 TEL : 031-342-3000 FAX : 031-343-0003 주소 : 경기도안양시동안구호계동 1027번지안양IT밸리 504호 - 1 - [ 공통용어설명 ] 통신프로토콜 UART_ Analyzer 통신프로토콜공통형식 1. 동작요청명령및정상응답구조 시작문자 명령코드 Hex ASCII 데이터문자열 Check Sum

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

슬라이드 1

슬라이드 1 TCPdump 사용법 Neworks, Inc. (Tel) 070-7101-9382 (Fax) 02-2109-6675 ech@pumpkinne.com hp://www.pumpkinne.co.kr TCPDUMP Tcpdump 옵션 ARP 정보 ICMP 정보 ARP + ICMP 정보 IP 대역별정보 Source 및 Desinaion 대역별정보 Syn 과 syn-ack

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

2주차: 입출력 제어 복습

2주차: 입출력 제어 복습 마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35

More information

CAN-fly Quick Manual

CAN-fly Quick Manual adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References

More information

Microsoft Word - How to make a ZigBee Network_kr

Microsoft Word - How to make a ZigBee Network_kr 1 단계 ZigBee 네트워크설정방법 이보기는 ProBee 기기를이용해 ZigBee 네트워크를설정하는방법을보여줍니다. 2 단계 이보기에서사용된 SENA 제품입니다 : ProBee ZE10 Starter Kit ProBee ZS10 ProBee ZU10 3 단계 ZigBee 네트워크입니다. SE1 SE2 SE3 ZS10 ZS10 ZS10 R4 R5 R3 R1

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB http://ntrexgo.com 설명서에포함된정보는정확하고신뢰성이있는내용입니다. 그러나출판당시발견되지않은 오류가있을수있으니사용자는자신의제품검증을수행하시기바라며, 전적으로설명서에포 함된정보에의존하지마시기바랍니다. 1 소개 1 2

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16),

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16), All In OneSTEP MBCD-13A ( 스텝모터용 1 축컨트롤러 / 드라이버일체형 ) 사용설명서 MotionBank 1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64),

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

Sena Device Server Serial/IP TM Version

Sena Device Server Serial/IP TM Version Sena Device Server Serial/IP TM Version 1.0.0 2005. 3. 7. Release Note Revision Date Name Description V1.0.0 2005-03-7 HJ Jeon Serial/IP 4.3.2 ( ) 210 137-130, : (02) 573-5422 : (02) 573-7710 email: support@sena.com

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 12 표준입출력과파일입출력... 1. 표준입출력함수 2. 파일입출력함수 1. 표준입출력함수 표준입출력함수 표준입력 (stdin, Standard Input) : 키보드입력 표준출력 (stdout, StandardOutput) : 모니터출력 1. 표준입출력함수 서식화된입출력함수 printf(), scanf() 서식의위치에올수있는것들 [ 기본 11-1]

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Microsoft Word - LKP-RTD 사용자 설명서

Microsoft Word - LKP-RTD 사용자 설명서 LKP-RTD 보드 사용자설명서 Version Information H/W Version : Version 1.0 소속 : ( 주 ) 엘케이일레븐연구소주소 : 성남시중원구상대원동 190-1 SKn테크노파크메가센터 1306호전화 : 031-776-4120 / FAX : 031-766-4119 목차 1. 개요... 5 2. 사양... 6 3. 블록도... 7 4.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install the PDI on CentOS 2013.04 G L O B E P O I N T 1 Ⅰ linux 구성 II Pentaho Install 2013, Globepoint Inc. All Rights Reserved. 2 I. Linux 구성 2013, Globepoint Inc. All Rights Reserved. 3 IP 설정 1. 설정파일

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 - Quick Network Setup Guide xdsl/cable Modem PC DVR ~3.., PC, DVR. Cable IP Cable/ADSL/ VDSL or 3 4 VIDEO OUT (SPOT) AUDIO IN VGA ALARM OUT COM ALARM IN RS-485 3 4 G G + 3 CONSOLE NETWORK DC V VIDEO IN VIDEO

More information

Microsoft PowerPoint - T1 ERS (Elevator Reservation System)SASD2.pptx

Microsoft PowerPoint - T1 ERS (Elevator Reservation System)SASD2.pptx Team : T1 Member : 김영훈, 남장우, 황규원 Presenter : 김영훈 Statement of Purpose System Context Diagram Event List Data Flow Diagram Process Specification i Structured Charts Elevator Reservation System(ERS) -ERS는입력이들어오면입력을스케줄에저장한다.

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

PowerPoint Template

PowerPoint Template SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

일반적인 네트워크의 구성은 다음과 같다

일반적인 네트워크의 구성은 다음과 같다 W5200 Errata Sheet Document History Ver 1.0.0 (Feb. 23, 2012) First release (erratum 1) Ver 1.0.1 (Mar. 28, 2012) Add a solution for erratum 1, 2 Ver 1.0.2 (Apr. 03, 2012) Add a solution for erratum 3

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

IoT FND8 7-SEGMENT api

IoT FND8 7-SEGMENT api IoT FND8 7-SEGMENT api http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information