sqlite数据库,exfat支持
This commit is contained in:
1 parent
43f2057b44
commit
855a50bfeb
8 files changed
+917
-546
No files matched your search
@@ -10,24 +10,364 @@
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
#include <board.h>
|
||||
#include <dfs_posix.h>
|
||||
#include "DB_SQLite.h"
|
||||
|
||||
#include "sqlite3.h"
|
||||
#include <dbhelper.h>
|
||||
#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();
|
||||
|
||||
if(db_HelperInit =RT_EOK){
|
||||
rt_kprintf("HelperInit database\n");
|
||||
}else {
|
||||
// db_HelperInit = db_helper_init();
|
||||
|
||||
// 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)
|
||||
{
|
||||
|
||||
@@ -29,6 +29,7 @@ int main(void)
|
||||
thread_RUN_LED();//运行指示灯线程
|
||||
thread_DB_SQLite();
|
||||
|
||||
|
||||
start_uart_thread();
|
||||
data_comm_init();
|
||||
|
||||
|
||||
Reference in new issue
Block a user