.srv 인터페이스
/spawn에 무엇을 넣어야 하는지 어디에 적혀 있을까?
따라 하기
interface show로 모양을 봅니다
4강 2편에서 메시지를 들여다본 ros2 interface show를 서비스 타입에도 씁니다. 서비스 타입은 .srv 파일 하나로 정해지는 인터페이스(interface)입니다.
# 뒤의 설명 줄은 길어서 줄였습니다.
구분선
--- 위는 요청, 아래는 응답
.srv 파일은 --- 한 줄로 둘로 나뉩니다. 위는 클라이언트가 보내는 요청, 아래는 서버가 돌려주는 응답입니다. 3편에서 적은 x, y, theta, name이 위쪽, 돌려받은 name이 아래쪽입니다.
한 줄 읽기
한 줄은 타입과 이름
한 줄은 필드(field) 하나입니다. 앞은 타입, 뒤는 이름입니다. 4강에서 본 .msg와 같은 문법이고, # 뒤는 사람이 읽는 설명입니다.
빈 서비스
Empty는 ---만 남습니다
2편의 /clear와 /reset 타입 std_srvs/srv/Empty는 위도 아래도 비어 있습니다. 실어 보낼 값도, 받을 값도 없이 불렀다는 것 자체가 요청입니다.
이번 강 예제
AddTwoInts: 두 수를 더해 줘
example_interfaces는 예제용 인터페이스를 모은 패키지입니다. 그 안의 AddTwoInts는 정수 a, b를 보내면 합 sum을 돌려받는 모양입니다. 5·6편에서 이 타입으로 서버와 클라이언트를 짭니다.
int64는 64비트 정수입니다.
코드에서는
파이썬에서는 두 클래스로
파이썬에서는 from example_interfaces.srv import AddTwoInts로 가져옵니다. 요청은 AddTwoInts.Request, 응답은 AddTwoInts.Response 클래스입니다.
이 클래스는 빌드할 때 .srv 파일에서 만들어집니다. 내 .srv를 만드는 법은 8편에서 봅니다.
다음 편