Main Content

TCP/IP Receive

원격 호스트로부터 TCP/IP 네트워크를 통해 데이터 수신

R2020b 이후

애드온 필요: 이 기능을 사용하려면 MATLAB Coder Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms 애드온이 필요합니다.

  • NVIDIA TCP/IP Receive block

라이브러리:
NVIDIA Jetson and NVIDIA DRIVE / Network

설명

네트워크를 통해 원격 호스트/다른 타깃 하드웨어로부터 데이터를 수신합니다. 연결 모드를 서버로 설정하는 경우 로컬 포트를 제공해야 합니다. 로컬 포트는 TCP/IP 서버의 수신 대기 포트 역할을 합니다. 블록을 클라이언트로 설정하는 경우 데이터를 수신할 TCP/IP 서버의 원격 주소와 원격 포트를 제공해야 합니다. 블록은 차단 모드 또는 비차단 모드에서 데이터를 받습니다. Data 포트 출력에는 각 시간 스텝에서 요청된 데이터가 포함됩니다. Status 포트에는 지정된 시간 스텝에서 새 데이터가 수신되었는지 여부를 나타내는 0 또는 1이 포함됩니다. Status 포트 값 1은 Data 포트의 데이터가 유효함을 나타냅니다.

차단 모드에서는 모델이 요청된 데이터를 사용할 수 있을 때까지 기다리는 동안 실행을 차단합니다.

blocking mode

시간 스텝 1에서 블록은 4개의 데이터 값을 요청하고 TCP/IP 수신 버퍼는 4개의 데이터 값을 얻습니다. 실행이 진행됩니다.

시간 스텝 2에서 블록은 데이터를 다시 요청하는데 TCP/IP 수신 버퍼는 3개의 데이터 값만 얻습니다. 버퍼가 네 번째 데이터 값을 수신하거나 제한 시간 값이 경과할 때까지 실행이 일시 중지됩니다. 그런 다음 실행이 다시 시작됩니다.

시간 스텝 3에서 블록은 데이터를 요청하고 버퍼는 5개의 데이터 값을 수신합니다. 블록은 처음 4개의 데이터 값을 반환하고 나머지 데이터 값은 다음 수신 사이클에 사용됩니다.

비차단 모드에서는 모델이 계속 실행됩니다.

non blocking mode

시간 스텝 1에서 블록은 데이터를 요청하고 버퍼는 4개의 데이터 값을 얻습니다. 블록은 Status 포트 값을 0으로 변경하여 새로 요청한 데이터를 사용할 수 있음을 나타냅니다. 이 시점에서 Data 포트에는 새로 수신한 데이터 값이 포함됩니다. 블록은 Data 포트 값을 0으로 재설정합니다.

시간 스텝 2에서 블록은 데이터를 다시 요청하는데 버퍼는 3개의 값만 얻습니다. 데이터 크기가 4로 지정되어 있으므로 블록은 값 3을 반환할 수 없습니다. 따라서 블록은 Status 포트 값을 1로 설정하여 새 데이터가 없음을 나타냅니다. Data 포트의 모든 값은 0이 됩니다. 이 시점에서 버퍼는 3개의 데이터 값을 갖습니다. 그러나 이 단계 중에는 차단 모드와 달리 실행이 중지되지 않습니다.

시간 스텝 3에서 버퍼는 5개의 데이터 값을 갖고, 블록은 수신된 순서대로 처음 4개의 데이터 값을 반환하고 Status 포트 값을 0으로 변경합니다. 나머지 데이터 값은 다음 수신 사이클에 사용됩니다.

포트

출력

모두 확장

블록은 데이터를 [Nx1] 배열로 출력합니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

이 포트는 데이터 수신 상태를 표시합니다. 상태 값 1은 데이터 수신 성공을 의미합니다.

데이터형: int8

파라미터

모두 확장

기본 탭

블록을 TCP/IP 서버 또는 TCP/IP 클라이언트로 연결하는 옵션을 선택합니다.

프로그래밍 방식의 사용법

블록 파라미터: Mode_
유형: 문자형 벡터
값: 'Server'|'Client'
디폴트 값: 'Server'

TCP/IP 서버의 수신 대기 포트 역할을 하는 로컬 포트 번호를 입력합니다. 이 파라미터는 Connection modeServer로 설정한 경우에만 나타납니다

프로그래밍 방식의 사용법

블록 파라미터: LocalServerPort_
유형: 문자형 벡터
값: '25000'|scalar
디폴트 값: '25000'

데이터를 수신할 원격 서버의 주소를 입력합니다. 이 파라미터는 Connection modeClient로 설정한 경우에만 나타납니다.

프로그래밍 방식의 사용법

블록 파라미터: RemoteAddr_
유형: 문자형 벡터
값: '127.0.0.1'|scalar
디폴트 값: '127.0.0.1'

원격 서버 포트를 입력합니다. 이 파라미터는 Connection modeClient로 설정한 경우에만 나타납니다.

프로그래밍 방식의 사용법

블록 파라미터: RemoteServerPort_
유형: 문자형 벡터
값: '25000'|scalar
디폴트 값: '25000'

원격 호스트로부터 수신할 데이터형을 선택합니다.

프로그래밍 방식의 사용법

블록 파라미터: DataType_
유형: 문자형 벡터
값: 'uint8'|'uint16''uint32''double''single''int8''int16''int32''boolean'
디폴트 값: 'uint8'

원격 호스트로부터 수신할 데이터 크기를 입력합니다.

프로그래밍 방식의 사용법

블록 파라미터: DataSize_
유형: 문자형 벡터
값: '1'|scalar
디폴트 값: '1'

데이터를 수신할 시간 주파수를 입력합니다.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime_
유형: 문자형 벡터
값: 스칼라 | 벡터
디폴트 값: '0.1'
고급 탭

데이터를 수신할 로컬 IP 포트를 수동으로 지정할 수 있습니다. 이 파라미터는 Connection modeClient로 설정한 경우에만 나타납니다.

프로그래밍 방식의 사용법

블록 파라미터: ClientPortBindingSelection_
유형: 문자형 벡터
: 'off' | 'on'
디폴트 값: 'off'

데이터를 수신할 클라이언트의 로컬 포트를 입력합니다. 이 파라미터는 Connection modeClient로 설정하고 Manually specify local IP port 체크박스를 선택한 경우에만 나타납니다.

프로그래밍 방식의 사용법

블록 파라미터: ClientPortToBind_
유형: 문자형 벡터
값: '35000'|scalar
디폴트 값: '35000'

블록이 데이터가 수신될 때까지 대기할지 여부를 지정하려면 이 옵션을 선택합니다. 이 체크박스를 선택하면 차단 모드가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: BlockingMode_
유형: 문자형 벡터
: 'off' | 'on'
디폴트 값: 'off'

각 시뮬레이션 시간 스텝 동안 데이터가 수신될 때까지 블록이 대기하는 시간을 지정합니다. 이 필드는 Wait until data received 파라미터를 선택하지 않은 경우 사용할 수 없습니다. 블록이 데이터를 수신할 때까지 무한정 대기하도록 하려면 이 파라미터에 ‘inf’ 값을 입력합니다.

프로그래밍 방식의 사용법

블록 파라미터: BlockTimeout_
유형: 문자형 벡터
값: '0.1'|scalar
디폴트 값: '0.1'

버전 내역

R2020b에 개발됨