diff --git a/.config b/.config
index e45f21e..7cfba4c 100644
--- a/.config
+++ b/.config
@@ -133,11 +133,11 @@ CONFIG_RT_DFS_ELM_WORD_ACCESS=y
# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set
CONFIG_RT_DFS_ELM_USE_LFN_3=y
CONFIG_RT_DFS_ELM_USE_LFN=3
-CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y
+# CONFIG_RT_DFS_ELM_LFN_UNICODE_0 is not set
# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set
-# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set
+CONFIG_RT_DFS_ELM_LFN_UNICODE_2=y
# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set
-CONFIG_RT_DFS_ELM_LFN_UNICODE=0
+CONFIG_RT_DFS_ELM_LFN_UNICODE=2
CONFIG_RT_DFS_ELM_MAX_LFN=255
CONFIG_RT_DFS_ELM_DRIVES=2
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
@@ -174,7 +174,9 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_RTC is not set
+CONFIG_RT_USING_RTC=y
+CONFIG_RT_USING_ALARM=y
+# CONFIG_RT_USING_SOFT_RTC is not set
CONFIG_RT_USING_SDIO=y
CONFIG_RT_SDIO_STACK_SIZE=1024
CONFIG_RT_SDIO_THREAD_PRIORITY=15
@@ -536,6 +538,7 @@ CONFIG_PKG_CJSON_VER="v1.7.17"
# CONFIG_PKG_USING_RVBACKTRACE is not set
# CONFIG_PKG_USING_HPATCHLITE is not set
# CONFIG_PKG_USING_THREAD_METRIC is not set
+# CONFIG_PKG_USING_UORB is not set
# end of tools packages
#
diff --git a/.cproject b/.cproject
index fb30876..ec676f4 100644
--- a/.cproject
+++ b/.cproject
@@ -1,529 +1,529 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.settings/.rtmenus b/.settings/.rtmenus
index 740e67b..c35ae97 100644
Binary files a/.settings/.rtmenus and b/.settings/.rtmenus differ
diff --git a/applications/DBSQL/DB_SQLite.c b/applications/DBSQL/DB_SQLite.c
index 0548067..8195904 100644
--- a/applications/DBSQL/DB_SQLite.c
+++ b/applications/DBSQL/DB_SQLite.c
@@ -10,24 +10,364 @@
#include
#include
#include
+#include
#include "DB_SQLite.h"
+#include "sqlite3.h"
#include
-#define DB_NAME "/rt.db"
+#define DB_NAME "/SC828.db"
+
+int db_HelperInit;
+sqlite3 **db;
+
+static const char *sql_upgrade_workorder_steps =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM WorkorderSteps; "
+ "DROP TABLE WorkorderSteps; "
+ "CREATE TABLE WorkorderSteps ("
+ "WorkOrder VARCHAR,"
+ "DYELOT VARCHAR,"
+ "ProgramID VARCHAR,"
+ "Program VARCHAR,"
+ "ReDye INT DEFAULT (0),"
+ "Mode VARCHAR,"
+ "Step INT,"
+ "StepID VARCHAR,"
+ "StepName VARCHAR,"
+ "ParameterName VARCHAR,"
+ "Parameter1 DOUBLE,"
+ "Parameter2 DOUBLE,"
+ "Parameter3 DOUBLE,"
+ "Parameter4 DOUBLE,"
+ "Parameter5 DOUBLE,"
+ "Parameter6 INT,"
+ "Parameter7 INT,"
+ "Parameter8 INT,"
+ "Parameter9 INT,"
+ "Parameter10 INT,"
+ "Remark VARCHAR,"
+ "StepTime INT,"
+ "StepID_S1 VARCHAR,"
+ "StepID_S2 VARCHAR,"
+ "StepID_S3 VARCHAR,"
+ "StepName_S1 VARCHAR,"
+ "StepName_S2 VARCHAR,"
+ "StepName_S3 VARCHAR,"
+ "Parameter1_S1 DOUBLE,"
+ "Parameter1_S2 DOUBLE,"
+ "Parameter1_S3 DOUBLE,"
+ "Parameter2_S1 DOUBLE,"
+ "Parameter2_S2 DOUBLE,"
+ "Parameter2_S3 DOUBLE,"
+ "Parameter3_S1 DOUBLE,"
+ "Parameter3_S2 DOUBLE,"
+ "Parameter3_S3 DOUBLE,"
+ "Parameter4_S1 DOUBLE,"
+ "Parameter4_S2 DOUBLE,"
+ "Parameter4_S3 DOUBLE,"
+ "Parameter5_S1 DOUBLE,"
+ "Parameter5_S2 DOUBLE,"
+ "Parameter5_S3 DOUBLE"
+ "); "
+ "INSERT INTO WorkorderSteps ("
+ "WorkOrder, DYELOT, ProgramID, Program, ReDye, Mode, Step, StepID, StepName, "
+ "ParameterName, Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, "
+ "Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Remark, StepTime, "
+ "StepID_S1, StepID_S2, StepID_S3, StepName_S1, StepName_S2, StepName_S3, "
+ "Parameter1_S1, Parameter1_S2, Parameter1_S3, Parameter2_S1, Parameter2_S2, Parameter2_S3, "
+ "Parameter3_S1, Parameter3_S2, Parameter3_S3, Parameter4_S1, Parameter4_S2, Parameter4_S3, "
+ "Parameter5_S1, Parameter5_S2, Parameter5_S3"
+ ") "
+ "SELECT "
+ "WorkOrder, DYELOT, ProgramID, Program, ReDye, Mode, Step, StepID, StepName, "
+ "ParameterName, Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, "
+ "Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Remark, StepTime, "
+ "StepID_S1, StepID_S2, StepID_S3, StepName_S1, StepName_S2, StepName_S3, "
+ "Parameter1_S1, Parameter1_S2, Parameter1_S3, Parameter2_S1, Parameter2_S2, Parameter2_S3, "
+ "Parameter3_S1, Parameter3_S2, Parameter3_S3, Parameter4_S1, Parameter4_S2, Parameter4_S3, "
+ "Parameter5_S1, Parameter5_S2, Parameter5_S3 "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_workorder_set =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM WorkOrderSet; "
+ "DROP TABLE WorkOrderSet; "
+ "CREATE TABLE WorkOrderSet ("
+ "WorkOrder VARCHAR,"
+ "ReDye INT DEFAULT (0),"
+ "PumpSpeed INT,"
+ "Blower INT,"
+ "Swing INT,"
+ "ClothWheel INT,"
+ "Nozzle INT"
+ "); "
+ "INSERT INTO WorkOrderSet ("
+ "WorkOrder, ReDye, PumpSpeed, Blower, Swing, ClothWheel, Nozzle"
+ ") "
+ "SELECT "
+ "WorkOrder, ReDye, PumpSpeed, Blower, Swing, ClothWheel, Nozzle "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_workorder =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM WorkOrder; "
+ "DROP TABLE WorkOrder; "
+ "CREATE TABLE WorkOrder ("
+ "WorkOrder VARCHAR,"
+ "Dyelot VARCHAR,"
+ "ReDye INT DEFAULT (0),"
+ "ProgramName VARCHAR,"
+ "StartTime DATETIME,"
+ "EndTime DATETIME,"
+ "Time TEXT,"
+ "lock INT,"
+ "State INT,"
+ "ProgramID VARCHAR,"
+ "Machines VARCHAR,"
+ "color VARCHAR,"
+ "ColorNumber VARCHAR,"
+ "Client VARCHAR,"
+ "ClothWeight VARCHAR,"
+ "ClothSpecies VARCHAR,"
+ "BathRatio VARCHAR,"
+ "Total VARCHAR,"
+ "USER VARCHAR,"
+ "ColorName VARCHAR,"
+ "Remark TEXT"
+ "); "
+ "INSERT INTO WorkOrder ("
+ "WorkOrder, Dyelot, ReDye, ProgramName, StartTime, EndTime, Time, "
+ "lock, State, ProgramID, Machines, color, ColorNumber, Client, "
+ "ClothWeight, ClothSpecies, BathRatio, Total, USER, ColorName, Remark"
+ ") "
+ "SELECT "
+ "WorkOrder, Dyelot, ReDye, ProgramName, StartTime, EndTime, Time, "
+ "lock, State, ProgramID, Machines, color, ColorNumber, Client, "
+ "ClothWeight, ClothSpecies, BathRatio, Total, USER, ColorName, Remark "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_run_table =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM RUN; "
+ "DROP TABLE RUN; "
+ "CREATE TABLE RUN ("
+ "WorkOrder VARCHAR,"
+ "DYELOT VARCHAR,"
+ "ReDye INT DEFAULT (0),"
+ "RUN INT,"
+ "Mode VARCHAR,"
+ "ProgramID VARCHAR,"
+ "Program VARCHAR,"
+ "StepID VARCHAR,"
+ "Step INT,"
+ "StepName VARCHAR,"
+ "ParameterName VARCHAR,"
+ "Parameter1 DOUBLE,"
+ "Parameter2 DOUBLE,"
+ "Parameter3 DOUBLE,"
+ "Parameter4 DOUBLE,"
+ "Parameter5 DOUBLE,"
+ "Parameter6 INT,"
+ "Parameter7 INT,"
+ "Parameter8 INT,"
+ "Parameter9 INT,"
+ "Parameter10 INT,"
+ "Remark VARCHAR,"
+ "StepTime INT,"
+ "StepID_S1 VARCHAR,"
+ "StepID_S2 VARCHAR,"
+ "StepID_S3 VARCHAR,"
+ "StepName_S1 VARCHAR,"
+ "StepName_S2 VARCHAR,"
+ "StepName_S3 VARCHAR,"
+ "Parameter1_S1 DOUBLE,"
+ "Parameter1_S2 DOUBLE,"
+ "Parameter1_S3 DOUBLE,"
+ "Parameter2_S1 DOUBLE,"
+ "Parameter2_S2 DOUBLE,"
+ "Parameter2_S3 DOUBLE,"
+ "Parameter3_S1 DOUBLE,"
+ "Parameter3_S2 DOUBLE,"
+ "Parameter3_S3 DOUBLE,"
+ "Parameter4_S1 DOUBLE,"
+ "Parameter4_S2 DOUBLE,"
+ "Parameter4_S3 DOUBLE,"
+ "Parameter5_S1 DOUBLE,"
+ "Parameter5_S2 DOUBLE,"
+ "Parameter5_S3 DOUBLE"
+ "); "
+ "INSERT INTO RUN ("
+ "WorkOrder, DYELOT, ReDye, RUN, Mode, ProgramID, Program, "
+ "StepID, Step, StepName, ParameterName, "
+ "Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, "
+ "Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, "
+ "Remark, StepTime, "
+ "StepID_S1, StepID_S2, StepID_S3, "
+ "StepName_S1, StepName_S2, StepName_S3, "
+ "Parameter1_S1, Parameter1_S2, Parameter1_S3, "
+ "Parameter2_S1, Parameter2_S2, Parameter2_S3, "
+ "Parameter3_S1, Parameter3_S2, Parameter3_S3, "
+ "Parameter4_S1, Parameter4_S2, Parameter4_S3, "
+ "Parameter5_S1, Parameter5_S2, Parameter5_S3"
+ ") "
+ "SELECT "
+ "WorkOrder, DYELOT, ReDye, RUN, Mode, ProgramID, Program, "
+ "StepID, Step, StepName, ParameterName, "
+ "Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, "
+ "Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, "
+ "Remark, StepTime, "
+ "StepID_S1, StepID_S2, StepID_S3, "
+ "StepName_S1, StepName_S2, StepName_S3, "
+ "Parameter1_S1, Parameter1_S2, Parameter1_S3, "
+ "Parameter2_S1, Parameter2_S2, Parameter2_S3, "
+ "Parameter3_S1, Parameter3_S2, Parameter3_S3, "
+ "Parameter4_S1, Parameter4_S2, Parameter4_S3, "
+ "Parameter5_S1, Parameter5_S2, Parameter5_S3 "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_dyelot_table =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM Dyelot; "
+ "DROP TABLE Dyelot; "
+ "CREATE TABLE Dyelot ("
+ "WorkOrder VARCHAR,"
+ "Dyelot VARCHAR,"
+ "ReDye INT,"
+ "Machine VARCHAR,"
+ "Step INT,"
+ "Tank INT,"
+ "State INT,"
+ "ProductCode VARCHAR,"
+ "ProductName VARCHAR,"
+ "ProductType INT,"
+ "Grams FLOAT,"
+ "Amount FLOAT,"
+ "CALL_TIME VARCHAR,"
+ "DispenseEndTime VARCHAR,"
+ "Type INT"
+ "); "
+ "INSERT INTO Dyelot ("
+ "WorkOrder, Dyelot, ReDye, Machine, Step, Tank, State, "
+ "ProductCode, ProductName, ProductType, Grams, Amount, "
+ "CALL_TIME, DispenseEndTime, Type"
+ ") "
+ "SELECT "
+ "WorkOrder, Dyelot, Redye, Machine, Step, Tank, State, "
+ "ProductCode, ProductName, ProductType, Grams, Amount, "
+ "CALL_TIME, DispenseEndTime, Type "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_iolog_table =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM IOLog; "
+ "DROP TABLE IOLog; "
+ "CREATE TABLE IOLog ("
+ "ID VARCHAR,"
+ "IOName VARCHAR,"
+ "type VARCHAR,"
+ "Value DOUBLE DEFAULT (0),"
+ "DIO BOOLEAN,"
+ "AIO INTEGER DEFAULT (0),"
+ "PLC VARCHAR"
+ "); "
+ "INSERT INTO IOLog ("
+ "ID, IOName, type, Value, DIO, AIO, PLC"
+ ") "
+ "SELECT "
+ "ID, IOName, type, Value, DIO, AIO, PLC "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
+
+static const char *sql_upgrade_chart_table =
+ "PRAGMA foreign_keys = OFF; "
+ "BEGIN TRANSACTION; "
+ "CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM Chart; "
+ "DROP TABLE Chart; "
+ "CREATE TABLE Chart ("
+ "WorkOrder VARCHAR,"
+ "DYELOT VARCHAR,"
+ "ReDye INT,"
+ "Name VARCHAR,"
+ "Time VARCHAR,"
+ "MTT DOUBLE DEFAULT (0),"
+ "MTL DOUBLE DEFAULT (0),"
+ "STTA DOUBLE DEFAULT (0),"
+ "STLA DOUBLE DEFAULT (0),"
+ "STTB DOUBLE DEFAULT (0),"
+ "STLB DOUBLE DEFAULT (0),"
+ "STTC DOUBLE DEFAULT (0),"
+ "STLC DOUBLE DEFAULT (0),"
+ "MTH DOUBLE DEFAULT (0),"
+ "MST DOUBLE DEFAULT (0),"
+ "MSL DOUBLE DEFAULT (0),"
+ "MUT DOUBLE DEFAULT (0)"
+ "); "
+ "INSERT INTO Chart ("
+ "WorkOrder, DYELOT, ReDye, Name, Time, "
+ "MTT, MTL, STTA, STLA, STTB, STLB, STTC, STLC, "
+ "MTH, MST, MSL, MUT"
+ ") "
+ "SELECT WorkOrder, DYELOT, COALESCE(ReDye, 0), Name, Time, "
+ "MTT, MTL, STTA, STLA, STTB, STLB, STTC, STLC, "
+ "MTH, MST, MSL, MUT "
+ "FROM sqlitestudio_temp_table; "
+ "DROP TABLE sqlitestudio_temp_table; "
+ "CREATE UNIQUE INDEX IF NOT EXISTS idx_chart_time_desc ON Chart (Time DESC); "
+ "PRAGMA foreign_keys = ON; "
+ "COMMIT;";
void db_sqlite(void *parameter)
{
- int db_HelperInit;
- int db_;
+ if (access(DB_NAME, F_OK) == 0)
+ {
+ rt_kprintf("DB ok\n");
+ sqlite3_open(DB_NAME, db);
+ }else{
+ rt_kprintf("DB no \n");
+ sqlite3_open(DB_NAME, db);
+ //创建表
+ sqlite3_exec(db, sql_upgrade_workorder_steps, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_workorder_set, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_workorder, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_run_table, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_dyelot_table, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_iolog_table, NULL, NULL, NULL);
+ sqlite3_exec(db, sql_upgrade_chart_table, NULL, NULL, NULL);
+ }
+
- db_HelperInit = db_helper_init();
+ // db_HelperInit = db_helper_init();
- if(db_HelperInit =RT_EOK){
- rt_kprintf("HelperInit database\n");
- }else {
+ // if(db_HelperInit =RT_EOK){
+ // rt_kprintf("HelperInit database\n");
+ // }else {
+ // sqlite3_open(DB_NAME, db);
// db_ = db_create_database("CREATE TABLE student(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(32) NOT NULL,score INT NOT NULL);");
// if(db_=0){rt_kprintf("database ok\n");}else{rt_kprintf("database no\n");}
- }
+ // }
/* int fd = 0;
const char *dbname = db_get_name();
@@ -57,7 +397,7 @@ void thread_DB_SQLite(void)
{
/* 初始化线程 1,名称是 thread1,入口是 thread1_entry*/
rt_thread_t tid;
- tid = rt_thread_create("db_sqlite", db_sqlite, RT_NULL, 1024*32, 3, 10);
+ tid = rt_thread_create("db_sqlite", db_sqlite, RT_NULL, 1024*64, 3, 10);
if (tid != RT_NULL)
{
diff --git a/applications/main.c b/applications/main.c
index a8a5478..6cf955a 100644
--- a/applications/main.c
+++ b/applications/main.c
@@ -29,6 +29,7 @@ int main(void)
thread_RUN_LED();//运行指示灯线程
thread_DB_SQLite();
+
start_uart_thread();
data_comm_init();
diff --git a/rt-thread/components/dfs/filesystems/elmfat/dfs_elm.c b/rt-thread/components/dfs/filesystems/elmfat/dfs_elm.c
index eb57034..d862cd3 100644
--- a/rt-thread/components/dfs/filesystems/elmfat/dfs_elm.c
+++ b/rt-thread/components/dfs/filesystems/elmfat/dfs_elm.c
@@ -863,7 +863,7 @@ DSTATUS disk_status(BYTE drv)
}
/* Read Sector(s) */
-DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, UINT count)
+/*DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, UINT count)
{
rt_size_t result;
rt_device_t device = disk[drv];
@@ -875,10 +875,22 @@ DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, UINT count)
}
return RES_ERROR;
-}
+}*/
+DRESULT disk_read(BYTE drv, BYTE *buff, LBA_t sector, UINT count)
+{
+ rt_size_t result;
+ rt_device_t device = disk[drv];
+ result = rt_device_read(device, sector, buff, count);
+ if (result == count)
+ {
+ return RES_OK;
+ }
+
+ return RES_ERROR;
+}
/* Write Sector(s) */
-DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
+/*DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
{
rt_size_t result;
rt_device_t device = disk[drv];
@@ -890,6 +902,19 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
}
return RES_ERROR;
+}*/
+DRESULT disk_write(BYTE drv, const BYTE *buff, LBA_t sector, UINT count)
+{
+ rt_size_t result;
+ rt_device_t device = disk[drv];
+
+ result = rt_device_write(device, sector, buff, count);
+ if (result == count)
+ {
+ return RES_OK;
+ }
+
+ return RES_ERROR;
}
/* Miscellaneous Functions */
diff --git a/rt-thread/components/dfs/filesystems/elmfat/ffconf.h b/rt-thread/components/dfs/filesystems/elmfat/ffconf.h
index d028648..0a72331 100644
--- a/rt-thread/components/dfs/filesystems/elmfat/ffconf.h
+++ b/rt-thread/components/dfs/filesystems/elmfat/ffconf.h
@@ -233,7 +233,7 @@
/ GET_SECTOR_SIZE command. */
-#define FF_LBA64 0
+#define FF_LBA64 1
/* This option switches support for 64-bit LBA. (0:Disable or 1:Enable)
/ To enable the 64-bit LBA, also exFAT needs to be enabled. (FF_FS_EXFAT == 1) */
@@ -259,7 +259,7 @@
/ At the tiny configuration, size of file object (FIL) is shrinked FF_MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the filesystem object (FATFS) is used for the file data transfer. */
-
+#define RT_DFS_ELM_USE_EXFAT//exfat支持
#ifdef RT_DFS_ELM_USE_EXFAT
#define FF_FS_EXFAT 1
#else
diff --git a/rtconfig.h b/rtconfig.h
index d7332ff..6db0f28 100644
--- a/rtconfig.h
+++ b/rtconfig.h
@@ -91,8 +91,8 @@
#define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_3
#define RT_DFS_ELM_USE_LFN 3
-#define RT_DFS_ELM_LFN_UNICODE_0
-#define RT_DFS_ELM_LFN_UNICODE 0
+#define RT_DFS_ELM_LFN_UNICODE_2
+#define RT_DFS_ELM_LFN_UNICODE 2
#define RT_DFS_ELM_MAX_LFN 255
#define RT_DFS_ELM_DRIVES 2
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
@@ -109,6 +109,8 @@
#define RT_SERIAL_USING_DMA
#define RT_SERIAL_RB_BUFSZ 64
#define RT_USING_PIN
+#define RT_USING_RTC
+#define RT_USING_ALARM
#define RT_USING_SDIO
#define RT_SDIO_STACK_SIZE 1024
#define RT_SDIO_THREAD_PRIORITY 15