Interface Specification - addinedu-ros-8th/ros-repo-3 GitHub Wiki

1. TCP Binary 톡신

μΈν„°νŽ˜μ΄μŠ€ λͺ©λ‘

μΈν„°νŽ˜μ΄μŠ€ ID 이름 λ°©ν–₯ μ„€λͺ…
AU 둜그인 인증 μš”μ²­ Staff GUI β†’ Main Service μ‚¬μš©μž 둜그인 μš”μ²­
IS μƒν’ˆ 정보 쑰회 μš”μ²­ Staff GUI β†’ Main Service QRμ½”λ“œ 기반 μƒν’ˆ 쑰회
IR μƒν’ˆ μš”μ²­ Staff GUI β†’ Main Service μž₯λ°”κ΅¬λ‹ˆ 기반 재고 μš”μ²­
CD μž‘μ—… μ·¨μ†Œ μš”μ²­ Staff GUI β†’ Main Service μ§„ν–‰ 쀑 μž‘μ—… 쀑단
TR μž‘μ—… μƒνƒœ 확인 μš”μ²­ Staff GUI β†’ Main Service νŠΉμ • μž‘μ—…μ˜ μ™„λ£Œ μ—¬λΆ€ 확인
TR_NOTIFY μž‘μ—… μƒνƒœ λ³€κ²½ μ•Œλ¦Ό Main Service -> Staff GUI μž‘μ—… μƒνƒœκ°€ 변경될 λ•Œ ν‘Έμ‹œλ˜λŠ” μ•Œλ¦Ό λ©”μ‹œμ§€
IN AI 인식 κ²°κ³Ό μˆ˜μ‹  AI Server β†’ Main Service 객체 인식 κ²°κ³Ό 보고

[AU] 둜그인 인증 μš”μ²­

λ°©ν–₯: Staff GUI β†’ Main Service
μ„€λͺ…: μ‚¬μš©μž λ‘œκ·ΈμΈμ„ μœ„ν•΄ 인증 μš”μ²­μ„ 전솑

Request

Offset Length Name Type Description
0 2 cmd char[2] "AU"
2 32 user_name char[32] μ‚¬μš©μž 이름
34 32 password char[32] λΉ„λ°€λ²ˆν˜Έ

Response

Offset Length Name Type Description
0 2 cmd char[2] "AU"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨
3 4 user_id uint32 μ‚¬μš©μž ID (성곡 μ‹œ)
7 1 user_role uint8 μ‚¬μš©μž μ—­ν• (STAFF/MANAGER)

[IS] μƒν’ˆ 정보 쑰회 μš”μ²­

λ°©ν–₯: Staff GUI β†’ Main Service
μ„€λͺ…: QRμ½”λ“œλ₯Ό 기반으둜 μƒν’ˆ 정보λ₯Ό 쑰회

Request

Offset Length Name Type Description
0 2 cmd char[2] "IS"
2 16 qr_code_value char[16] QRμ½”λ“œ 데이터

Response

Offset Length Name Type Description
0 2 cmd char[2] "IS"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨
3 32 name char[32] μƒν’ˆ 이름
35 4 size uint32 μ‚¬μ΄μ¦ˆ
39 16 color char[16] 색상 이름
55 4 quantity uint32 재고 μˆ˜λŸ‰
59 16 location char[16] μœ„μΉ˜ μ½”λ“œ

[IR] μž₯λ°”κ΅¬λ‹ˆ 기반 μƒν’ˆ μš”μ²­

λ°©ν–₯: Staff GUI β†’ Main Service
μ„€λͺ…: μž₯λ°”κ΅¬λ‹ˆμ˜ μƒν’ˆλ“€λ‘œ Delivery 및 Task듀을 μƒμ„±ν•˜κ³  λͺ©μ μ§€λ₯Ό μ„€μ •

Request

Offset Length Name Type Description
0 2 cmd char[2] "IR"
2 4 user_id uint32 μ‚¬μš©μž ID
6 2 item_count uint16 μž₯λ°”κ΅¬λ‹ˆ ν•­λͺ© 수 N
8 2 destination char[2] 배솑 λͺ©μ μ§€ ("G1"~"G8")
10 N Γ— 12 items[N] struct[] μž₯λ°”κ΅¬λ‹ˆ ν•­λͺ© λͺ©λ‘

Item ꡬ쑰 (items[])

Offset Length Name Type Description
0 4 shoes_model_id uint32 μ‹ λ°œ λͺ¨λΈ ID
4 4 location_id uint32 좜발 μœ„μΉ˜ (λž™ ID)
8 4 quantity uint32 μš”μ²­ μˆ˜λŸ‰ (=Task 수)

Response

Offset Length Name Type Description
0 2 cmd char[2] "IR"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨
3 4 delivery_id uint32 μƒμ„±λœ Delivery ID
7 4 first_task_id uint32 첫 번째 Task ID

[CD] 배솑 μ·¨μ†Œ μš”μ²­

λ°©ν–₯: Staff GUI β†’ Main Service
μ„€λͺ…: 첫 Taskκ°€ TO_DO λ˜λŠ” IN_PROGRESS μƒνƒœμΌ 경우만 μ·¨μ†Œ κ°€λŠ₯

Request

