# 機械手臂 socket 傳輸方式
# socker 連線
```sequence
機械手臂->機械手臂: 等待啟動服務時間(60s)
機械手臂 -> 圖像AI:發起連線請求
圖像AI--> 機械手臂: 連線成功
```
# 連線確認
## 確認機械手臂是否存活
固定時間發送,確認手臂連線狀態正常,對應AI檢測畫面
傳送參數:
string:tick

### 狀態正常
若正常則畫面顯示
機械手臂:連線正常
```sequence
機械手臂 -> 圖像AI:tick
圖像AI--> 機械手臂: ok
```
### AI伺服器異常或斷線
若正常則畫面顯示
機械手臂:連線正常
```sequence
機械手臂 -> 圖像AI:tick
圖像AI--> 機械手臂: ai error
```
### 鏡頭器異常或斷線
若正常則畫面顯示
機械手臂:連線正常
```sequence
機械手臂 -> 圖像AI:tick
圖像AI--> 機械手臂: camera error
```
### 超時
若超過60s未收到 tick請求
機械手臂:連線超時
```sequence
機械手臂 -> 圖像AI:tick
圖像AI--> 機械手臂: ok
```
# 開始偵測
## 通知 圖像AI開始新的一輪檢測,若有檢測中的資料則會自動清除
傳送參數:
string:start,10,991
逗號間隔,後面接預計擷取數量,檢測件數
ex:
start,9,991
開始偵測,共9張圖片,目前第991件測試
```sequence
機械手臂 -> 圖像AI:start,10,991
圖像AI--> 機械手臂: ok
```
# 到達定位置
## 通知 圖像AI開始建測鏡頭圖片
傳送參數
strin:check,0
逗號間隔,後面接續目前檢測序號
ex:
check,0
取得圖像進行AI判斷並回應狀態
### 狀態正常
若正常則畫面顯示
ex:第一張正常,第二張圖像瑕疵
```sequence
機械手臂 -> 圖像AI:check,0
機械手臂 -> 機械手臂:圖像判讀
圖像AI--> 機械手臂: ok
機械手臂 -> 圖像AI:check,1
機械手臂 -> 機械手臂:圖像判讀
圖像AI--> 機械手臂: error
```
### 模型切換
未來需要增設api設定模型
### 信心值調整
9/8號會議後追加
# 後台 API
## 取得鏡頭資料
路由
```
video_feed
```
Method
```
GET
```
Query String
```
```
Response
成功執行 回傳鏡頭串流資料
## 鏡頭設定
路由
```
requests
```
Method
```
POST
```
Query String
```
Capture
```
Response
成功執行啟動相機
```
{
"status": "open"
}
```
成功執行關閉相機
```
{
"status": "stop"
}
```
## 辨識畫面
路由
```
/api/step
```
Method
```
POST
```
Query String
```
```
Response
成功執行
```
{"msg":stat,"detectcount":detectcount,"datatypelist":datatypelist}
```
## 取得檔案列表
路由
```
/api/filelist
```
Method
```
POST
```
Query String
```
```
Response
成功執行
```
["xxx.jpg","xxx.jpg"]
```
## 取得辨識結果圖片
路由
```
/api/image
```
Method
```
GET
```
Query String
```
filename=xxx.jpg
```
Response
成功執行
回傳圖片資料