# 1，功能描述
    调度负责配合plc, 执行存车取车的指令

    维护数据库
        commmand_queue              指令表
        space                       车位表
        vehicle                     车辆表
    接受rabbitmq 状态信息
        in_mcpu_N_statu_port        入口单片机
        out_mcpu_N_statu_port       出口单片机
        measure_N_statu_port        感测雷达
    发送rabbitmq 状态信息
        dispatch_N_statu_port       调度


# 2，流程介绍：
a,  周期性 查询数据库 command_queue 指令表
    如果有状态为0(排队中)的指令, 选取最优解,
    并执行
b1, 存车指令, 查询 space表, 找到合适的空闲车位, 并写入车牌号 表示占有该车位
    将车位信息 填充到 command_queue 指令表, 并将状态改为1(工作中)
    生成 park_table 存车表单 交给 plc执行
    plc执行完成后, 清除存车指令 command_queue, 并保存车辆信息到 vehicle
b2, 取车指令, 查询 vehicle表, 找到之前保存的感测信息, 查询空闲出口id
    将感测信息和出口id 填充到 command_queue 指令表, 并将状态改为1(工作中)
    生成 pick_table 取车表单 交给 plc执行
    plc执行完成后, 修改 command_queue表, 指令状态写2 ,
    清除 车辆信息到 vehicle, 清除车位信息 space,


# 3，使用平台：
    linux x64 / linux-arm
# 4，业务逻辑
# 5，编译
    cd xxx/plc调度节点
    ./proto.sh
    mkdir ./build
    cd ./build
    cmake ..
    make
# 6，运行
    指定运行调度单元
    cd xxx/plc调度节点/build
    开3个终端界面
    ./terminal 0
    ./terminal 1
    ./terminal 2

    一键运行所有单元
    cd xxx/plc调度节点
    ./run_dispatch.sh

# 7，部署
    依赖三方库
    rabbitmq
    protobuf
    mysql cpp connect 1.1
    glog
    gflag
    snap7