Offset Length Name Type Description
0 2 cmd char[2] "CD"
2 4 user_id uint32 μ‚¬μš©μž ID
6 4 delivery_id uint32 μ·¨μ†Œν•  Delivery ID

Response

Offset Length Name Type Description
0 2 cmd char[2] "CD"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨
3 4 delivery_id uint32 μš”μ²­λœ Delivery ID

[TR] μž‘μ—… μƒνƒœ 확인 μš”μ²­

λ°©ν–₯: Staff GUI β†’ Main Service
μ„€λͺ…: 둜그인 ν›„ 남은 μž‘μ—… μƒνƒœ 확인 (μ§„ν–‰ 쀑/μ™„λ£Œ Task)

Request

Offset Length Name Type Description
0 2 cmd char[2] "TR"
2 4 user_id uint32 μ‚¬μš©μž ID

Response

Offset Length Name Type Description
0 2 cmd char[2] "TR"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨
3 2 done_count uint16 μ™„λ£Œλœ Task 수
5 1 in_progress_count uint8 μ§„ν–‰ 쀑 Task 수
6 N Γ— 32 in_progress_names char[32][] μ§„ν–‰ 쀑인 μ‹ λ°œ λͺ¨λΈλͺ… λͺ©λ‘
μ˜ˆμ‹œ 응닡:
{
  "cmd": "TR",
  "status": 0,
  "done_count": 2,
  "in_progress_count": 1,
  "in_progress_names": ["Nike Air Zoom"]
}

[TR_NOTIFY] μž‘μ—… μƒνƒœ λ³€κ²½ μ•Œλ¦Ό

λ°©ν–₯: Main Service β†’ Staff GUI μ„€λͺ…: μž‘μ—… μƒνƒœκ°€ 변경될 λ•Œ Staff GUI에 λΉ„λ™κΈ°μ μœΌλ‘œ ν‘Έμ‹œλ˜λŠ” μ•Œλ¦Ό λ©”μ‹œμ§€. ν˜•νƒœ: PUSH (비동기)


ꡬ쑰

Push Message

Offset Length Name Type Description
0 2 cmd char[2] "TR"
2 4 delivery_id uint32 μž‘μ—…μ΄ μ†ν•œ Delivery ID
6 4 task_id uint32 λ³€κ²½λœ Task ID
10 1 task_status uint8 Task μƒνƒœ (enum)
11 32 shoes_model_name char[32] μ‹ λ°œ λͺ¨λΈλͺ… (UTF-8 λ¬Έμžμ—΄)
43 8 timestamp uint64 μƒνƒœ λ³€κ²½ μ‹œκ° (UNIX Epoch ms)

μƒνƒœ μ½”λ“œ (task_status)

κ°’ 의미
0x00 TO_DO
0x01 IN_PROGRESS
0x02 DONE
0x03 CANCELLED
0xFF UNKNOWN

μ˜ˆμ‹œ

ν•„λ“œ κ°’
cmd "TR"
delivery_id 1001
task_id 2005
task_status 0x01 (IN_PROGRESS)
shoes_model_name "Nike Air Zoom"
timestamp 1716003600000

[IN] AI 인식 κ²°κ³Ό μˆ˜μ‹ 

λ°©ν–₯: AI Server β†’ Main Service
μ„€λͺ…: 객체 인식 κ²°κ³Ό 보고. Main ServiceλŠ” μˆ˜μ‹  μ¦‰μ‹œ 처리

Push Message

Offset Length Name Type Description
0 2 cmd char[2] "IN"
2 1 roscar_id uint8 λ‘œλ΄‡ ID
3 1 result_code uint8 0x00=Person, 0x01=Roscar

Response

Offset Length Name Type Description
0 2 cmd char[2] "IN"
2 1 status uint8 0x00 성곡 / 0x01 μ‹€νŒ¨

result_code λ§€ν•‘

μ½”λ“œ 객체 μœ ν˜•
0x00 Person
0x01 Roscar
0xFF 기타/μ•Œ 수 μ—†μŒ

2. UDP 톡신

μΈν„°νŽ˜μ΄μŠ€ λͺ©λ‘

μΈν„°νŽ˜μ΄μŠ€ ID 이름 λ°©ν–₯ μ„€λͺ…
VF μ˜μƒ ν”„λ ˆμž„ 전솑 Video Sender β†’ AI Server Pi Camera μ˜μƒ 전솑

[VF] μ˜μƒ ν”„λ ˆμž„ 전솑

λ°©ν–₯: Video Sender β†’ AI Server
μ„€λͺ…: λ‘œλ΄‡μ΄ μˆ˜μ§‘ν•œ μ˜μƒ 데이터λ₯Ό μ‹€μ‹œκ°„ 전솑

Packet

Offset Length Name Type Description
0 1 roscar_id uint8 솑신 λ‘œλ΄‡ ID
1 4 frame_size uint32 이미지 λ°”μ΄νŠΈ 길이
5 frame_size image_bytes bytes[] 이미지 λ°”μ΄λ„ˆλ¦¬ 데이터

3. ROS2 Topic (.msg)

4. ROS2 Service (.srv)

5. ROS2 Action (.action)

⚠️ **GitHub.com Fallback** ⚠️