|
MID 프로필 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
이 인터페이스는 논리적 직렬 포트 연결을 정의합니다. "논리적" 직렬 포트는 바이트를 연속적으로 전송하는 논리적 연결로 정의됩니다. 논리적 직렬 포트는 기본 운영 체제 내에서 정의되며 물리적 RS-232 직렬 포트에 일치하지 않을 수도 있습니다. 예를 들어, IrDA IRCOMM 포트는 "논리적" 직렬 포트로 작동할 수 있도록 운영 체제 내에서 논리적 직렬 포트로 구성할 수 있습니다.
통신 포트는 명시적 포트 식별자와 내장된 구성 매개 변수가 각각 세미콜론(;)으로 구분된 일반 연결 프레임워크 문자열을 사용하여 액세스합니다.
특정 직렬 포트에 여러 응용 프로그램을
동시에 연결할 수는 없습니다.
연결이 이미 열려 있을 때 Connector.open()
을 사용하여
직렬 포트를 열려고 시도하면
java.io.IOException
이 발생합니다.
연결을 열 때는 유형과 매개 변수가 있는 URI를 사용합니다.
RFC 2396에 정의된 체계는 다음과 같습니다.
comm:<port identifier>[<optional parameters>]
첫 번째 매개 변수는 논리적 장치 이름인 포트 식별자여야 합니다. 이러한 식별자는 장치별로 다른 경우가 많기 때문에 주의해서 사용해야 합니다.
특정 장치와 운영 체제에 유효한 식별자는
"microedition.commports" 키를 사용하여
System.getProperty()
메소드로 쿼리할 수 있습니다.
comm:
접두어와 결합되어 직렬 포트 연결을 여는 데
사용할 수 있는 URL 문자열을 만드는 쉼표로 구분된 포트 목록이
반환됩니다(아래의 포트 이름 지정 규약 참조).
추가 매개 변수는 세미콜론(;)으로 구분해야 하며 문자열에 공백은 사용할 수 없습니다. 특정 선택 매개 변수가 특정 포트에 적합하지 않으면 이 매개 변수는 무시될 수도 있습니다. 포트 식별자에 세미콜론(;)을 사용해서는 안 됩니다.
유효한 매개 변수는 아래의 매개 변수 정의에 따라 정의됩니다.
유효하지 않거나 인식되지 않는 매개 변수를 사용하면
IllegalArgumentException
이 발생합니다.
매개 변수 값이 장치에서 지원되면 이 값을 사용해야 합니다.
매개 변수 값이 지원되지 않으면
java.io.IOException
이 발생합니다.
baudrate
매개 변수를 요청하면
setBaudRate
메소드가 보 속도를 처리하는 것과
동일한 방식으로 처리됩니다. 예를 들어, 요청된 보 속도가 지원되지 않으면
시스템이 유효한 보 속도로 대체할 수 있으며 이 값은 getBaudRate
메소드로 검색할 수 있습니다.
매개 변수 | 기본값 | 설명 |
---|---|---|
baudrate |
platform dependent |
포트 속도 |
bitsperchar |
8 |
문자당 숫자 비트(7 또는 8 ) |
stopbits |
1 |
문자당 중지 비트 수(1 또는 2 ) |
parity |
none |
패리티는 odd , even
또는 none 이 될 수 있습니다. |
blocking |
on |
이 매개 변수가 on 이면 읽기 전에 버퍼가 가득찰 때까지 대기합니다. |
autocts |
on |
이 매개 변수가 on 이면 쓰기 전에
CTS 행이 활성화될 때까지 대기합니다. |
autorts |
on |
이 매개 변수가 on 이면
입력 버퍼가 가득차지 않은 경우 RTS 행을 활성화합니다.
off 이면 RTS 행이 항상 활성화됩니다. |
URI는 아래에 지정된 BNF 구문과 일치해야 합니다.
URI가 이 구문에 일치하지 않으면
IllegalArgumentException
이 발생합니다.
<comm_connection_string> | ::= "comm:"<port_id>[<options_list>] ; |
<port_id> | ::= 영숫자 문자열 |
<options_list> | ::= *(<baud_rate_string>| <bitsperchar>|
<stopbits>| <parity>|
<blocking>| <autocts>|
<autorts>) ;
; 한 옵션이 옵션 목록의 이전 옵션과 중복되는 경우 ; 해당 옵션이 이전 옵션을 ; 무시합니다. |
<baud_rate_string> | ::= ";baudrate="<baud_rate> TR_ |
<baud_rate> | ::= 숫자 문자열 TR_ |
<bitsperchar> | ::= ";bitsperchar="<bit_value> |
<bit_value> | ::= "7" | "8" |
<stopbits> | ::= ";stopbits="<stop_value> |
<stop_value> | ::= "1" | "2" |
<parity> | ::= ";parity="<parity_value> |
<parity_value> | ::= "even" | "odd" | "none" |
<blocking> | ::= ";blocking="<on_off> |
<autocts> | ::= ";autocts="<on_off> |
<autorts> | ::= ";autorts="<on_off> |
<on_off> | ::= "on" | "off" |
직렬 포트에 대한 액세스는 권한 없는 데이터 전송이나
수신을 방지하기 위해 제한됩니다.
직렬 포트 연결에 적용되는 보안 모델은 구현 프로필에서 정의합니다.
보안 모델은 유효한 직렬 포트 연결 문자열을 사용한
Connector.open()
메소드 호출 시
적용될 수 있습니다.
프로필 권한 부여 체계를 통해 응용 프로그램에
직렬 포트에 대한 액세스 권한을 부여하지 않으면
Connector.open()
메소드에서
java.lang.SecurityException
이 발생합니다.
보안 모델은 실행 중에, 특히
openInputStream()
,
openDataInputStream()
,
openOutputStream()
및
openDataOutputStream()
메소드 호출 시
적용될 수도 있습니다.
아래 예에서는 CommConnection을 사용하여 샘플 루프백 프로그램에 액세스하는 방법을 보여 줍니다.
CommConnection cc = (CommConnection) Connector.open("comm:com0;baudrate=19200"); int baudrate = cc.getBaudRate(); InputStream is = cc.openInputStream(); OutputStream os = cc.openOutputStream(); int ch = 0; while(ch != 'Z') { os.write(ch); ch = is.read(); ch++; } is.close(); os.close(); cc.close();
아래 예에서는 CommConnection을 사용하여 이용 가능한 통신 포트를 검색하는 방법을 보여 줍니다.
String port1; String ports = System.getProperty("microedition.commports"); int comma = ports.indexOf(','); if (comma > 0) { // Parse the first port from the available ports list. port1 = ports.substring(0, comma); } else { // Only one serial port available. port1 =ports; }
논리적 포트 이름은 영숫자 문자의 조합을 사용하여
플랫폼 이름 지정 규약과 일치하도록 정의할 수 있습니다.
하지만 제안된 규약에 따라 이 클래스의
각 구현에서 일관성 있게 포트 이름을 지정하는 것이 좋습니다.
가상 머신 구현 시 다음 규약을 따라야 합니다.
포트 이름에는 포트 기능을 나타내는 텍스트 약어가 포함되며
그 뒤에는 포트의 일련 번호가 옵니다.
다음과 같은 장치 이름 유형을 사용해야 합니다.
이 이름 지정 체계에서는 API 사용자가 원하는 포트 유형을 결정할 수 있습니다. 예를 들어, 응용 프로그램이 데이터 조각을 "빔"하려는 경우에는 연결을 열 "IR#" 포트를 찾을 수 있습니다. 또는 사용 가능한 모든 포트를 시도해 볼 수도 있습니다.
Method Summary | |
int |
getBaudRate()
직렬 포트 연결의 보 속도를 가져옵니다. |
int |
setBaudRate(int baudrate)
직렬 포트 연결의 보 속도를 설정합니다. |
Methods inherited from interface javax.microedition.io.InputConnection |
openDataInputStream, openInputStream |
Methods inherited from interface javax.microedition.io.Connection |
close |
Methods inherited from interface javax.microedition.io.OutputConnection |
openDataOutputStream, openOutputStream |
Method Detail |
public int getBaudRate()
setBaudRate(int)
public int setBaudRate(int baudrate)
baudrate
가 플랫폼에 지원되지 않으면 시스템이
유효한 설정으로 대체할 수도 있습니다.
대체 값은 getBaudRate
메소드로 액세스할 수 있습니다.
baudrate
- 연결의 보 속도
getBaudRate()
|
MID 프로필 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |