From aaef920fcc349406edd9ff6b3e97fd2c0a12cd3f Mon Sep 17 00:00:00 2001 From: sc <2401809606@qq.com> Date: Wed, 22 Oct 2025 09:07:59 +0800 Subject: [PATCH] =?UTF-8?q?sqlite=E9=83=A8=E5=88=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 4 +- .cproject | 2 +- applications/DBSQL/DB_SQLite.c | 251 ++++++++++++--------------------- applications/main.c | 8 +- drivers/board.h | 1 - rtconfig.h | 2 - 6 files changed, 92 insertions(+), 176 deletions(-) diff --git a/.config b/.config index 7cfba4c..d82af74 100644 --- a/.config +++ b/.config @@ -174,9 +174,7 @@ 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=y -CONFIG_RT_USING_ALARM=y -# CONFIG_RT_USING_SOFT_RTC is not set +# CONFIG_RT_USING_RTC is not set CONFIG_RT_USING_SDIO=y CONFIG_RT_SDIO_STACK_SIZE=1024 CONFIG_RT_SDIO_THREAD_PRIORITY=15 diff --git a/.cproject b/.cproject index ec676f4..d37d6a3 100644 --- a/.cproject +++ b/.cproject @@ -498,7 +498,7 @@ - + diff --git a/applications/DBSQL/DB_SQLite.c b/applications/DBSQL/DB_SQLite.c index 8195904..1ecbf44 100644 --- a/applications/DBSQL/DB_SQLite.c +++ b/applications/DBSQL/DB_SQLite.c @@ -21,10 +21,10 @@ 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; " + // "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," @@ -69,34 +69,13 @@ static const char *sql_upgrade_workorder_steps = "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; " + // "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)," @@ -105,22 +84,13 @@ static const char *sql_upgrade_workorder_set = "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; " + // "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," @@ -143,26 +113,13 @@ static const char *sql_upgrade_workorder = "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; " + // "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," @@ -208,44 +165,13 @@ static const char *sql_upgrade_run_table = "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; " + // "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," @@ -262,56 +188,30 @@ static const char *sql_upgrade_dyelot_table = "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 sqlitestudio_temp_table AS SELECT * FROM IOLog; " + // "DROP TABLE IOLog; " "CREATE TABLE IOLog (" - "ID VARCHAR," - "IOName VARCHAR," - "type VARCHAR," + "ID varchar(32)," + "IOName varchar(32)," + "type varchar(32)," "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;"; + "PLC varchar(32)" + "); "; 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 sqlitestudio_temp_table AS SELECT * FROM Chart; " + // "DROP TABLE Chart; " "CREATE TABLE Chart (" - "WorkOrder VARCHAR," - "DYELOT VARCHAR," - "ReDye INT," - "Name VARCHAR," - "Time VARCHAR," + "WorkOrder varchar(32)," + "DYELOT varchar(32)," + "ReDye INTEGER ," + "Name varchar(32)," + "Time varchar(32)," "MTT DOUBLE DEFAULT (0)," "MTL DOUBLE DEFAULT (0)," "STTA DOUBLE DEFAULT (0)," @@ -324,38 +224,61 @@ static const char *sql_upgrade_chart_table = "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) { if (access(DB_NAME, F_OK) == 0) { - rt_kprintf("DB ok\n"); - sqlite3_open(DB_NAME, db); + rt_kprintf("DB open\n"); + if (db_connect(DB_NAME) == RT_EOK){ + if(db_table_is_exist("WorkorderSteps")<=0){ + if(db_create_database(sql_upgrade_workorder_steps)==0) + {rt_kprintf("WorkorderSteps Created successfully \n");}else{rt_kprintf("WorkorderSteps Creation failed \n");} + } + if(db_table_is_exist("WorkOrderSet")<=0){ + if(db_create_database(sql_upgrade_workorder_set)==0) + {rt_kprintf("WorkOrderSet Created successfully \n");}else{rt_kprintf("WorkOrderSet Creation failed \n");} + } + if(db_table_is_exist("WorkOrder")<=0){ + if(db_create_database(sql_upgrade_workorder)==0) + {rt_kprintf("WorkOrder Created successfully \n");}else{rt_kprintf("WorkOrder Creation failed \n");} + } + if(db_table_is_exist("RUN")<=0){ + if(db_create_database(sql_upgrade_run_table)==0) + {rt_kprintf("RUN Created successfully \n");}else{rt_kprintf("RUN Creation failed \n");} + } + if(db_table_is_exist("Dyelot")<=0){ + if(db_create_database(sql_upgrade_dyelot_table)==0) + {rt_kprintf("Dyelot Created successfully \n");}else{rt_kprintf("Dyelot Creation failed \n");} + } + if(db_table_is_exist("IOLog")<=0){ + if(db_create_database(sql_upgrade_iolog_table)==0) + {rt_kprintf("IOLog Created successfully \n");}else{rt_kprintf("IOLog Creation failed \n");} + } + if(db_table_is_exist("Chart")<=0){ + if(db_create_database(sql_upgrade_chart_table)==0) + {rt_kprintf("Chart Created successfully \n");}else{rt_kprintf("Chart Creation failed \n");} + } + + const char *sql = "CREATE TABLE student(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(32) NOT NULL,score INT NOT NULL);"; + db_create_database(sql); + + }else{ + rt_kprintf("DB open failed \n"); + } + }else{ - rt_kprintf("DB no \n"); + rt_kprintf("DB open failed \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_create_database(sql_upgrade_workorder_steps); + db_create_database(sql_upgrade_workorder_set); + db_create_database(sql_upgrade_workorder); + db_create_database(sql_upgrade_run_table); + db_create_database(sql_upgrade_dyelot_table); + db_create_database(sql_upgrade_iolog_table); + db_create_database(sql_upgrade_chart_table); } @@ -397,7 +320,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*64, 3, 10); + tid = rt_thread_create("db_sqlite", db_sqlite, RT_NULL, 1024*64, 3, 15); if (tid != RT_NULL) { diff --git a/applications/main.c b/applications/main.c index 6cf955a..68eee30 100644 --- a/applications/main.c +++ b/applications/main.c @@ -27,11 +27,9 @@ int main(void) { rt_sem_take(mount_sem, rt_tick_from_millisecond(5000)); // 等待挂载完成,最多等待 5 秒 thread_RUN_LED();//运行指示灯线程 - thread_DB_SQLite(); - - - start_uart_thread(); - data_comm_init(); + thread_DB_SQLite();//sqlite线程 + start_uart_thread();//串口线程 + data_comm_init();//数据处理线程 diff --git a/drivers/board.h b/drivers/board.h index a56460c..5007ff7 100644 --- a/drivers/board.h +++ b/drivers/board.h @@ -250,7 +250,6 @@ extern "C" * */ /*#define BSP_USING_ONCHIP_RTC*/ - /*-------------------------- RTC CONFIG END --------------------------*/ /*-------------------------- SDIO CONFIG BEGIN --------------------------*/ diff --git a/rtconfig.h b/rtconfig.h index 6db0f28..1746ae0 100644 --- a/rtconfig.h +++ b/rtconfig.h @@ -109,8 +109,6 @@ #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