创建QT5项目,添加diag.dll库,替换原来的libwireless.dll
authorSnickerSun <snickersun@163.com>
Fri, 15 Mar 2024 02:46:54 +0000 (10:46 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 15 Mar 2024 02:46:54 +0000 (10:46 +0800)
15 files changed:
Library_global.h [new file with mode: 0644]
factory_tool.pro [new file with mode: 0644]
header.h [new file with mode: 0644]
info.h [new file with mode: 0644]
interface.h [new file with mode: 0644]
lib/advapi32.dll [new file with mode: 0644]
lib/diag.dll [new file with mode: 0644]
lib/diag.lib [new file with mode: 0644]
lib/libsecurec.a [new file with mode: 0644]
mainwindow.cpp
result_thread.cpp
result_thread.h
src/header.h [deleted file]
uapi_main.h [new file with mode: 0644]
wrtm_class.cpp [new file with mode: 0644]

diff --git a/Library_global.h b/Library_global.h
new file mode 100644 (file)
index 0000000..b110ebe
--- /dev/null
@@ -0,0 +1,71 @@
+/*\r
+ * Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.\r
+ */\r
+#ifndef LIBRARY_GLOBAL_H\r
+#define LIBRARY_GLOBAL_H\r
+\r
+#if defined(_MSC_VER) || defined(WIN64) || defined(_WIN64) || defined(__WIN64__) || defined(WIN32) || \\r
+    defined(_WIN32) || defined(__WIN32__) || defined(__NT__)\r
+\r
+#define Q_DECL_EXPORT __declspec(dllexport)\r
+#define Q_DECL_IMPORT __declspec(dllimport)\r
+#else\r
+#define Q_DECL_EXPORT __attribute__((visibility("default")))\r
+#define Q_DECL_IMPORT __attribute__((visibility("default")))\r
+#endif\r
+\r
+#if defined(LIBRARY_LIBRARY)\r
+#define LIBRARY_EXPORT Q_DECL_EXPORT\r
+#else\r
+#define LIBRARY_EXPORT Q_DECL_IMPORT\r
+#endif\r
+\r
+namespace uapi {\r
+struct FileInfo {\r
+    unsigned short sn;\r
+    unsigned char name_len;\r
+    unsigned char is_dir;\r
+    unsigned int file_size;\r
+    char name[0xFF];\r
+};\r
+\r
+struct FileListResult {\r
+    unsigned int lsInfoNumber;\r
+    FileInfo lsInfo[0];\r
+};\r
+\r
+struct FileTransmitDataCount {\r
+    unsigned int total_size;\r
+    unsigned int transmited_size;\r
+};\r
+\r
+struct TransmitResult {\r
+    bool finishResult;\r
+};\r
+\r
+struct AtReceiveData {\r
+    unsigned int dataLength;\r
+    unsigned char *data;\r
+};\r
+\r
+struct SerialPortReceiveData {\r
+    unsigned int dataLength;\r
+    unsigned char *data;\r
+};\r
+enum InfoType {\r
+    INFO_SERIALPORT, // 单板段数据\r
+    INFO_FILE_TRANSMIT_RESULT,\r
+    INFO_FILE_LIST_RESULT,\r
+    INFO_AT_RECEIVE,\r
+};\r
+enum ConnectMode {\r
+    MODE_SERIALPORT,\r
+    MODE_BLUETOOTH\r
+};\r
+enum  ErrorCode{\r
+    ERROR_FAIL = -1,\r
+    ERROR_SUCC = 0x0,\r
+};\r
+}\r
+\r
+#endif // LIBRARY_GLOBAL_H\r
diff --git a/factory_tool.pro b/factory_tool.pro
new file mode 100644 (file)
index 0000000..a3cfb75
--- /dev/null
@@ -0,0 +1,51 @@
+#-------------------------------------------------\r
+#\r
+# Project created by QtCreator 2024-03-04T16:59:50\r
+#\r
+#-------------------------------------------------\r
+\r
+QT       += core gui\r
+\r
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets\r
+\r
+TARGET = factory_tool\r
+TEMPLATE = app\r
+\r
+\r
+SOURCES += main.cpp\\r
+        mainwindow.cpp \\r
+    at_data.cpp \\r
+    custom.cpp \\r
+    mythread.cpp \\r
+    result_thread.cpp \\r
+    wrtm_class.cpp\r
+\r
+HEADERS  += mainwindow.h \\r
+    Library_global.h \\r
+    at_data.h \\r
+    common.h \\r
+    custom.h \\r
+    info.h \\r
+    interface.h \\r
+    mythread.h \\r
+    result_thread.h \\r
+    header.h\r
+\r
+FORMS    += mainwindow.ui\r
+\r
+DISTFILES += \\r
+    readme.txt \\r
+    untitled_zh_CN.ts\r
+\r
+INCLUDEPATH += $$PWD/.\r
+DEPENDPATH += $$PWD/.\r
+\r
+\r
+LIBS += -L$$PWD/lib/\r
+LIBS += libsecurec.a\r
+LIBS += -ldiag\r
+LIBS += -lAdvapi32\r
+\r
+\r
+INCLUDEPATH += $$PWD/lib\r
+DEPENDPATH += $$PWD/lib\r
diff --git a/header.h b/header.h
new file mode 100644 (file)
index 0000000..1e240a8
--- /dev/null
+++ b/header.h
@@ -0,0 +1,49 @@
+#ifndef HEADER_H\r
+#define HEADER_H\r
+#include <stdint.h>\r
+\r
+//#ifdef __cplusplus\r
+//extern "C" {\r
+//#endif\r
+/*-----------------------业务处理-------------------------------*/\r
+typedef enum {\r
+    FAIL = 0x0,\r
+    SUCC = 0x1,\r
+} uapi_errcode;\r
+\r
+typedef struct {\r
+    uint32_t total_size; // 当前传输文件总大小\r
+    uint32_t transmited_size; // 当前文件已传输大小\r
+} uapi_transmit_progress;\r
+\r
+typedef struct {\r
+    uint16_t sn; // 序号\r
+    uint8_t name_len; // 文件(夹)名长度\r
+    uint8_t is_dir; // 是否是文件夹\r
+    uint32_t file_size; // 文件大小\r
+    uint8_t name[0xFF]; // 文件(夹)名\r
+} uapi_ls_info_t;\r
+\r
+typedef uint32_t (*uart_rx_function)(void *buf, uint32_t len); //  uart RX 回调函数\r
+typedef uint32_t (*at_result_callback)(void *buf, uint32_t len); // AT 命令返回值回调函数,入参buf包括 mould_id + cmd_id + payload\r
+typedef uint32_t (*transmit_ls_result)(uint32_t size, uapi_ls_info_t *buff); // transmit get list回调函数,入参 size 为文件(夹)的数量,buff 为文件(夹)的信息\r
+typedef uint32_t (*transmit_result_hook)(bool is_finished, uintptr_t usr_data); // 传输结果回调函数,is_finished 为传输结束标志,usr_data 预留接口,目前为NULL\r
+\r
+uapi_errcode uapi_uart_open(const char *com,  uint32_t baud); // 打开uart口, com 格式为 "\\\\.\\COM47", baud 为波特率\r
+uapi_errcode uapi_uart_tx_data(void *buf, uint32_t buf_len); // uart TX 发送数据buf\r
+uapi_errcode uapi_uart_set_rts_dtr(int rts_flag, int dtr_flag); // uart 设置rts和dtr开关\r
+uapi_errcode uapi_uart_callback_register(uart_rx_function callback); // uart 注册回调函数\r
+uapi_errcode uapi_uart_close(void); // 关闭uart口\r
+\r
+uapi_errcode uapi_at_send(uint8_t module_id, uint8_t cmd_id, uint8_t *pkt, uint32_t pkt_size, at_result_callback callback); // at命令发送接口,module_id及cmd_id请参考《Sparta 产线 测试指南》10.2章\r
+uapi_errcode uapi_file_download(char* board_file_path, char* local_file_path, transmit_result_hook handler); // 文件下载接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件夹),传输结果回调函数\r
+uapi_errcode uapi_file_upload(char* board_file_path,char* local_file_path, transmit_result_hook handler); // 文件上传接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件后缀),传输结果回调函数\r
+uapi_errcode uapi_ls_send(char *path, uint32_t path_len, transmit_ls_result callback); // 查询文件列表接口,参数为板端文件路径(详细到文件夹),路径长度,get list回调函数\r
+uapi_errcode uapi_file_delete(char *board_file_path, uint32_t board_file_path_len); // 删除指定文件接口,参数为板端文件地址(详细到文件后缀),文件路径长度\r
+uapi_errcode uapi_file_transmit_stop(void); // 停止文件下载接口\r
+uapi_errcode uapi_transmit_process(uapi_transmit_progress *data); // 获取文件传输进度,入参 data 更新为正在传输的文件的总大小和已传输大小\r
+\r
+//#ifdef __cplusplus\r
+//}\r
+//#endif\r
+#endif\r
diff --git a/info.h b/info.h
new file mode 100644 (file)
index 0000000..d1152e3
--- /dev/null
+++ b/info.h
@@ -0,0 +1,14 @@
+/*\r
+ * Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.\r
+ */\r
+#ifndef INFO_H\r
+#define INFO_H\r
+\r
+namespace uapi {\r
+class Info {\r
+public:\r
+    virtual ~Info() {};\r
+    virtual void onReadEvent(int eventType, void *data) = 0;\r
+};\r
+}\r
+#endif // INFO_H\r
diff --git a/interface.h b/interface.h
new file mode 100644 (file)
index 0000000..404bc43
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef INTERFACE_H\r
+#define INTERFACE_H\r
+#include "info.h"\r
+#include "Library_global.h"\r
+\r
+class Application;\r
+\r
+class LIBRARY_EXPORT Interface\r
+{\r
+public:\r
+    Interface();\r
+    ~Interface();\r
+    int SerialPortInit(int byteSize, int parity, int stopBits);\r
+    int SerialPortSetRtsDtr(bool rtsFlag, bool DtrFlag);\r
+    int SerialPortOpen(const char *portName,int baud);\r
+    int SerialPortClose(void);\r
+    int SerialPortWrite(const unsigned char *data,unsigned int len);\r
+    int FileDownload(const char *boardFilePath, const char *localFilePath);\r
+    int FileGetList(const char *boardPath, unsigned int boardPathLen);\r
+    int FileUpload(const char *boardFilePath, char *localFilePath); // boardFilePath包含文件名+后缀\r
+    int FileDelete(const char *boardFilePath, unsigned int boardFilePathLen);\r
+    int FileTransmitStop(void);\r
+    int FileTransmitProgress(uapi::FileTransmitDataCount *data); // 获取文件总大小和已传输大小到data中\r
+    int AtMessageSend(unsigned char moduleId, unsigned char cmdId, const unsigned char *data, unsigned int dataLen);\r
+    int InfoEventConnect(uapi::Info *event); // 连接读取事件,返回event type和data\r
+    int SetCurrentMode(uapi::ConnectMode mode); // 设置当前连接类型(单板段or整机段)\r
+private:\r
+    Application *applicationHandle;\r
+};\r
+\r
+#endif // INTERFACE_H\r
diff --git a/lib/advapi32.dll b/lib/advapi32.dll
new file mode 100644 (file)
index 0000000..e3234fc
Binary files /dev/null and b/lib/advapi32.dll differ
diff --git a/lib/diag.dll b/lib/diag.dll
new file mode 100644 (file)
index 0000000..94d923f
Binary files /dev/null and b/lib/diag.dll differ
diff --git a/lib/diag.lib b/lib/diag.lib
new file mode 100644 (file)
index 0000000..ea31049
Binary files /dev/null and b/lib/diag.lib differ
diff --git a/lib/libsecurec.a b/lib/libsecurec.a
new file mode 100644 (file)
index 0000000..94ff990
Binary files /dev/null and b/lib/libsecurec.a differ
index 960ba57..3b0cacc 100644 (file)
@@ -220,7 +220,7 @@ void MainWindow::uart_open(QString com,QString com_baud)
        }\r
     } else {\r
 //            ui_display("open uart fail.\r\n",false,false);\r
-            QMessageBox::warning(this, tr("串口"), tr("打开串口失败!"), QMessageBox::Ok);\r
+            QMessageBox::warning(this, tr("SerialPort"), tr("Open SerialPort failed"), QMessageBox::Ok);\r
             ui->pbtn_open_uart->setChecked(false);\r
     }\r
 }\r
