//
// Created by Mr.V on 2023/8/16.
//

#ifndef TRAIN_RFID_COMMON_H
#define TRAIN_RFID_COMMON_H
#include <QDir>
#include <QPair>
#include <QApplication>
#include <QPushButton>
#include <QSharedMemory>
#include <QTextCodec>
#include <QMessageBox>
#include <QFile>
#include <QtGui>
#include <QString>
#include "Log.h"
#include "StringUtil.h"

namespace ai_matrix {
    const QString g_config_path = "./config/config.ini";

    // --- 配置文件 ---

    struct BaseConfig {
        // com口名称
        QString comName;
        // 波特率
        int baud;
        // 股道编号
        int trackName;
        // 是否有磁钢
        bool havaMagnetSteel;
        // 磁钢顺序
        QString magnetSteelOrder;
        // 上传识别结果标志
        bool upResult;
        // 使用socket来车通讯
        bool useSocketServer;
    };

    struct InterfaceConfig {

        // 接口服务器IP
        QString httpIp;
        // 接口服务器端口
        int httpPort;
        // 获取token的方法
        QString tokenPath;
        // 上传识别结果的方法
        QString upResultPath;
        // 用户名
        QString username;
        // 密码
        QString password;
    };

    struct SServerConfig {
        // socket server IP
        QString server_ip;
        // server_port
        int server_port;
        // 识别结果延后X节上传，以等待Socket反馈火车运行方向
        int delayed_upload;
    };
    // --- 配置文件 ---

    struct TrainInfo {
        std::string carriageType;
        std::string carriageNum;
        std::string strOrder;
        std::string trainTime;
        std::string collectTime;
        std::string strRfidInfo;
    };

    struct ComeTrain {
        QString trainTime;
        bool needUpLoad;
        ComeTrain () {
            this->trainTime = "";
            this->needUpLoad = false;
        };
    };

    struct RfidInfo {
        QString rfid;
        QString rfidTime;
    };

}



#endif //TRAIN_RFID_COMMON_H
