|
|
@ -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(); |
|
|
|
// 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) |
|
|
|
{ |
|
|
|