socket命令.md 11 KB

智慧拍 socket 命令说明

Socket 连接信息

* 本地: ws://10.56.42.176:7074/ws
* 打包后: ws://127.0.0.1:7074/ws

统一响应示例说明

  • code:为0时代表成功操作
  • msg:为接口执行命令时的提示信息
  • status:-1连接失败 0未连接 1连接中 2链接成功 3端口占用
  • msg_type:mcu为设备控制,blue_tooth为蓝牙控制,blue_tooth_scan 为蓝牙扫码时发送的消息数据
  • data:为返回的数据信息,无实际交互需求时,前端可忽略

    {
    "code": 0,
    "msg": "开始识别接口:COM8",
    "status": 1,
    "data": {
        "_type": "show_info",
        "plugins_mode": "auto_select_com",
        "data": {
            "text": "开始识别接口:COM8"
        }
    },
    "msg_type": "mcu"
    }
    

    设备连接

    • type
    • 值为connect_mcu时,为连接mcu设备操作
    • 值为connect_bluetooth时,为连接蓝牙遥控器
    • data:可以忽略为null

      请求示例

      {"data":null,"type":"connect_mcu"}
      

      以下操作前必须保证设备已连接!!!

      初始化mcu设备

      目前连接设备后,后端会自动进行设备初始化操作,如无特殊需求可忽略

    • type 固定为 init_mcu

    • data:可以忽略为null

      请求示例

      {"data":null,"type":"init_mcu"}
      

      单独控制设备得某一个功能运行命令

      (该命令用于单独自定义配置中某一项的单独调整测试,不进行任何存储操作)

      • type 为control_mcu时,为设备得单独控制
      • data中的 device_name释义:
      • camera_high_motor:相机高度;步长1;最小0;最大400
      • camera_steering:相机倾角;步长0.1,最小-40;最大40
      • camera_steering:相机倾角
      • turntable_steering:转盘角度;步长1;最小-720;最大720
      • turntable_position_motor:转盘位置;步长1,最小0;最大800
      • overturn_steering:翻转,当device_name为当前类型时,value可以忽略或传递任意值,后端不做任何处理
      • take_picture:拍照测试;当device_name为当前类型时,value为0或者大于0的数值;提交对焦次数参数
      • laser_position:激光开关;当device_name为当前类型时,value为0或者1;0为关 1为开
      • value为设备得控制值,参考上述的最大最小值进行处理

        请求示例

        {
        "data": {
        "device_name": "camera_high_motor",
        "value": 200
        },
        "type": "control_mcu"
        }
        
    • 执行拍摄任务

      • type 为run_mcu时,为设备拍照动作连贯执行
      • data中的 action参数释义:
        • 执行左脚程序 : 为用户配置【执行左脚程序】,其状态必须至少有一条为true,否则不会运行并且报错无可用参数
        • 执行右脚程序 : 为用户配置【执行右脚程序】,其状态必须至少有一条为true,否则不会运行并且报错无可用参数
      • data中的 goods_art_no参数释义:

        • 商品货号,必须存在且为字符串形式传递

          请求示例

          {
          "data": {
          "action": "执行左脚程序",
          "goods_art_no": "1234556"
          },
          "type": "run_mcu"
          }
          

          执行拍摄任务命令发送完成后-服务端响应消息

          • msg_type 为image_process时,代表上述命令已发送给设备执行任务
          • data参数释义:
          • image_counts : 执行拍照任务的数量,可理解为照片张数
          • goods_art_no : 货号
          • current_time : 当前时间
          • msg 消息提示

            响应示例

            {
            "msg":"MCU 命令已发送完成",
            "data": {
            "image_counts": 4,
            "goods_art_no": "1234556",
            "current_time": "年月日时分秒"
            },
            "msg_type":"image_process"
            }
            

            单张照片拍照完成后-服务端响应消息

      • msg_type:

        • 为photo_take时,代表拍照已完成
        • 为photo_take_finish时,代表所有拍照任务已完成
      • data参数释义:

        • image_counts : 执行拍照任务的数量,可理解为照片张数
        • goods_art_no : 货号
        • current_time : 当前时间
      • msg 消息提示

        响应示例-单个任务拍照成功(前端需要刷新列表)

        {
        "code": 0,
        "msg": "拍鞋底 执行完成~",
        "status": 2,
        "data": null,
        "msg_type":"photo_take"
        }
        

        响应示例-单个任务拍照失败

        {
        "code": 1,
        "msg": "拍鞋底 执行失败~",
        "status": 2,
        "data": null,
        "msg_type":"photo_take"
        }
        

        响应示例-整体任务拍照完成

        {
        "code": 1,
        "msg": "执行左脚程序 执行成功~",
        "status": 2,
        "data": null,
        "msg_type":"photo_take_finish"
        }
        

        接收遥控器扫码货号动作处理

        消息示例

        • data中的子data参数释义:
        • action:【执行左脚程序】或【执行右脚程序】
        • goods_art_no :扫描到的货号,当货号为空时代表用户未扫码,直接按遥控器的左右操作,需要前端判断用户是否在前端页面填写了货号,或者提醒用户填写货号
        • msg_type:当该字段为blue_tooth_scan时,前端可直接解析得到data数据包,将数据直接发送给socket服务端即可【执行拍摄任务】 python { "code": 0, "msg": "准备执行[左脚程序]", "status": 2, "data": { "data": { "action": "执行左脚程序", "goods_art_no": "货号信息", }, "type": "run_mcu", }, "msg_type": "blue_tooth_scan" } ### 接收遥控器点击拍照事件处理 遥控器得拍照命令需要由后端转发到前端,再由前端将消息转发给后端对应得拍照命令 当蓝牙遥控器点击拍照后,后端消息响应如下:
        • data中参数释义:

          • type:handler_take_picture 为后端单拍任务得类型
          • data :忽略
        • msg_type:当该字段为handler_take_picture时,前端可直接解析得到data数据包,将数据直接发送给socket服务端即可【执行单任务】

          消息示例

          {
          "code": 0,
          "msg": "处理单拍消息",
          "status": -1,
          "data": {
              "type": "handler_take_picture",
              "data": null
          },
          "msg_type": "handler_take_picture"
          }
          

          注:在多次按下拍照按钮时,前端需要在命令发送给后端时且拍照未完成之前处理拦截操作,否则会出现拍照任务在不断执行

          单拍任务命令

          发送-消息示例

          {
              "type": "handler_take_picture",
              "data": null
          }
          

          响应-消息示例

          注意:当前响应可能会出现失败得情况,如:用户清空了所有货号数据;用户未打开拍照软件等其他错误消息响应;前端需要判断code是否为0;去释放拦截

          • data中参数释义:
            • msg: 消息文本内容
            • data :
              • goods_art_no:货号,便于前端查询详情数据
          • msg_type:当该字段为photo_take时,代表照片已拍摄完成

            {
            "code": 0,
            "msg": "执行左脚程序 执行完成~",
            "status": 2,
            "data": {"goods_art_no": "执行货号"},
            "msg_type": "photo_take"
            }
            

            修改配置-独立操作MCU

            • data中参数释义:
            • msg: 消息文本内容
            • data :
              • camera_height:相机高度
              • after_delay:拍照后延迟
              • camera_angle:相机角度
              • led_switch:led开关;true:开;false:关
              • number_focus:对焦次数;这里因为后端不控制拍照,所以无效
              • id:固定0
              • take_picture:固定false;这里因为后端不控制拍照,所以无效
              • mode_type:模式类型;如:执行左脚程序
              • turntable_position:转盘位置
              • action_name:动作名称;如:侧视图
              • turntable_angle:转盘角度
              • shoe_upturn:是否翻转;true:翻转;false:不翻转
              • action_index:固定1
              • pre_delay:1;拍照后延迟;这里因为后端不控制拍照,所以无效
            • type:当该字段为run_mcu_single时,代表独立执行MCU设备

              请求示例
              {
              "data": {
              "camera_height": 300,
              "after_delay": 1,
              "camera_angle": 20,
              "led_switch": true,
              "number_focus": 1,
              "id": 0,
              "take_picture": false,
              "mode_type": "执行左脚程序",
              "turntable_position": 200,
              "action_name": "侧视图",
              "turntable_angle": 300,
              "shoe_upturn": false,
              "action_index": 1,
              "pre_delay": 1
              },
              "type": "run_mcu_single"
              }
              
          响应示例
          当 msg_type 为run_mcu_single时,代表独立执行MCU设备完成,前端将此命令作为完成依据
          {
              "code": 0,
              "msg": "执行完成",
              "status": 2,
              "data": null,
              "msg_type": "run_mcu_single_finish"
          }
          

          设备调平-获取

          以下操作需要连接设备且初始化

          • data:空对象或忽略,任何值无意义
          • type:当该字段为get_deviation时,代表获取调平设备信息

            请求示例
            {
            "data": {
            },
            "type": "get_deviation"
            }
            
            响应示例
            • data:
            • camera_high_motor_deviation:相机高度偏移 mm
            • camera_steering_deviation: 相机角度偏移 度
            • turntable_steering_deviation: 转盘角度偏移 度
            • overturn_steering_middle: 翻转舵机-中位角度
            • overturn_steering_high: 翻转舵机-最位角度
            • overturn_steering_up_speed: 翻转舵机-上升速度
            • overturn_steering_down_speed: 翻转舵机-下降速度
            • turntable_front_end_deviation: 转盘前后电机偏移度
            • type:当该字段为get_deviation_data时,代表成功获取到调平设备信息 python { "code": 0, "msg": "接收偏移量信息", "status": 2, "data": { "camera_high_motor_deviation": 10, "camera_steering_deviation": 0.0, "turntable_steering_deviation": 0.0, "overturn_steering_middle": 109.0, "overturn_steering_high": 150.0, "overturn_steering_up_speed": 2, "overturn_steering_down_speed": 4, "turntable_front_end_deviation":300 }, "msg_type": "get_deviation_data" }

          设备调平-设置

          以下操作需要连接设备且初始化

          • data:
            • value: 偏移量值,最好传递浮点型
            • action_name:
              • "相机电机", # min 0 max 400,步长1
              • "相机舵机", # min -40 max 40,步长0.1
              • "转盘舵机", # min -720 max 720,步长1
              • "转盘前后电机", # min 0 max 950,步长1
              • "翻板舵机中位", # min 0 max 180,步长0.5
              • "翻板舵机高位", # min 0 max 180,步长0.5
              • "翻板舵机上升速度", # min 1 max 10,步长1
              • "翻板舵机下降速度", # min 1 max 10,步长1
            • type:
              • "move" 为移动
              • "set" 为设置
          • type:

            • 当该字段为set_deviation时,代表设置调平设备信息
            • 当该字段为move_deviation时,代表移动调平设备偏移

              请求示例
              {
              "data": {
              "value": 10,
              "action_name":"相机电机",
              "type":"move"
              },
              "type": "set_deviation"
              }
              
              响应示例
              • data:忽略
              • type:
              • 当该字段为set_deviation时,代表响应调平设备设置
              • 当该字段为move_deviation时,代表响应调平设备移动

                成功状态
                {
                "code": 0,
                "msg": "相机电机 设置成功",
                "status": 2,
                "data": {},
                "msg_type": "set_deviation"
                }
                
                失败状态
                {
                "code": 1,
                "msg": "设置参数有误,请检查",
                "status": 0,
                "data": {},
                "msg_type": "set_deviation"
                }
                
              未完待续.....