@@ -349,7 +349,7 @@ QString MainWindow::uart_get_comm_or_port(int nIndex, bool bValue)
     QString strCommRet = QObject::tr("");\r
     HKEY hKey;\r
     if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"), 0, KEY_READ, &hKey) != 0) {\r
-        QMessageBox::warning(this, tr("注册表"), tr("无法打开注册表!"), QMessageBox::Ok);\r
+        QMessageBox::warning(this, tr("Register"), tr("can't open register"),QMessageBox::Ok);\r
         return QObject::tr(""); // 无法打开注册表\r
     }\r
     QString strKeyMsg;   // 键名\r
@@ -359,6 +359,8 @@ QString MainWindow::uart_get_comm_or_port(int nIndex, bool bValue)
     ulong nKeySize = sizeof(portName);\r
     ulong nValueSize = sizeof(commName);\r
     ulong nType;\r
+    memset(commName,0,sizeof(commName));\r
+    memset(portName,0,sizeof(portName));\r
     if (::RegEnumValue(hKey, nIndex, portName, &nKeySize, 0, &nType, (BYTE *)commName, &nValueSize) == 0) { // 列举键名\r
         // 读取键名\r
         for (uint i = 0; i < nKeySize; i++) {\r
@@ -560,7 +562,7 @@ void MainWindow::transmit_fromboard_download()
     }\r
     qDebug()<<ui->cbox_fromborad_filelist->currentData().toInt();\r
     if(ui->cbox_fromborad_filelist->currentData().toInt()==0){\r
-        QMessageBox::warning(this, tr("Board File Name"), tr("文件大小为0!"), QMessageBox::Ok);\r
+        QMessageBox::warning(this, tr("Board File Name"), tr("filesize 0"), QMessageBox::Ok);\r
         return;\r
     }\r
     if(!str_file_path.endsWith("/")){\r
@@ -635,7 +637,7 @@ void MainWindow::transmit_toboard_upload()
     QString board_file_path = ui->ledit_toboard_boardpath->text();\r
     QString local_file_path = ui->ledit_toboard_filepath->text();\r
     if (board_file_path.isEmpty() || local_file_path.isEmpty()) {\r
-        QMessageBox::warning(this, tr("File Path"), tr("文件路径为空!"), QMessageBox::Ok);\r
+        QMessageBox::warning(this, tr("File Path"), tr("File Path Empty!"), QMessageBox::Ok);\r
         return;\r
     }\r
     char *buf_board_file_path = (char *)board_file_path.toStdString().c_str();\r
index 30a8ca3..57db951 100644 (file)
@@ -58,7 +58,7 @@ uint32_t uart_callback(void *buf, uint32_t buf_len)
     return 0;\r
 }\r
 \r
-uint32_t ls_callback(uint32_t size, void *buff)\r
+uint32_t ls_callback(uint32_t size, uapi_ls_info_t *buff)\r
 {\r
     g_result_info.transmit_ls_buff = (uapi_ls_info_t *)malloc(size * sizeof(uapi_ls_info_t)+1);\r
     memcpy_s(g_result_info.transmit_ls_buff, size * sizeof(uapi_ls_info_t), (uapi_ls_info_t *)buff, size * sizeof(uapi_ls_info_t));\r
index 5a1671d..acb41a5 100644 (file)
@@ -51,7 +51,7 @@ private:
 };\r
 \r
 uint32_t uart_callback(void *buf, uint32_t buf_len);\r
-uint32_t ls_callback(uint32_t size, void *buff);\r
+uint32_t ls_callback(uint32_t size, uapi_ls_info_t *buff);\r
 uint32_t transmit_callback(bool is_finished, uintptr_t usr_data);\r
 uint32_t at_callback(void *buf, uint32_t len);\r
 void transmit_get_data_count(uint32_t *total_size, uint32_t *current_size);\r
diff --git a/src/header.h b/src/header.h
deleted file mode 100644 (file)
index f49da08..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef HEADER_H\r
-#define HEADER_H\r
-#include <stdint.h>\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-/*-----------------------业务处理-------------------------------*/\r
-typedef struct {\r
-    uint32_t total_size;\r
-    uint32_t transmited_size;\r
-} uapi_transmit_progress;\r
-\r
-typedef enum {\r
-    FAIL = 0x0,\r
-    SUCC = 0x1,\r
-} uapi_errcode;\r
-\r
-typedef struct {\r
-    uint16_t sn;\r
-    uint8_t name_len;\r
-    uint8_t is_dir;\r
-    uint32_t file_size;\r
-    uint8_t name[0xFF];\r
-} uapi_ls_info_t;\r
-\r
-\r
-\r
-typedef uint32_t (*uart_rx_function)(void *buf, uint32_t len);\r
-typedef uint32_t (*at_result_callback)(void *buf, uint32_t len);\r
-typedef uint32_t (*transmit_ls_result)(uint32_t size,void *buff);\r
-typedef uint32_t (*transmit_result_hook)(bool is_finished, uintptr_t usr_data);\r
-\r
-\r
-uapi_errcode uapi_at_send(uint8_t module_id, uint8_t cmd_id, uint8_t *pkt, uint32_t pkt_size,at_result_callback callback);\r
-uapi_errcode uapi_file_download(char* board_file_path,char* local_file_path,transmit_result_hook handler);\r
-uapi_errcode uapi_file_upload(char* board_file_path,char* local_file_path,transmit_result_hook handler);\r
-uapi_errcode uapi_ls_send(char *path, uint32_t path_len,transmit_ls_result callback); // ls\r
-uapi_errcode uapi_file_delete(char *board_file_path, uint32_t board_file_path_len);\r
-uapi_errcode uapi_file_transmit_stop(void);\r
-uapi_errcode uapi_transmit_process(uapi_transmit_progress *data);\r
-/*----------------------------------------------------------*/\r
-uapi_errcode uapi_uart_open(const char *com,  uint32_t baud);\r
-uapi_errcode uapi_uart_tx_data(void *buf, uint32_t buf_len);\r
-uapi_errcode uapi_uart_callback_register(uart_rx_function callback);\r
-uapi_errcode uapi_uart_close(void);\r
-uapi_errcode uapi_uart_set_rts_dtr(int rts_flag, int dtr_flag);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
diff --git a/uapi_main.h b/uapi_main.h
new file mode 100644 (file)
index 0000000..fc584ac
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef UAPI_MAIN_H
+#define UAPI_MAIN_H
+
+typedef enum {
+    FAIL = 0x0,
+    SUCC = 0x1,
+} uapi_errcode;
+
+typedef struct {
+    uint32_t total_size; // 当前传输文件总大小
+    uint32_t transmited_size; // 当前文件已传输大小
+} uapi_transmit_progress;
+
+typedef struct {
+    uint16_t sn; // 序号
+    uint8_t name_len; // 文件(夹)名长度
+    uint8_t is_dir; // 是否是文件夹
+    uint32_t file_size; // 文件大小
+    uint8_t name[0xFF]; // 文件(夹)名
+} uapi_ls_info_t;
+
+typedef uint32_t (*uart_rx_function)(void *buf, uint32_t len); //  uart RX 回调函数
+typedef uint32_t (*at_result_callback)(void *buf, uint32_t len); // AT 命令返回值回调函数,入参buf包括 mould_id + cmd_id + payload
+typedef uint32_t (*transmit_ls_result)(uint32_t size, uapi_ls_info_t *buff); // transmit get list回调函数,入参 size 为文件(夹)的数量,buff 为文件(夹)的信息
+typedef uint32_t (*transmit_result_hook)(bool is_finished, uintptr_t usr_data); // 传输结果回调函数,is_finished 为传输结束标志,usr_data 预留接口,目前为NULL
+
+uapi_errcode uapi_uart_open(const char *com,  uint32_t baud); // 打开uart口, com 格式为 "\\\\.\\COM47", baud 为波特率
+uapi_errcode uapi_uart_tx_data(void *buf, uint32_t buf_len); // uart TX 发送数据buf
+uapi_errcode uapi_uart_set_rts_dtr(int rts_flag, int dtr_flag); // uart 设置rts和dtr开关
+uapi_errcode uapi_uart_callback_register(uart_rx_function callback); // uart 注册回调函数
+uapi_errcode uapi_uart_close(void); // 关闭uart口
+
+uapi_errcode uapi_at_send(uint8_t module_id, uint8_t cmd_id, uint8_t *pkt, uint32_t pkt_size, at_result_callback callback); // at命令发送接口,module_id及cmd_id请参考《Sparta 产线 测试指南》10.2章
+uapi_errcode uapi_file_download(char* board_file_path, char* local_file_path, transmit_result_hook handler); // 文件下载接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件夹),传输结果回调函数
+uapi_errcode uapi_file_upload(char* board_file_path,char* local_file_path, transmit_result_hook handler); // 文件上传接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件后缀),传输结果回调函数
+uapi_errcode uapi_ls_send(char *path, uint32_t path_len, transmit_ls_result callback); // 查询文件列表接口,参数为板端文件路径(详细到文件夹),路径长度,get list回调函数
+uapi_errcode uapi_file_delete(char *board_file_path, uint32_t board_file_path_len); // 删除指定文件接口,参数为板端文件地址(详细到文件后缀),文件路径长度
+uapi_errcode uapi_file_transmit_stop(void); // 停止文件下载接口
+uapi_errcode uapi_transmit_process(uapi_transmit_progress *data); // 获取文件传输进度,入参 data 更新为正在传输的文件的总大小和已传输大小
+#endif
diff --git a/wrtm_class.cpp b/wrtm_class.cpp
new file mode 100644 (file)
index 0000000..b73a591
--- /dev/null
@@ -0,0 +1,96 @@
+#include "header.h"\r
+\r
+#include "interface.h"\r
+#include "info.h"\r
+#include "windows.h"\r
+#include "Library_global.h"\r
+using namespace std;\r
+\r
+class MyInfo : public uapi::Info\r
+{\r
+public:\r
+    MyInfo(){};\r
+    ~MyInfo(){};\r
+    void onReadEvent(int eventType, void *data) override\r
+    {\r
+        switch(eventType)\r
+        {\r
+            case uapi::INFO_SERIALPORT:\r
+\r
+                break;\r
+            case uapi::INFO_FILE_TRANSMIT_RESULT:\r
+//                uapi::TransmitResult *ptransResult = (uapi::TransmitResult*)data;\r
+//                out<<"TransmitResult = "<<ptransResult->finishResult;\r
+                break;\r
+            case uapi::INFO_FILE_LIST_RESULT:\r
+                break;\r
+            case uapi::INFO_AT_RECEIVE:\r
+                break;\r
+        }\r
+\r
+    }\r
+};\r
+static  MyInfo info;\r
+static Interface *handle= new Interface();\r
+uapi_errcode uapi_init_wrtm_class(void)\r
+{\r
+    handle->InfoEventConnect(&info);\r
+    handle->SetCurrentMode(uapi::MODE_BLUETOOTH);\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_uart_open(const char *com,  uint32_t baud) // 打开uart口, com 格式为 "\\\\.\\COM47", baud 为波特率\r
+{\r
+    return SUCC;\r
+}\r
+uapi_errcode uapi_uart_tx_data(void *buf, uint32_t buf_len) // uart TX 发送数据buf\r
+{\r
+    return SUCC;\r
+}\r
+uapi_errcode uapi_uart_set_rts_dtr(int rts_flag, int dtr_flag) // uart 设置rts和dtr开关\r
+{\r
+    return SUCC;\r
+}\r
+uapi_errcode uapi_uart_callback_register(uart_rx_function callback) // uart 注册回调函数\r
+{\r
+    return SUCC;\r
+}\r
+uapi_errcode uapi_uart_close(void)// 关闭uart口\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_at_send(uint8_t module_id, uint8_t cmd_id, uint8_t *pkt, uint32_t pkt_size, at_result_callback callback) // at命令发送接口,module_id及cmd_id请参考《Sparta 产线 测试指南》10.2章\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_file_download(char* board_file_path, char* local_file_path, transmit_result_hook handler) // 文件下载接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件夹),传输结果回调函数\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_file_upload(char* board_file_path,char* local_file_path, transmit_result_hook handler)// 文件上传接口,参数分别为板端文件地址(详细到文件后缀),pc端存储路径(详细到文件后缀),传输结果回调函数\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_ls_send(char *path, uint32_t path_len, transmit_ls_result callback)// 查询文件列表接口,参数为板端文件路径(详细到文件夹),路径长度,get list回调函数\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_file_delete(char *board_file_path, uint32_t board_file_path_len) // 删除指定文件接口,参数为板端文件地址(详细到文件后缀),文件路径长度\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_file_transmit_stop(void)// 停止文件下载接口\r
+{\r
+    return SUCC;\r
+}\r
+\r
+uapi_errcode uapi_transmit_process(uapi_transmit_progress *data) // 获取文件传输进度,入参 data 更新为正在传输的文件的总大小和已传输大小\r
+{\r
+    return SUCC;\r
+}\r