fscanf (serial)
(제거될 예정임) 장치에서 ASCII 데이터를 텍스트 형식으로 읽기
이 serial
객체 함수는 향후 릴리스에서 제거될 예정입니다. serialport
객체 함수를 대신 사용하십시오. 코드 업데이트에 대한 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
구문
A = fscanf(obj)
A = fscanf(obj,'format
')
A = fscanf(obj,'format
',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)
설명
A = fscanf(obj)
는 직렬 포트 객체 obj
에 연결된 장치에서 ASCII 데이터를 읽고 이를 A
로 반환합니다. 데이터는 %c
형식을 사용하여 텍스트로 변환됩니다. 이진 데이터의 경우 fread
를 사용하십시오.
A = fscanf(obj,'
은 데이터를 읽고 format
')format
에 따라 변환합니다. format
은 C 언어 변환 사양입니다. 변환 사양에는 %
문자와 변환 문자 d, i, o, u, x, X, f, e, E, g, G, c, s가 포함됩니다. 자세한 내용은 sscanf
파일 I/O 형식 사양 또는 C 매뉴얼을 참조하십시오.
A = fscanf(obj,'
는 format
',size)size
로 지정된 개수의 값을 읽습니다. size
에 유효한 옵션은 다음과 같습니다.
| 최대 |
| 최대 m×n개 값을 읽고 m×n 행렬을 열 순서대로 채웁니다. |
size
는 inf
일 수 없으며 지정된 개수의 값을 입력 버퍼에 저장할 수 없는 경우 오류가 반환됩니다. size
가 [m,n]
형식이 아닌데 문자 변환이 지정된 경우 A
는 행 벡터로 반환됩니다. InputBufferSize
속성을 사용하여 입력 버퍼의 크기(바이트)를 지정할 수 있습니다. ASCII 값은 1바이트입니다.
[A,count] = fscanf(...)
는 count
로 읽은 값 개수를 반환합니다.
[A,count,msg] = fscanf(...)
는 읽기 작업이 성공적으로 완료되지 않은 경우 msg
로 경고 메시지를 반환합니다.
예제
직렬 포트 객체 s
를 만들고 사인파를 표시하는 Tektronix® TDS 210 오실로스코프에 s
를 연결합니다. 이 예제는 Windows® 플랫폼에서 동작합니다.
s = serial('COM1');
fopen(s)
fprintf
함수를 사용하여 사인파의 피크 간(Peak-to-peak) 전압을 측정하고, 측정 유형을 반환하고, 피크 간 전압을 반환하도록 오실로스코프를 구성합니다.
fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK') fprintf(s,'MEASUREMENT:IMMED:TYPE?') fprintf(s,'MEASUREMENT:IMMED:VALUE?')
ReadAsyncMode
속성의 디폴트 값은 continuous
이므로 두 쿼리 명령과 연결된 데이터는 자동으로 입력 버퍼로 반환됩니다.
s.BytesAvailable
ans = 21
fscanf
를 사용하여 측정 유형을 읽습니다. 첫 번째 종결자를 읽으면 작업이 완료됩니다.
meas = fscanf(s)
meas = PK2PK
fscanf
를 사용하여 피크 간(Peak-to-peak) 전압을 부동소수점 숫자로 읽고 종결자를 제외합니다.
pk2pk = fscanf(s,'%e',14)
pk2pk = 2.0200
오실로스코프에서 s
의 연결을 끊고 메모리와 작업 공간에서 s
를 제거합니다.
fclose(s) delete(s) clear s
팁
장치에서 데이터를 읽으려면 fopen
함수를 사용하여 obj
에 장치가 연결되어 있어야 합니다. 연결된 직렬 포트 객체는 Status
속성값으로 open
을 갖습니다. obj
가 장치에 연결되어 있지 않은 상태에서 읽기 작업을 수행하려고 하면 오류가 반환됩니다.
msg
가 출력 인수로 포함되지 않은 상태에서 읽기 작업이 실패하면 명령줄로 경고 메시지가 반환됩니다.
fscanf
가 실행될 때마다 종결자를 포함하여 읽은 값의 개수만큼 ValuesReceived
속성값이 증가합니다.
fscanf를 사용한 읽기 작업을 완료하기 위한 규칙
fscanf
를 사용한 읽기 작업은 다음 시점에 MATLAB® 명령줄에 대한 액세스를 차단합니다.
Terminator
속성으로 지정된 종결자를 읽으면Timeout
속성으로 지정된 시간이 경과하면size
로 지정된 개수의 값을 읽으면입력 버퍼가 채워질 때까지(
size
가 지정된 경우는 제외)