2024-05-22 15:58:54 +08:00
# include "LogDao.h"
2024-03-19 17:45:12 +08:00
# include "../Toast.h"
# include "../LanguageManager.h"
# include "../global.h"
# include <direct.h>
# include <io.h>
# include "../utils/TimeHelper.h"
2024-05-22 15:58:54 +08:00
# include "turbojpeg.h"
2024-03-19 17:45:12 +08:00
# include "../config/bean/CoverCfg.h"
# include <fstream>
LogDao : : LogDao ( )
: m_pDB ( nullptr )
, m_CurrentShowJob ( NULL )
, m_ImageThread ( INVALID_HANDLE_VALUE )
, m_ImageFlag ( false )
, m_ExportThread ( INVALID_HANDLE_VALUE )
, m_ExportProgress ( 0 )
, m_ExportFlag ( false )
2024-05-22 15:58:54 +08:00
, m_pImgDB ( nullptr )
2024-03-19 17:45:12 +08:00
, m_ShowAxisLog ( NULL )
2024-05-22 15:58:54 +08:00
, m_IsFindingRecord ( false )
2024-03-19 17:45:12 +08:00
{
}
LogDao : : ~ LogDao ( )
{
DeleteCriticalSection ( & m_FocusStatusCS ) ;
2024-05-22 15:58:54 +08:00
DeleteCriticalSection ( & m_InfraredTempCS ) ;
2024-03-19 17:45:12 +08:00
DeleteCriticalSection ( & m_ScannerStatusCS ) ;
DeleteCriticalSection ( & m_AxisLogCs ) ;
DeleteCriticalSection ( & m_AlarmCs ) ;
DeleteCriticalSection ( & m_LogImageCs ) ;
DeleteCriticalSection ( & m_StatusCs ) ;
DeleteCriticalSection ( & m_JobCs ) ;
DeleteCriticalSection ( & m_LogCs ) ;
DeleteCriticalSection ( & m_DbCs ) ;
DeleteCriticalSection ( & m_ImgDbCs ) ;
for ( map < int , SQLite : : Database * > : : iterator it = m_DBMap . begin ( ) ; it ! = m_DBMap . end ( ) ; it + + )
{
SQLite : : Database * db = it - > second ;
delete db ;
}
}
void LogDao : : Init ( )
{
InitializeCriticalSection ( & m_DbCs ) ;
InitializeCriticalSection ( & m_ImgDbCs ) ;
InitializeCriticalSection ( & m_LogCs ) ;
InitializeCriticalSection ( & m_JobCs ) ;
InitializeCriticalSection ( & m_StatusCs ) ;
InitializeCriticalSection ( & m_LogImageCs ) ;
InitializeCriticalSection ( & m_AlarmCs ) ;
InitializeCriticalSection ( & m_AxisLogCs ) ;
InitializeCriticalSection ( & m_ScannerStatusCS ) ;
2024-05-22 15:58:54 +08:00
InitializeCriticalSection ( & m_InfraredTempCS ) ;
2024-03-19 17:45:12 +08:00
InitializeCriticalSection ( & m_FocusStatusCS ) ;
InitializeCriticalSection ( & m_FindRecordCS ) ;
m_RootPath = g_AppPath + " log/ " ;
if ( _access ( m_RootPath . c_str ( ) , 0 ) ! = 0 ) {
_mkdir ( m_RootPath . c_str ( ) ) ;
}
SYSTEMTIME tnow ;
GetLocalTime ( & tnow ) ;
char buffer [ 128 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s%04d.hbd " , m_RootPath . c_str ( ) , tnow . wYear ) ;
string databasepath = string ( buffer ) ;
m_pDB = new SQLite : : Database ( databasepath , SQLite : : OPEN_READWRITE | SQLite : : OPEN_CREATE ) ;
m_pDB - > exec ( " PRAGMA key = '!hbd_admin' " ) ;
m_DBMap [ tnow . wYear ] = m_pDB ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s%04d-img.hbd " , m_RootPath . c_str ( ) , tnow . wYear ) ;
string imgpath = string ( buffer ) ;
2024-05-22 15:58:54 +08:00
m_pImgDB = new SQLite : : Database ( imgpath , SQLite : : OPEN_READWRITE | SQLite : : OPEN_CREATE ) ;
m_pImgDB - > exec ( " PRAGMA key = '!hbd_admin' " ) ;
m_ImgDBMap [ tnow . wYear ] = m_pImgDB ;
2024-03-19 17:45:12 +08:00
for ( int i = 2018 ; i < tnow . wYear ; i + + ) {
databasepath = m_RootPath + to_string ( i ) + " .hbd " ;
int rel = _access ( databasepath . c_str ( ) , 0 ) ;
if ( rel ! = 0 ) continue ;
SQLite : : Database * tmp = nullptr ;
tmp = new SQLite : : Database ( databasepath , SQLite : : OPEN_READWRITE ) ;
tmp - > exec ( " PRAGMA key = '!hbd_admin' " ) ;
if ( ! tmp )
continue ;
m_DBMap [ i ] = tmp ;
}
2024-05-22 15:58:54 +08:00
for ( int i = 2018 ; i < tnow . wYear ; i + + ) {
imgpath = m_RootPath + to_string ( i ) + " -img.hbd " ;
int rel = _access ( imgpath . c_str ( ) , 0 ) ;
if ( rel ! = 0 ) continue ;
SQLite : : Database * tmp = nullptr ;
tmp = new SQLite : : Database ( imgpath , SQLite : : OPEN_READWRITE ) ;
tmp - > exec ( " PRAGMA key = '!hbd_admin' " ) ;
if ( ! tmp )
continue ;
m_ImgDBMap [ i ] = tmp ;
}
2024-03-19 17:45:12 +08:00
SQLite : : Transaction transaction ( * m_pDB ) ;
LogBean : : CreateIfNoExist ( m_pDB ) ;
JobBean : : CreateIfNoExist ( m_pDB ) ;
LayerStatus : : CreateIfNoExist ( m_pDB ) ;
LogImage : : CreateIfNoExist ( m_pDB ) ;
PartAddition : : CreateIfNoExist ( m_pDB ) ;
AxisLog : : CreateIfNoExist ( m_pDB ) ;
ScannerStatus : : CreateIfNoExist ( m_pDB ) ;
ScannerPowerLog : : CreateIfNoExist ( m_pDB ) ;
FocusStatus : : CreateIfNoExist ( m_pDB ) ;
2024-05-22 15:58:54 +08:00
InfraredTempLog : : CreateIfNoExist ( m_pDB ) ;
2024-03-19 17:45:12 +08:00
PartPosBean : : CreateIfNoExist ( m_pDB ) ;
m_pDB - > exec ( HistoryAlarm : : GetCreateSql ( ) ) ;
m_pDB - > exec ( HistoryAlarm : : GetIndexSql ( ) ) ;
transaction . commit ( ) ;
2024-05-22 15:58:54 +08:00
LogImage : : CreateIfNoExist ( m_pImgDB ) ;
IFImage : : CreateIfNoExist ( m_pImgDB ) ;
ImageInfo : : CreateIfNoExist ( m_pImgDB ) ;
2024-03-19 17:45:12 +08:00
}
void LogDao : : GetLogs ( struct tm & begin , struct tm & end )
{
begin . tm_hour = 0 ;
begin . tm_min = 0 ;
begin . tm_sec = 0 ;
end . tm_hour = 23 ;
end . tm_min = 59 ;
end . tm_sec = 59 ;
time_t tbegin = mktime ( & begin ) ;
time_t tend = mktime ( & end ) ;
if ( tbegin > tend )
{
2024-05-22 15:58:54 +08:00
g_Toast - > AddToast ( new ToastBean ( _ ( u8 " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <EFBFBD> <EFBFBD> ڿ<EFBFBD> ʼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> " ) . c_str ( ) , 3000 ) ) ;
2024-03-19 17:45:12 +08:00
return ;
}
EnterCriticalSection ( & m_LogCs ) ;
m_Logs . clear ( ) ;
LeaveCriticalSection ( & m_LogCs ) ;
char sql [ 1024 ] ;
if ( m_DBMap . find ( begin . tm_year + 1900 ) ! = m_DBMap . end ( ) )
{
sprintf_s ( sql , sizeof ( sql ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld " ,
LogBean : : LOG_TABLE_NAME . c_str ( ) , LogBean : : LOG_FIELD_INSERT_TIME . c_str ( ) , tbegin , tend ) ;
string level , content ;
time_t date ;
char buffer [ 1024 ] ;
EnterCriticalSection ( & m_DbCs ) ;
2024-05-22 15:58:54 +08:00
2024-03-19 17:45:12 +08:00
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , sql ) ;
while ( query . executeStep ( ) ) {
level = query . getColumn ( LogBean : : LOG_FIELD_LEVEL . c_str ( ) ) . getString ( ) ;
date = query . getColumn ( LogBean : : LOG_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
content = query . getColumn ( LogBean : : LOG_FIELD_CONTENT . c_str ( ) ) . getString ( ) ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s %s %s " , level . c_str ( ) , TimeHelper : : Time2Str ( date ) . c_str ( ) , content . c_str ( ) ) ;
2024-05-22 15:58:54 +08:00
EnterCriticalSection ( & m_LogCs ) ;
2024-03-19 17:45:12 +08:00
m_Logs . push_back ( string ( buffer ) ) ;
2024-05-22 15:58:54 +08:00
LeaveCriticalSection ( & m_LogCs ) ;
2024-03-19 17:45:12 +08:00
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
if ( begin . tm_year ! = end . tm_year )
{
if ( m_DBMap . find ( end . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( sql , sizeof ( sql ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld " ,
LogBean : : LOG_TABLE_NAME . c_str ( ) , LogBean : : LOG_FIELD_INSERT_TIME . c_str ( ) , tbegin , tend ) ;
char buffer [ 1024 ] ;
string level , content ;
time_t date ;
EnterCriticalSection ( & m_DbCs ) ;
2024-05-22 15:58:54 +08:00
2024-03-19 17:45:12 +08:00
try {
SQLite : : Statement query ( * m_DBMap [ end . tm_year + 1900 ] , sql ) ;
while ( query . executeStep ( ) ) {
level = query . getColumn ( LogBean : : LOG_FIELD_LEVEL . c_str ( ) ) . getString ( ) ;
date = query . getColumn ( LogBean : : LOG_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
content = query . getColumn ( LogBean : : LOG_FIELD_CONTENT . c_str ( ) ) . getString ( ) ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s %s %s " , level . c_str ( ) , TimeHelper : : Time2Str ( date ) . c_str ( ) , content . c_str ( ) ) ;
2024-05-22 15:58:54 +08:00
EnterCriticalSection ( & m_LogCs ) ;
2024-03-19 17:45:12 +08:00
m_Logs . push_back ( string ( buffer ) ) ;
2024-05-22 15:58:54 +08:00
LeaveCriticalSection ( & m_LogCs ) ;
2024-03-19 17:45:12 +08:00
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
}
void LogDao : : AddLog ( string prefix , string content )
{
time_t tnow ;
time ( & tnow ) ;
char sqlbuf [ 1024 ] ;
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , u8 " INSERT INTO %s(%s,%s,%s) VALUES(%lld,'%s', '%s') " ,
LogBean : : LOG_TABLE_NAME . c_str ( ) ,
LogBean : : LOG_FIELD_INSERT_TIME . c_str ( ) ,
LogBean : : LOG_FIELD_LEVEL . c_str ( ) ,
LogBean : : LOG_FIELD_CONTENT . c_str ( ) ,
tnow ,
prefix . c_str ( ) ,
content . c_str ( )
) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( sqlbuf ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
bool LogDao : : GetCheckJob ( string uid , JobBean & bean )
{
char sql [ 1024 ] ;
sprintf_s ( sql , sizeof ( sql ) , " SELECT * FROM %s WHERE %s IN (SELECT MAX(%s) FROM %s WHERE %s='%s') AND %s=0 AND %s=0 " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) , JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_UID . c_str ( ) ,
uid . c_str ( ) , JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) , JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) ;
bool rel = false ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_pDB , sql ) ;
if ( query . executeStep ( ) ) {
bean . m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
bean . m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
bean . m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
bean . m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
bean . m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
bean . m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
bean . m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
bean . m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
bean . m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
bean . m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
bean . m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
bean . m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
bean . m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
bean . m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
bean . m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
bean . m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
bean . m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
bean . m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
rel = true ;
}
else rel = false ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
rel = false ;
}
LeaveCriticalSection ( & m_DbCs ) ;
return rel ;
}
void LogDao : : UpdateJobInvalid ( long jid )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " UPDATE %s SET %s=1 WHERE %s=%d " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) ,
JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ,
JobBean : : JOB_FIELD_ID . c_str ( ) , jid ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : LogJobStart ( JobBean * job )
{
if ( job = = NULL ) return ;
if ( job - > m_Uid . empty ( ) ) return ;
char sqlbuf [ 1024 ] ;
EnterCriticalSection ( & m_DbCs ) ;
try {
if ( ! job - > m_IsContinue )
{
2024-05-22 15:58:54 +08:00
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,'%s','%s','%s',%lld,%lld,%d,%d,%d,%f,%lf,%d,%d,%d,%d) " ,
2024-03-19 17:45:12 +08:00
JobBean : : JOB_TABLE_NAME . c_str ( ) ,
JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
JobBean : : JOB_TASK_ID . c_str ( ) ,
JobBean : : JOB_FIELD_UID . c_str ( ) ,
JobBean : : JOB_FIELD_NAME . c_str ( ) ,
JobBean : : JOB_FIELD_START_TIME . c_str ( ) ,
JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ,
JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ,
JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ,
JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ,
JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ,
JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ,
JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ,
JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ,
JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ,
JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ,
job - > m_InsertTime ,
job - > m_TaskID . c_str ( ) ,
job - > m_Uid . c_str ( ) ,
job - > m_Name . c_str ( ) ,
job - > m_StartTime ,
job - > m_StopTime ,
job - > m_DeoxygenSecond ,
job - > m_SpendSecond ,
job - > m_FirstStartIndex ,
job - > m_StartMoldPos ,
job - > m_MoldPos ,
job - > m_PrintedLayerIndex ,
job - > m_IsFinished ? 1 : 0 ,
job - > m_IsContinue ? 1 : 0 ,
job - > m_IsInvalid ? 1 : 0
) ;
if ( m_pDB - > exec ( sqlbuf ) )
{
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , " SELECT last_insert_rowid() FROM %s " , JobBean : : JOB_TABLE_NAME . c_str ( ) ) ;
SQLite : : Statement query ( * m_pDB , string ( sqlbuf ) ) ;
if ( query . executeStep ( ) ) {
job - > m_Id = query . getColumn ( 0 ) . getInt ( ) ;
}
}
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : UpdateJobPauseTime ( JobBean * job ) {
int ret = 0 ;
char sqlbuf [ 1024 ] ;
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , " UPDATE %s SET %s=%lld WHERE %s=%d " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) , job - > m_LastPauseTime , JobBean : : JOB_FIELD_ID . c_str ( ) , job - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
ret = m_pDB - > exec ( sqlbuf ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : UpdateJobAfterPrintLayer ( JobBean * job )
{
char sqlbuf [ 1024 ] ;
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , " UPDATE %s SET %s=%lld,%s=%d,%s=%d,%s=%lf,%s=%d,%s=%d WHERE %s=%d " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) ,
JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) , job - > m_StopTime ,
JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) , job - > m_SpendSecond + ( int ) job - > m_CurrentPrintedTime ,
JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) , job - > m_PrintSecond + ( int ) job - > m_EveryPrintedTime ,
JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) , job - > m_MoldPos ,
JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) , job - > m_PrintedLayerIndex ,
JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) , job - > m_IsFinished ,
JobBean : : JOB_FIELD_ID . c_str ( ) , job - > m_Id
) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( sqlbuf ) ;
}
catch ( SQLite : : Exception e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : GetJobsByTaskId ( string taskid , vector < JobBean * > & jobs )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s='%s' ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_TASK_ID . c_str ( ) ,
taskid . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_pDB , buffer ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
jobs . push_back ( job ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : GetJobsByTime ( struct tm & begin , struct tm & end , vector < JobBean * > & jobs )
{
begin . tm_hour = 0 ;
begin . tm_min = 0 ;
begin . tm_sec = 0 ;
end . tm_hour = 23 ;
end . tm_min = 59 ;
end . tm_sec = 59 ;
time_t tbegin = mktime ( & begin ) ;
time_t tend = mktime ( & end ) ;
char buffer [ 1024 ] ;
if ( begin . tm_year = = end . tm_year )
{
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
tbegin , tend , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , buffer ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = begin . tm_year + 1900 ;
jobs . push_back ( job ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
else {
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
tbegin , tend , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , buffer ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = begin . tm_year + 1900 ;
jobs . push_back ( job ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
if ( m_DBMap . find ( end . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query2 ( * m_DBMap [ end . tm_year + 1900 ] , buffer ) ;
while ( query2 . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query2 . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query2 . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query2 . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query2 . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query2 . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query2 . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query2 . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query2 . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query2 . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query2 . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query2 . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query2 . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query2 . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query2 . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query2 . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = end . tm_year + 1900 ;
jobs . push_back ( job ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
}
void LogDao : : GetJobs ( struct tm & begin , struct tm & end )
{
begin . tm_hour = 0 ;
begin . tm_min = 0 ;
begin . tm_sec = 0 ;
end . tm_hour = 23 ;
end . tm_min = 59 ;
end . tm_sec = 59 ;
time_t tbegin = mktime ( & begin ) ;
time_t tend = mktime ( & end ) ;
if ( tbegin > tend )
{
2024-05-22 15:58:54 +08:00
g_Toast - > AddToast ( new ToastBean ( g_LngManager - > Toast_CheckDate - > ShowText ( ) , 3000 ) ) ;
2024-03-19 17:45:12 +08:00
return ;
}
EnterCriticalSection ( & m_JobCs ) ;
for ( size_t i = 0 ; i < m_JobBaens . size ( ) ; + + i ) {
delete m_JobBaens [ i ] ;
m_JobBaens [ i ] = NULL ;
}
m_JobBaens . clear ( ) ;
LeaveCriticalSection ( & m_JobCs ) ;
char buffer [ 1024 ] ;
if ( begin . tm_year = = end . tm_year )
{
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
tbegin , tend , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
string selectStr = string ( buffer ) ;
if ( begin . tm_mon = = 0 & & ( m_DBMap . find ( begin . tm_year + 1900 - 1 ) ! = m_DBMap . end ( ) ) ) {
EnterCriticalSection ( & m_DbCs ) ;
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 - 1 ] , selectStr ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = begin . tm_year + 1900 - 1 ;
EnterCriticalSection ( & m_JobCs ) ;
m_JobBaens . push_back ( job ) ;
LeaveCriticalSection ( & m_JobCs ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
tbegin , tend , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , selectStr ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = begin . tm_year + 1900 ;
EnterCriticalSection ( & m_JobCs ) ;
m_JobBaens . push_back ( job ) ;
LeaveCriticalSection ( & m_JobCs ) ; ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
else {
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
JobBean : : JOB_TABLE_NAME . c_str ( ) , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ,
tbegin , tend , JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , buffer ) ;
while ( query . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = begin . tm_year + 1900 ;
EnterCriticalSection ( & m_JobCs ) ;
m_JobBaens . push_back ( job ) ;
LeaveCriticalSection ( & m_JobCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
if ( m_DBMap . find ( end . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query2 ( * m_DBMap [ end . tm_year + 1900 ] , buffer ) ;
while ( query2 . executeStep ( ) ) {
JobBean * job = new JobBean ;
job - > m_Id = query2 . getColumn ( JobBean : : JOB_FIELD_ID . c_str ( ) ) . getInt ( ) ;
job - > m_InsertTime = query2 . getColumn ( JobBean : : JOB_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_TaskID = query2 . getColumn ( JobBean : : JOB_TASK_ID . c_str ( ) ) . getString ( ) ;
job - > m_Uid = query2 . getColumn ( JobBean : : JOB_FIELD_UID . c_str ( ) ) . getString ( ) ;
job - > m_Name = query2 . getColumn ( JobBean : : JOB_FIELD_NAME . c_str ( ) ) . getString ( ) ;
job - > m_StartTime = query2 . getColumn ( JobBean : : JOB_FIELD_START_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_LastPauseTime = query2 . getColumn ( JobBean : : JOB_FIELD_LAST_PAUSE_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_StopTime = query2 . getColumn ( JobBean : : JOB_FIELD_STOP_TIME . c_str ( ) ) . getInt64 ( ) ;
job - > m_DeoxygenSecond = query2 . getColumn ( JobBean : : JOB_FIELD_DEOXYGEN_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_SpendSecond = query2 . getColumn ( JobBean : : JOB_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_PrintSecond = query2 . getColumn ( JobBean : : JOB_FIELD_PRINT_SECOND . c_str ( ) ) . getUInt ( ) ;
job - > m_FirstStartIndex = query2 . getColumn ( JobBean : : JOB_FIELD_FIRST_START_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_StartMoldPos = query2 . getColumn ( JobBean : : JOB_FIELD_START_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_MoldPos = query2 . getColumn ( JobBean : : JOB_FIELD_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
job - > m_PrintedLayerIndex = query2 . getColumn ( JobBean : : JOB_FIELD_PRINTED_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
job - > m_IsFinished = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_FINISH . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsContinue = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_CONTINUE . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_IsInvalid = ( query2 . getColumn ( JobBean : : JOB_FIELD_IS_INVALID . c_str ( ) ) . getInt ( ) > 0 ? true : false ) ;
job - > m_YearBelong = end . tm_year + 1900 ;
EnterCriticalSection ( & m_JobCs ) ;
m_JobBaens . push_back ( job ) ;
LeaveCriticalSection ( & m_JobCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
}
2024-05-22 15:58:54 +08:00
void LogDao : : GetLayerStatusTable ( LogAssist & la , bool isRemote )
{
if ( m_CurrentShowJob = = NULL )
return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) )
return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
char sql [ 1024 ] ;
EnterCriticalSection ( & m_StatusCs ) ;
for ( size_t i = 0 ; i < m_LayerStatus . size ( ) ; + + i ) {
delete m_LayerStatus [ i ] ;
m_LayerStatus [ i ] = NULL ;
}
m_LayerStatus . clear ( ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
sprintf_s ( sql , sizeof ( sql ) , " SELECT * FROM %s WHERE %s = %d ORDER BY %s " ,
LayerStatus : : STATUS_TABLE_NAME . c_str ( ) , LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id , LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , sql ) ;
while ( query . executeStep ( ) ) {
LayerStatus * ls = new LayerStatus ( ) ;
ls - > m_Id = query . getColumn ( LayerStatus : : STATUS_FIELD_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_InsertTitme = query . getColumn ( LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
ls - > m_JobId = query . getColumn ( LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_LayerIndex = query . getColumn ( LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
ls - > m_SpendSecond = query . getColumn ( LayerStatus : : STATUS_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
ls - > m_MoldMainPos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_MAIN_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_MoldSlavePos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_SLAVE_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen1 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN1 . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen2 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN2 . c_str ( ) ) . getDouble ( ) ;
//ls->m_OutsideOxygen = (float)query.getColumn(LayerStatus::STATUS_FIELD_OUTSIDE_OXYGEN.c_str()).getDouble();
ls - > m_PrintTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_TEMP . c_str ( ) ) . getDouble ( ) ;
//ls->m_PrintTemp2 = (float)query.getColumn(LayerStatus::STATUS_FIELD_PRINT_TEMP2.c_str()).getDouble();
ls - > m_PrintHumidity = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_HUMIDITY . c_str ( ) ) . getDouble ( ) ;
//ls->m_PrintHumidity2 = (float)query.getColumn(LayerStatus::STATUS_FIELD_PRINT_HUMIDITY2.c_str()).getDouble();
ls - > m_PrintPressure = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_PRESSURE . c_str ( ) ) . getDouble ( ) ;
ls - > m_FanFrequency = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_FAN_FREQUENCY . c_str ( ) ) . getDouble ( ) ;
ls - > m_PlateTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PLATE_TEMP . c_str ( ) ) . getDouble ( ) ;
ls - > m_WindRate = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WIND_RATE . c_str ( ) ) . getDouble ( ) ;
ls - > m_WaterTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WATER_TEMP . c_str ( ) ) . getDouble ( ) ;
EnterCriticalSection ( & m_StatusCs ) ;
m_LayerStatus . push_back ( ls ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : GetLayerStatusByTime ( LogAssist & la , bool isRemote )
{
if ( m_CurrentShowJob = = NULL )
return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) )
return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
char sql [ 1024 ] ;
EnterCriticalSection ( & m_StatusCs ) ;
for ( size_t i = 0 ; i < m_LayerStatus . size ( ) ; + + i ) {
delete m_LayerStatus [ i ] ;
m_LayerStatus [ i ] = NULL ;
}
m_LayerStatus . clear ( ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
for ( int i = 0 ; i < LogAssist : : PARAM_LENGTH ; + + i ) {
la . paramValue [ i ] . clear ( ) ;
la . paramIndex . clear ( ) ;
la . minValue [ i ] = FLT_MAX ;
la . maxValue [ i ] = - FLT_MAX ;
}
unsigned int lastSpendSecond = 0 ;
sprintf_s ( sql , sizeof ( sql ) , " SELECT * FROM %s WHERE %s = %d ORDER BY %s " ,
LayerStatus : : STATUS_TABLE_NAME . c_str ( ) , LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id , LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , sql ) ;
int lastLayerIndex = 0 ;
unsigned int lastSpendSecondFlag = 0 ;
while ( query . executeStep ( ) ) {
LayerStatus * ls = new LayerStatus ( ) ;
ls - > m_Id = query . getColumn ( LayerStatus : : STATUS_FIELD_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_InsertTitme = query . getColumn ( LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
ls - > m_JobId = query . getColumn ( LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_LayerIndex = query . getColumn ( LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
ls - > m_SpendSecond = query . getColumn ( LayerStatus : : STATUS_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
ls - > m_MoldMainPos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_MAIN_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_MoldSlavePos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_SLAVE_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen1 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN1 . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen2 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN2 . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_TEMP . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintHumidity = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_HUMIDITY . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintPressure = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_PRESSURE . c_str ( ) ) . getDouble ( ) ;
ls - > m_FanFrequency = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_FAN_FREQUENCY . c_str ( ) ) . getDouble ( ) ;
ls - > m_PlateTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PLATE_TEMP . c_str ( ) ) . getDouble ( ) ;
ls - > m_WindRate = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WIND_RATE . c_str ( ) ) . getDouble ( ) ;
ls - > m_WaterTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WATER_TEMP . c_str ( ) ) . getDouble ( ) ;
if ( ls - > m_LayerIndex < lastLayerIndex ) {
delete ls ;
ls = NULL ;
continue ;
}
if ( ls - > m_SpendSecond < lastSpendSecondFlag ) {
delete ls ;
ls = NULL ;
continue ;
}
else {
lastSpendSecondFlag = ls - > m_SpendSecond ;
}
lastLayerIndex = ls - > m_LayerIndex ;
if ( ls - > m_PrintOxygen1 < la . minValue [ 0 ] ) la . minValue [ 0 ] = ls - > m_PrintOxygen1 ;
if ( ls - > m_PrintOxygen1 > la . maxValue [ 0 ] ) la . maxValue [ 0 ] = ls - > m_PrintOxygen1 ;
if ( ls - > m_PrintOxygen2 < la . minValue [ 1 ] ) la . minValue [ 1 ] = ls - > m_PrintOxygen2 ;
if ( ls - > m_PrintOxygen2 > la . maxValue [ 1 ] ) la . maxValue [ 1 ] = ls - > m_PrintOxygen2 ;
//if (ls->m_OutsideOxygen < la.minValue[2])la.minValue[2] = ls->m_OutsideOxygen;
//if (ls->m_OutsideOxygen > la.maxValue[2])la.maxValue[2] = ls->m_OutsideOxygen;
if ( ls - > m_PrintTemp < la . minValue [ 2 ] ) la . minValue [ 2 ] = ls - > m_PrintTemp ;
if ( ls - > m_PrintTemp > la . maxValue [ 2 ] ) la . maxValue [ 2 ] = ls - > m_PrintTemp ;
//if (ls->m_PrintTemp2 < la.minValue[4])la.minValue[4] = ls->m_PrintTemp2;
//if (ls->m_PrintTemp2 > la.maxValue[4])la.maxValue[4] = ls->m_PrintTemp2;
if ( ls - > m_PrintHumidity < la . minValue [ 3 ] ) la . minValue [ 3 ] = ls - > m_PrintHumidity ;
if ( ls - > m_PrintHumidity > la . maxValue [ 3 ] ) la . maxValue [ 3 ] = ls - > m_PrintHumidity ;
// if (ls->m_PrintHumidity2 < la.minValue[6])la.minValue[6] = ls->m_PrintHumidity2;
//if (ls->m_PrintHumidity2 > la.maxValue[6])la.maxValue[6] = ls->m_PrintHumidity2;
if ( ls - > m_PrintPressure < la . minValue [ 4 ] ) la . minValue [ 4 ] = ls - > m_PrintPressure ;
if ( ls - > m_PrintPressure > la . maxValue [ 4 ] ) la . maxValue [ 4 ] = ls - > m_PrintPressure ;
if ( ls - > m_FanFrequency < la . minValue [ 5 ] ) la . minValue [ 5 ] = ls - > m_FanFrequency ;
if ( ls - > m_FanFrequency > la . maxValue [ 5 ] ) la . maxValue [ 5 ] = ls - > m_FanFrequency ;
if ( ls - > m_PlateTemp < la . minValue [ 6 ] ) la . minValue [ 6 ] = ls - > m_PlateTemp ;
if ( ls - > m_PlateTemp > la . maxValue [ 6 ] ) la . maxValue [ 6 ] = ls - > m_PlateTemp ;
if ( ls - > m_WindRate < la . minValue [ 7 ] ) la . minValue [ 7 ] = ls - > m_WindRate ;
if ( ls - > m_WindRate > la . maxValue [ 7 ] ) la . maxValue [ 7 ] = ls - > m_WindRate ;
if ( ls - > m_WaterTemp < la . minValue [ 8 ] ) la . minValue [ 8 ] = ls - > m_WaterTemp ;
if ( ls - > m_WaterTemp > la . maxValue [ 8 ] ) la . maxValue [ 8 ] = ls - > m_WaterTemp ;
la . paramValue [ 0 ] . push_back ( ls - > m_PrintOxygen1 ) ;
la . paramValue [ 1 ] . push_back ( ls - > m_PrintOxygen2 ) ;
//la.paramValue[2].push_back(ls->m_OutsideOxygen);
la . paramValue [ 2 ] . push_back ( ls - > m_PrintTemp ) ;
//la.paramValue[4].push_back(ls->m_PrintTemp2);
la . paramValue [ 3 ] . push_back ( ls - > m_PrintHumidity ) ;
//la.paramValue[6].push_back(ls->m_PrintHumidity2);
la . paramValue [ 4 ] . push_back ( ls - > m_PrintPressure ) ;
la . paramValue [ 5 ] . push_back ( ls - > m_FanFrequency ) ;
la . paramValue [ 6 ] . push_back ( ls - > m_PlateTemp ) ;
la . paramValue [ 7 ] . push_back ( ls - > m_WindRate ) ;
la . paramValue [ 8 ] . push_back ( ls - > m_WaterTemp ) ;
if ( ls - > m_SpendSecond < lastSpendSecond ) {
ls - > m_SpendSecond = lastSpendSecond ;
}
la . paramIndex . push_back ( ls - > m_InsertTitme ) ;
lastSpendSecond = ls - > m_SpendSecond ;
EnterCriticalSection ( & m_StatusCs ) ;
m_LayerStatus . push_back ( ls ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : GetLayerStatusByLayer ( LogAssist & la , bool isRemote )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
if ( m_CurrentShowJob = = NULL )
return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) )
return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
char sql [ 1024 ] ;
EnterCriticalSection ( & m_StatusCs ) ;
for ( size_t i = 0 ; i < m_LayerStatus . size ( ) ; + + i ) {
delete m_LayerStatus [ i ] ;
m_LayerStatus [ i ] = NULL ;
}
m_LayerStatus . clear ( ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
for ( int i = 0 ; i < LogAssist : : PARAM_LENGTH ; + + i ) {
la . paramValue [ i ] . clear ( ) ;
la . paramIndex . clear ( ) ;
la . minValue [ i ] = FLT_MAX ;
la . maxValue [ i ] = - FLT_MAX ;
}
sprintf_s ( sql , sizeof ( sql ) , " SELECT %s,min(%s) %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s FROM %s WHERE %s = %d GROUP BY %s ORDER BY %s " ,
LayerStatus : : STATUS_FIELD_ID . c_str ( ) , LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) , LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ,
LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) ,
LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) ,
LayerStatus : : STATUS_FIELD_SPEND_SECOND . c_str ( ) ,
LayerStatus : : STATUS_FIELD_MOLD_MAIN_POS . c_str ( ) ,
LayerStatus : : STATUS_FIELD_MOLD_SLAVE_POS . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_OXYGEN1 . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_OXYGEN2 . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_TEMP . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_HUMIDITY . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_PRESSURE . c_str ( ) ,
LayerStatus : : STATUS_FIELD_FAN_FREQUENCY . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PLATE_TEMP . c_str ( ) ,
LayerStatus : : STATUS_FIELD_WIND_RATE . c_str ( ) ,
LayerStatus : : STATUS_FIELD_WATER_TEMP . c_str ( ) ,
LayerStatus : : STATUS_TABLE_NAME . c_str ( ) , LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ,
LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) , LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , sql ) ;
int lastLayerIndex = 0 ;
while ( query . executeStep ( ) ) {
LayerStatus * ls = new LayerStatus ( ) ;
ls - > m_Id = query . getColumn ( LayerStatus : : STATUS_FIELD_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_InsertTitme = query . getColumn ( LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
ls - > m_JobId = query . getColumn ( LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
ls - > m_LayerIndex = query . getColumn ( LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
ls - > m_SpendSecond = query . getColumn ( LayerStatus : : STATUS_FIELD_SPEND_SECOND . c_str ( ) ) . getUInt ( ) ;
ls - > m_MoldMainPos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_MAIN_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_MoldSlavePos = query . getColumn ( LayerStatus : : STATUS_FIELD_MOLD_SLAVE_POS . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen1 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN1 . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintOxygen2 = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_OXYGEN2 . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_TEMP . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintHumidity = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_HUMIDITY . c_str ( ) ) . getDouble ( ) ;
ls - > m_PrintPressure = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PRINT_PRESSURE . c_str ( ) ) . getDouble ( ) ;
ls - > m_FanFrequency = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_FAN_FREQUENCY . c_str ( ) ) . getDouble ( ) ;
ls - > m_PlateTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_PLATE_TEMP . c_str ( ) ) . getDouble ( ) ;
ls - > m_WindRate = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WIND_RATE . c_str ( ) ) . getDouble ( ) ;
ls - > m_WaterTemp = ( float ) query . getColumn ( LayerStatus : : STATUS_FIELD_WATER_TEMP . c_str ( ) ) . getDouble ( ) ;
if ( ls - > m_LayerIndex < lastLayerIndex ) {
delete ls ;
ls = NULL ;
continue ;
}
lastLayerIndex = ls - > m_LayerIndex ;
if ( ls - > m_PrintOxygen1 < la . minValue [ 0 ] ) la . minValue [ 0 ] = ls - > m_PrintOxygen1 ;
if ( ls - > m_PrintOxygen1 > la . maxValue [ 0 ] ) la . maxValue [ 0 ] = ls - > m_PrintOxygen1 ;
if ( ls - > m_PrintOxygen2 < la . minValue [ 1 ] ) la . minValue [ 1 ] = ls - > m_PrintOxygen2 ;
if ( ls - > m_PrintOxygen2 > la . maxValue [ 1 ] ) la . maxValue [ 1 ] = ls - > m_PrintOxygen2 ;
//if (ls->m_OutsideOxygen < la.minValue[2])la.minValue[2] = ls->m_OutsideOxygen;
//if (ls->m_OutsideOxygen > la.maxValue[2])la.maxValue[2] = ls->m_OutsideOxygen;
if ( ls - > m_PrintTemp < la . minValue [ 2 ] ) la . minValue [ 2 ] = ls - > m_PrintTemp ;
if ( ls - > m_PrintTemp > la . maxValue [ 2 ] ) la . maxValue [ 2 ] = ls - > m_PrintTemp ;
//if (ls->m_PrintTemp2 < la.minValue[4])la.minValue[4] = ls->m_PrintTemp2;
//if (ls->m_PrintTemp2 > la.maxValue[4])la.maxValue[4] = ls->m_PrintTemp2;
if ( ls - > m_PrintHumidity < la . minValue [ 3 ] ) la . minValue [ 3 ] = ls - > m_PrintHumidity ;
if ( ls - > m_PrintHumidity > la . maxValue [ 3 ] ) la . maxValue [ 3 ] = ls - > m_PrintHumidity ;
//if (ls->m_PrintHumidity2 < la.minValue[6])la.minValue[6] = ls->m_PrintHumidity2;
//if (ls->m_PrintHumidity2 > la.maxValue[6])la.maxValue[6] = ls->m_PrintHumidity2;
if ( ls - > m_PrintPressure < la . minValue [ 4 ] ) la . minValue [ 4 ] = ls - > m_PrintPressure ;
if ( ls - > m_PrintPressure > la . maxValue [ 4 ] ) la . maxValue [ 4 ] = ls - > m_PrintPressure ;
if ( ls - > m_FanFrequency < la . minValue [ 5 ] ) la . minValue [ 5 ] = ls - > m_FanFrequency ;
if ( ls - > m_FanFrequency > la . maxValue [ 5 ] ) la . maxValue [ 5 ] = ls - > m_FanFrequency ;
if ( ls - > m_PlateTemp < la . minValue [ 6 ] ) la . minValue [ 6 ] = ls - > m_PlateTemp ;
if ( ls - > m_PlateTemp > la . maxValue [ 6 ] ) la . maxValue [ 6 ] = ls - > m_PlateTemp ;
if ( ls - > m_WindRate < la . minValue [ 7 ] ) la . minValue [ 7 ] = ls - > m_WindRate ;
if ( ls - > m_WindRate > la . maxValue [ 7 ] ) la . maxValue [ 7 ] = ls - > m_WindRate ;
if ( ls - > m_WaterTemp < la . minValue [ 8 ] ) la . minValue [ 8 ] = ls - > m_WaterTemp ;
if ( ls - > m_WaterTemp > la . maxValue [ 8 ] ) la . maxValue [ 8 ] = ls - > m_WaterTemp ;
la . paramValue [ 0 ] . push_back ( ls - > m_PrintOxygen1 ) ;
la . paramValue [ 1 ] . push_back ( ls - > m_PrintOxygen2 ) ;
//la.paramValue[2].push_back(ls->m_OutsideOxygen);
la . paramValue [ 2 ] . push_back ( ls - > m_PrintTemp ) ;
//la.paramValue[4].push_back(ls->m_PrintTemp2);
la . paramValue [ 3 ] . push_back ( ls - > m_PrintHumidity ) ;
//la.paramValue[6].push_back(ls->m_PrintHumidity2);
la . paramValue [ 4 ] . push_back ( ls - > m_PrintPressure ) ;
la . paramValue [ 5 ] . push_back ( ls - > m_FanFrequency ) ;
la . paramValue [ 6 ] . push_back ( ls - > m_PlateTemp ) ;
la . paramValue [ 7 ] . push_back ( ls - > m_WindRate ) ;
la . paramValue [ 8 ] . push_back ( ls - > m_WaterTemp ) ;
la . paramIndex . push_back ( ( float ) ( ls - > m_LayerIndex + 1 ) ) ;
EnterCriticalSection ( & m_StatusCs ) ;
m_LayerStatus . push_back ( ls ) ;
LeaveCriticalSection ( & m_StatusCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceInfo ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
2024-03-19 17:45:12 +08:00
void LogDao : : LogLayerStatus ( LayerStatus & status )
{
char sqlbuf [ 1024 ] ;
2024-05-22 15:58:54 +08:00
sprintf_s ( sqlbuf , sizeof ( sqlbuf ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,%d,%u,%d,%lf,%.2f, %.2f, %.2f,%.2f,%.2f,%.2f, %.2f, %.2f,%.2f, %.2f) " ,
2024-03-19 17:45:12 +08:00
LayerStatus : : STATUS_TABLE_NAME . c_str ( ) ,
LayerStatus : : STATUS_FIELD_INSERT_TIME . c_str ( ) ,
LayerStatus : : STATUS_FIELD_JOB_ID . c_str ( ) ,
LayerStatus : : STATUS_FIELD_LAYER_INDEX . c_str ( ) ,
LayerStatus : : STATUS_FIELD_SPEND_SECOND . c_str ( ) ,
LayerStatus : : STATUS_FIELD_MOLD_MAIN_POS . c_str ( ) ,
LayerStatus : : STATUS_FIELD_MOLD_SLAVE_POS . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_OXYGEN1 . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_OXYGEN2 . c_str ( ) ,
2024-05-22 15:58:54 +08:00
LayerStatus : : STATUS_FIELD_PRINT_TEMP . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PRINT_HUMIDITY . c_str ( ) ,
2024-03-19 17:45:12 +08:00
LayerStatus : : STATUS_FIELD_PRINT_PRESSURE . c_str ( ) ,
LayerStatus : : STATUS_FIELD_FAN_FREQUENCY . c_str ( ) ,
LayerStatus : : STATUS_FIELD_PLATE_TEMP . c_str ( ) ,
LayerStatus : : STATUS_FIELD_WIND_RATE . c_str ( ) ,
2024-05-22 15:58:54 +08:00
LayerStatus : : STATUS_FIELD_WATER_TEMP . c_str ( ) ,
2024-03-19 17:45:12 +08:00
status . m_InsertTitme ,
status . m_JobId ,
status . m_LayerIndex ,
status . m_SpendSecond ,
status . m_MoldMainPos ,
status . m_MoldSlavePos ,
status . m_PrintOxygen1 ,
status . m_PrintOxygen2 ,
2024-05-22 15:58:54 +08:00
status . m_PrintTemp ,
status . m_PrintHumidity ,
2024-03-19 17:45:12 +08:00
status . m_PrintPressure ,
status . m_FanFrequency ,
status . m_PlateTemp ,
status . m_WindRate ,
2024-05-22 15:58:54 +08:00
status . m_WaterTemp
2024-03-19 17:45:12 +08:00
) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( sqlbuf ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : GetAlarms ( struct tm & begin , struct tm & end , bool isRemote )
{
begin . tm_hour = 0 ;
begin . tm_min = 0 ;
begin . tm_sec = 0 ;
end . tm_hour = 23 ;
end . tm_min = 59 ;
end . tm_sec = 59 ;
time_t tbegin = mktime ( & begin ) ;
time_t tend = mktime ( & end ) ;
if ( tend < tbegin ) {
2024-05-22 15:58:54 +08:00
g_Toast - > AddToast ( new ToastBean ( g_LngManager - > Toast_CheckDate - > ShowText ( ) , 3000 ) ) ;
2024-03-19 17:45:12 +08:00
return ;
}
else if ( ( tend - tbegin ) > 60 * 60 * 24 * 90 ) {
2024-05-22 15:58:54 +08:00
g_Toast - > AddToast ( new ToastBean ( g_LngManager - > Toast_CheckDateRange90 - > ShowText ( ) , 3000 ) ) ;
2024-03-19 17:45:12 +08:00
return ;
}
EnterCriticalSection ( & m_AlarmCs ) ;
for ( size_t i = 0 ; i < m_Alarms . size ( ) ; + + i ) {
delete m_Alarms [ i ] ;
m_Alarms [ i ] = NULL ;
}
m_Alarms . clear ( ) ;
LeaveCriticalSection ( & m_AlarmCs ) ;
char buffer [ 1024 ] ;
if ( begin . tm_year = = end . tm_year )
{
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ,
HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ,
HistoryAlarm : : FIELD_TYPE . c_str ( ) ,
HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ,
HistoryAlarm : : TABLE_NAME . c_str ( ) ,
HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) , tbegin , tend , HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , buffer ) ;
while ( query . executeStep ( ) ) {
HistoryAlarm * alarm = new HistoryAlarm ( ) ;
alarm - > m_InsertTime = query . getColumn ( HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
alarm - > m_JobName = query . getColumn ( HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ) . getString ( ) ;
alarm - > m_Type = query . getColumn ( HistoryAlarm : : FIELD_TYPE . c_str ( ) ) . getInt ( ) ;
alarm - > m_AlarmContent = query . getColumn ( HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ) . getString ( ) ;
EnterCriticalSection ( & m_AlarmCs ) ;
m_Alarms . push_back ( alarm ) ;
LeaveCriticalSection ( & m_AlarmCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
else {
if ( m_DBMap . find ( begin . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s FROM %s WHERE %s BETWEEN %lld AND %lld ORDER BY %s " ,
HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ,
HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ,
HistoryAlarm : : FIELD_TYPE . c_str ( ) ,
HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ,
HistoryAlarm : : TABLE_NAME . c_str ( ) ,
HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) , tbegin , tend , HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_DBMap [ begin . tm_year + 1900 ] , buffer ) ;
while ( query . executeStep ( ) ) {
HistoryAlarm * alarm = new HistoryAlarm ( ) ;
alarm - > m_InsertTime = query . getColumn ( HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
alarm - > m_JobName = query . getColumn ( HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ) . getString ( ) ;
alarm - > m_Type = query . getColumn ( HistoryAlarm : : FIELD_TYPE . c_str ( ) ) . getInt ( ) ;
alarm - > m_AlarmContent = query . getColumn ( HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ) . getString ( ) ;
EnterCriticalSection ( & m_AlarmCs ) ;
m_Alarms . push_back ( alarm ) ;
LeaveCriticalSection ( & m_AlarmCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
if ( m_DBMap . find ( end . tm_year + 1900 ) = = m_DBMap . end ( ) ) return ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query2 ( * m_DBMap [ end . tm_year + 1900 ] , buffer ) ;
while ( query2 . executeStep ( ) ) {
HistoryAlarm * alarm = new HistoryAlarm ( ) ;
alarm - > m_InsertTime = query2 . getColumn ( HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
alarm - > m_JobName = query2 . getColumn ( HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ) . getString ( ) ;
alarm - > m_Type = query2 . getColumn ( HistoryAlarm : : FIELD_TYPE . c_str ( ) ) . getInt ( ) ;
alarm - > m_AlarmContent = query2 . getColumn ( HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ) . getString ( ) ;
EnterCriticalSection ( & m_AlarmCs ) ;
m_Alarms . push_back ( alarm ) ;
LeaveCriticalSection ( & m_AlarmCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
}
void LogDao : : AddHistoryAlarm ( string jobname , int type , string code )
{
time_t tnow ;
time ( & tnow ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s) VALUES(%lld,'%s',%d,'%s') " ,
HistoryAlarm : : TABLE_NAME . c_str ( ) , HistoryAlarm : : FIELD_INSERT_TIME . c_str ( ) ,
HistoryAlarm : : FIELD_JOB_NAME . c_str ( ) ,
HistoryAlarm : : FIELD_TYPE . c_str ( ) , HistoryAlarm : : FIELD_ALARM_CONTENT . c_str ( ) ,
tnow , jobname . c_str ( ) , type , code . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
2024-05-22 15:58:54 +08:00
DWORD WINAPI LogDao : : DeleteImageProc ( LogDao * _this ) {
if ( _this ) {
_this - > DeleteImageRun ( ) ;
}
return 0 ;
}
void LogDao : : DeleteImageRun ( )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s FROM %s ORDER BY %s DESC " ,
ImageInfo : : FIELD_ID . c_str ( ) ,
ImageInfo : : FIELD_INSERT_TIME . c_str ( ) ,
ImageInfo : : FIELD_JOB_ID . c_str ( ) ,
ImageInfo : : TABLE_NAME . c_str ( ) ,
ImageInfo : : FIELD_JOB_ID . c_str ( ) ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try {
SQLite : : Statement query ( * m_pImgDB , buffer ) ;
vector < int > ids ;
vector < int > des ;
unsigned int count = 0 ;
while ( query . executeStep ( ) ) {
int id = query . getColumn ( ImageInfo : : FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
if ( count < ImageInfo : : MAX_JOB_SIZE ) {
ids . push_back ( id ) ;
}
else {
des . push_back ( id ) ;
}
count + + ;
}
SQLite : : Transaction transaction ( * m_pImgDB ) ;
for ( size_t i = 0 ; i < des . size ( ) ; + + i ) {
sprintf_s ( buffer , sizeof ( buffer ) , " DELETE FROM %s WHERE %s=%d " ,
ImageInfo : : TABLE_NAME . c_str ( ) ,
ImageInfo : : FIELD_JOB_ID . c_str ( ) , des [ i ] ) ;
m_pImgDB - > exec ( buffer ) ;
sprintf_s ( buffer , sizeof ( buffer ) , " DELETE FROM %s WHERE %s=%d " ,
LogImage : : IMAGE_TABLE_NAME . c_str ( ) ,
LogImage : : IMAGE_FIELD_JOB_ID . c_str ( ) , des [ i ] ) ;
m_pImgDB - > exec ( buffer ) ;
}
transaction . commit ( ) ;
m_ImageFlag = false ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
}
2024-03-19 17:45:12 +08:00
2024-05-22 15:58:54 +08:00
void LogDao : : LogImageBeforePrint ( int jobid , bool iscontinue )
{
char buffer [ 1024 ] ;
EnterCriticalSection ( & m_ImgDbCs ) ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s=%d " , ImageInfo : : TABLE_NAME . c_str ( ) , ImageInfo : : FIELD_JOB_ID . c_str ( ) , jobid ) ;
try {
SQLite : : Statement query ( * m_pImgDB , buffer ) ;
if ( ! query . executeStep ( ) ) {
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s) VALUES(%lld,%d) " ,
ImageInfo : : TABLE_NAME . c_str ( ) ,
ImageInfo : : FIELD_INSERT_TIME . c_str ( ) ,
ImageInfo : : FIELD_JOB_ID . c_str ( ) ,
time ( 0 ) , jobid ) ;
m_pImgDB - > exec ( buffer ) ;
}
else {
if ( ! iscontinue ) {
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s) VALUES(%lld,%d) " ,
ImageInfo : : TABLE_NAME . c_str ( ) ,
ImageInfo : : FIELD_INSERT_TIME . c_str ( ) ,
ImageInfo : : FIELD_JOB_ID . c_str ( ) ,
time ( 0 ) , jobid ) ;
m_pImgDB - > exec ( buffer ) ;
}
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
}
void LogDao : : DeleteImageAfterPrint ( )
{
if ( m_ImageFlag ) return ;
m_ImageFlag = true ;
m_ImageThread = AtlCreateThread ( DeleteImageProc , this ) ;
CloseHandle ( m_ImageThread ) ;
}
2024-03-19 17:45:12 +08:00
void LogDao : : AddImage ( LogImage & image )
{
2024-05-22 15:58:54 +08:00
if ( image . m_Image = = NULL | | image . m_ImageLength = = 0 ) return ;
2024-03-19 17:45:12 +08:00
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s) VALUES(%lld,%d,%d,%u,?) " ,
LogImage : : IMAGE_TABLE_NAME . c_str ( ) ,
LogImage : : IMAGE_FIELD_INSERT_TIME . c_str ( ) ,
LogImage : : IMAGE_FIELD_JOB_ID . c_str ( ) ,
LogImage : : IMAGE_FIELD_IMAGE_TYPE . c_str ( ) ,
LogImage : : IMAGE_FIELD_LAYER_INDEX . c_str ( ) ,
LogImage : : IMAGE_FIELD_IMAGE . c_str ( ) ,
image . m_InsertTime , image . m_JobId , image . m_Type , image . m_LayerIndex ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
2024-05-22 15:58:54 +08:00
SQLite : : Statement query ( * m_pImgDB , buffer ) ;
2024-03-19 17:45:12 +08:00
query . bind ( 1 , image . m_Image , image . m_ImageLength ) ;
query . exec ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
}
void LogDao : : FindImageInfo ( bool isRemote )
{
if ( m_CurrentShowJob = = NULL ) return ;
2024-05-22 15:58:54 +08:00
if ( m_ImgDBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_ImgDBMap . end ( ) ) return ;
SQLite : : Database * db = m_ImgDBMap [ m_CurrentShowJob - > m_YearBelong ] ;
2024-03-19 17:45:12 +08:00
EnterCriticalSection ( & m_LogImageCs ) ;
for ( size_t i = 0 ; i < m_LogImages . size ( ) ; i + + )
{
delete m_LogImages [ i ] ;
m_LogImages [ i ] = NULL ;
}
m_LogImages . clear ( ) ;
LeaveCriticalSection ( & m_LogImageCs ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s,%s FROM %s WHERE %s=%d " ,
LogImage : : IMAGE_FIELD_ID . c_str ( ) ,
LogImage : : IMAGE_FIELD_INSERT_TIME . c_str ( ) ,
LogImage : : IMAGE_FIELD_JOB_ID . c_str ( ) ,
LogImage : : IMAGE_FIELD_IMAGE_TYPE . c_str ( ) ,
LogImage : : IMAGE_FIELD_LAYER_INDEX . c_str ( ) ,
LogImage : : IMAGE_TABLE_NAME . c_str ( ) ,
LogImage : : IMAGE_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
2024-05-22 15:58:54 +08:00
SQLite : : Statement query ( * db , buffer ) ;
2024-03-19 17:45:12 +08:00
while ( query . executeStep ( ) ) {
LogImage * image = new LogImage ( ) ;
image - > m_Id = query . getColumn ( LogImage : : IMAGE_FIELD_ID . c_str ( ) ) . getInt ( ) ;
image - > m_InsertTime = query . getColumn ( LogImage : : IMAGE_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
image - > m_JobId = query . getColumn ( LogImage : : IMAGE_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
image - > m_Type = LogImage : : ImageType ( query . getColumn ( LogImage : : IMAGE_FIELD_IMAGE_TYPE . c_str ( ) ) . getInt ( ) ) ;
image - > m_LayerIndex = query . getColumn ( LogImage : : IMAGE_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
EnterCriticalSection ( & m_LogImageCs ) ;
m_LogImages . push_back ( image ) ;
LeaveCriticalSection ( & m_LogImageCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
}
2024-05-22 15:58:54 +08:00
bool LogDao : : FindImage ( long id , unsigned char * * image , unsigned long * imagesize , bool isRemote )
2024-03-19 17:45:12 +08:00
{
if ( m_CurrentShowJob = = NULL ) return false ;
2024-05-22 15:58:54 +08:00
if ( m_ImgDBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_ImgDBMap . end ( ) ) return false ;
2024-03-19 17:45:12 +08:00
2024-05-22 15:58:54 +08:00
SQLite : : Database * db = m_ImgDBMap [ m_CurrentShowJob - > m_YearBelong ] ;
2024-03-19 17:45:12 +08:00
bool rel = false ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s FROM %s WHERE %s=%d " ,
LogImage : : IMAGE_FIELD_IMAGE . c_str ( ) ,
LogImage : : IMAGE_TABLE_NAME . c_str ( ) ,
LogImage : : IMAGE_FIELD_ID . c_str ( ) , id ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
2024-05-22 15:58:54 +08:00
SQLite : : Statement query ( * db , buffer ) ;
2024-03-19 17:45:12 +08:00
if ( query . executeStep ( ) ) {
SQLite : : Column colBlob = query . getColumn ( LogImage : : IMAGE_FIELD_IMAGE . c_str ( ) ) ;
int blobsize = colBlob . getBytes ( ) ;
if ( blobsize > 0 ) {
unsigned char * pdata = ( unsigned char * ) colBlob . getBlob ( ) ;
* image = new unsigned char [ blobsize ] ;
memcpy_s ( * image , blobsize , pdata , blobsize ) ;
* imagesize = blobsize ;
rel = true ;
}
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
return rel ;
}
2024-05-22 15:58:54 +08:00
void LogDao : : AddIFImage ( IFImage * image )
{
if ( image - > m_Image = = NULL | | image - > m_ImageLength = = 0 | | image - > m_IFData = = NULL | | image - > m_ImageCols = = 0 | | image - > m_ImageRows = = 0 ) return ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,%d,%d,%u,%u,%u,%u,?,?) " ,
IFImage : : IFIMAGE_TABLE_NAME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_INSERT_TIME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_JOB_ID . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_TYPE . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_LAYER_INDEX . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_COLS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_ROWS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_LENGTH . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IFDATA . c_str ( ) ,
image - > m_InsertTime , image - > m_JobId , image - > m_Type , image - > m_LayerIndex , image - > m_ImageCols , image - > m_ImageRows , image - > m_ImageLength ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
SQLite : : Statement query ( * m_pImgDB , buffer ) ;
query . bind ( 1 , image - > m_Image , image - > m_ImageLength ) ;
query . bind ( 2 , ( unsigned char * ) image - > m_IFData , image - > m_ImageCols * image - > m_ImageRows * sizeof ( float ) ) ;
query . exec ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_ImgDbCs ) ;
}
void LogDao : : FindIFImageInfo ( )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
if ( m_CurrentShowJob = = NULL ) return ;
if ( m_ImgDBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_ImgDBMap . end ( ) ) return ;
SQLite : : Database * db = m_ImgDBMap [ m_CurrentShowJob - > m_YearBelong ] ;
EnterCriticalSection ( & m_LogImageCs ) ;
for ( size_t i = 0 ; i < m_IFImages . size ( ) ; i + + )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
delete m_IFImages [ i ] ;
m_IFImages [ i ] = NULL ;
2024-03-19 17:45:12 +08:00
}
2024-05-22 15:58:54 +08:00
m_IFImages . clear ( ) ;
LeaveCriticalSection ( & m_LogImageCs ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s,%s,%s,%s,%s FROM %s WHERE %s=%d " ,
IFImage : : IFIMAGE_FIELD_ID . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_INSERT_TIME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_JOB_ID . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_TYPE . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_LAYER_INDEX . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_COLS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_ROWS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_LENGTH . c_str ( ) ,
IFImage : : IFIMAGE_TABLE_NAME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ) ;
/*sprintf_s(buffer, sizeof(buffer), "SELECT %s,%s,%s,%s,%s,%s,%s,%s FROM %s",
IFImage : : IFIMAGE_FIELD_ID . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_INSERT_TIME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_JOB_ID . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_TYPE . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_LAYER_INDEX . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_COLS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_ROWS . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IMAGE_LENGTH . c_str ( ) ,
IFImage : : IFIMAGE_TABLE_NAME . c_str ( ) ) ; */
2024-03-19 17:45:12 +08:00
2024-05-22 15:58:54 +08:00
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
IFImage * image = new IFImage ( ) ;
image - > m_Id = query . getColumn ( IFImage : : IFIMAGE_FIELD_ID . c_str ( ) ) . getInt ( ) ;
image - > m_InsertTime = query . getColumn ( IFImage : : IFIMAGE_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
image - > m_JobId = query . getColumn ( IFImage : : IFIMAGE_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
image - > m_Type = IFImage : : ImageType ( query . getColumn ( IFImage : : IFIMAGE_FIELD_IMAGE_TYPE . c_str ( ) ) . getInt ( ) ) ;
image - > m_LayerIndex = query . getColumn ( IFImage : : IFIMAGE_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
image - > m_ImageCols = query . getColumn ( IFImage : : IFIMAGE_FIELD_IMAGE_COLS . c_str ( ) ) . getUInt ( ) ;
image - > m_ImageRows = query . getColumn ( IFImage : : IFIMAGE_FIELD_IMAGE_ROWS . c_str ( ) ) . getUInt ( ) ;
image - > m_ImageLength = query . getColumn ( IFImage : : IFIMAGE_FIELD_IMAGE_LENGTH . c_str ( ) ) . getUInt ( ) ;
EnterCriticalSection ( & m_LogImageCs ) ;
m_IFImages . push_back ( image ) ;
LeaveCriticalSection ( & m_LogImageCs ) ;
}
}
catch ( SQLite : : Exception & e )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
g_log - > TraceError ( e . getErrorStr ( ) ) ;
2024-03-19 17:45:12 +08:00
}
2024-05-22 15:58:54 +08:00
LeaveCriticalSection ( & m_ImgDbCs ) ;
2024-03-19 17:45:12 +08:00
}
2024-05-22 15:58:54 +08:00
bool LogDao : : FindIFImage ( long id , unsigned char * * image , unsigned long * imagesize , float * * tdata , unsigned long * datasize )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
if ( m_CurrentShowJob = = NULL ) return false ;
if ( m_ImgDBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_ImgDBMap . end ( ) ) return false ;
SQLite : : Database * db = m_ImgDBMap [ m_CurrentShowJob - > m_YearBelong ] ;
bool rel = false ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s FROM %s WHERE %s=%d " ,
IFImage : : IFIMAGE_FIELD_IMAGE . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_IFDATA . c_str ( ) ,
IFImage : : IFIMAGE_TABLE_NAME . c_str ( ) ,
IFImage : : IFIMAGE_FIELD_ID . c_str ( ) , id ) ;
EnterCriticalSection ( & m_ImgDbCs ) ;
try
{
SQLite : : Statement query ( * db , buffer ) ;
if ( query . executeStep ( ) ) {
SQLite : : Column colBlob = query . getColumn ( IFImage : : IFIMAGE_FIELD_IMAGE . c_str ( ) ) ;
int blobsize = colBlob . getBytes ( ) ;
SQLite : : Column colBlob2 = query . getColumn ( IFImage : : IFIMAGE_FIELD_IFDATA . c_str ( ) ) ;
int blobsize2 = colBlob2 . getBytes ( ) ;
if ( blobsize > 0 ) {
unsigned char * pdata = ( unsigned char * ) colBlob . getBlob ( ) ;
* image = new unsigned char [ blobsize ] ;
memcpy_s ( * image , blobsize , pdata , blobsize ) ;
* imagesize = blobsize ;
rel = true ;
}
if ( blobsize2 > 0 ) {
float * pdata = ( float * ) colBlob2 . getBlob ( ) ;
int ds = blobsize2 / 4 ;
if ( ds > 0 ) {
* tdata = new float [ ds ] ;
for ( int i = 0 ; i < ds ; i + + ) {
( * tdata ) [ i ] = pdata [ i ] ;
}
* datasize = ds ;
rel = true ;
}
else {
* datasize = 0 ;
}
}
}
}
catch ( SQLite : : Exception & e )
2024-03-19 17:45:12 +08:00
{
2024-05-22 15:58:54 +08:00
g_log - > TraceError ( e . getErrorStr ( ) ) ;
2024-03-19 17:45:12 +08:00
}
2024-05-22 15:58:54 +08:00
LeaveCriticalSection ( & m_ImgDbCs ) ;
return rel ;
2024-03-19 17:45:12 +08:00
}
void LogDao : : AddPartAddition ( PartAddition & pa )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s) VALUES('%s',%d,%d,%.2f,%.2f,%.2f) " ,
PartAddition : : PART_TABLE_NAME . c_str ( ) ,
PartAddition : : FIELD_JOB_ID . c_str ( ) ,
PartAddition : : FIELD_SOURCE_PART . c_str ( ) ,
PartAddition : : FIELD_NEW_PART . c_str ( ) ,
PartAddition : : FIELD_X_OFFSET . c_str ( ) ,
PartAddition : : FIELD_Y_OFFSET . c_str ( ) ,
PartAddition : : FIELD_ROTATE . c_str ( ) ,
pa . m_JobId . c_str ( ) , pa . m_SourcePart , pa . m_NewPart , pa . m_XOffset , pa . m_YOffset , pa . m_Rotate ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : DeletePartAddition ( string jid , int partid ) {
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " DELETE FROM %s WHERE %s='%s' AND %s=%d " ,
PartAddition : : PART_TABLE_NAME . c_str ( ) ,
PartAddition : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ,
PartAddition : : FIELD_NEW_PART . c_str ( ) , partid ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : UpdatePartAdditionOffset ( string jid , int partid , float x , float y , float rotate )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " UPDATE %s SET %s=%.2f,%s=%.2f,%s=%.2f WHERE %s='%s' AND %s=%d " ,
PartAddition : : PART_TABLE_NAME . c_str ( ) ,
PartAddition : : FIELD_X_OFFSET . c_str ( ) , x ,
PartAddition : : FIELD_Y_OFFSET . c_str ( ) , y ,
PartAddition : : FIELD_ROTATE . c_str ( ) , rotate ,
PartAddition : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ,
PartAddition : : FIELD_NEW_PART . c_str ( ) , partid ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindPartAddition ( string jid , vector < PartAddition * > & vec )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s='%s' " ,
PartAddition : : PART_TABLE_NAME . c_str ( ) ,
PartAddition : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
SQLite : : Statement query ( * m_pDB , buffer ) ;
while ( query . executeStep ( ) ) {
PartAddition * pa = new PartAddition ( ) ;
pa - > m_Id = query . getColumn ( PartAddition : : FIELD_ID . c_str ( ) ) . getInt ( ) ;
pa - > m_JobId = query . getColumn ( PartAddition : : FIELD_JOB_ID . c_str ( ) ) . getString ( ) ;
pa - > m_SourcePart = query . getColumn ( PartAddition : : FIELD_SOURCE_PART . c_str ( ) ) . getInt ( ) ;
pa - > m_NewPart = query . getColumn ( PartAddition : : FIELD_NEW_PART . c_str ( ) ) . getInt ( ) ;
pa - > m_XOffset = ( float ) ( query . getColumn ( PartAddition : : FIELD_X_OFFSET . c_str ( ) ) . getDouble ( ) ) ;
pa - > m_YOffset = ( float ) ( query . getColumn ( PartAddition : : FIELD_Y_OFFSET . c_str ( ) ) . getDouble ( ) ) ;
pa - > m_Rotate = ( float ) ( query . getColumn ( PartAddition : : FIELD_ROTATE . c_str ( ) ) . getDouble ( ) ) ;
vec . push_back ( pa ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : AddAxisLog ( AxisLog * axisLog )
{
if ( ! axisLog ) return ;
// if (axisLog->m_MoldDataCount == 0 && axisLog->m_PowderDataCount == 0 && axisLog->m_ArmDataCount == 0 && axisLog->m_SupplyDataCount == 0)return;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,%u,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%u,%u,%u,%u,?,?,?,?) " ,
AxisLog : : AL_TABLE_NAME . c_str ( ) ,
AxisLog : : AL_FIELD_JOB_ID . c_str ( ) ,
AxisLog : : AL_FIELD_LAYER_INDEX . c_str ( ) ,
AxisLog : : AL_FIELD_COVER_TYPE . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_MOLD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_LINEAR_ENCODER_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_LOAD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_ARM_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_SUPPLY_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_MOLD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_LINEAR_ENCODER_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_LOAD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_ARM_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_SUPPLY_POS . c_str ( ) ,
AxisLog : : AL_FIELD_MOLD_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_LOAD_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_ARM_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_SUPPLY_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_MOLD_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_LOAD_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_ARM_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_SUPPLY_DATA . c_str ( ) ,
axisLog - > m_JobId , axisLog - > m_LayerIndex , axisLog - > m_CoverType ,
axisLog - > m_PreMoldPos , axisLog - > m_PreLinearEncoderPos , axisLog - > m_PreLoadPos , axisLog - > m_PreArmPos , axisLog - > m_PreSupplyPos ,
axisLog - > m_AftMoldPos , axisLog - > m_AftLinearEncoderPos , axisLog - > m_AftLoadPos , axisLog - > m_AftArmPos , axisLog - > m_AftSupplyPos ,
axisLog - > m_MoldDataCount , axisLog - > m_LoadDataCount , axisLog - > m_ArmDataCount , axisLog - > m_SupplyDataCount ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
SQLite : : Statement query ( * m_pDB , buffer ) ;
if ( axisLog - > m_MoldDataCount > 0 ) query . bind ( 1 , axisLog - > m_MoldData , axisLog - > m_MoldDataCount * sizeof ( float ) ) ;
else query . bind ( 1 ) ;
if ( axisLog - > m_LoadDataCount > 0 ) query . bind ( 2 , axisLog - > m_LoadData , axisLog - > m_LoadDataCount * sizeof ( float ) ) ;
else query . bind ( 2 ) ;
if ( axisLog - > m_ArmDataCount > 0 ) query . bind ( 3 , axisLog - > m_ArmData , axisLog - > m_ArmDataCount * sizeof ( float ) ) ;
else query . bind ( 3 ) ;
if ( axisLog - > m_SupplyDataCount > 0 ) query . bind ( 4 , axisLog - > m_SupplyData , axisLog - > m_SupplyDataCount * sizeof ( float ) ) ;
else query . bind ( 4 ) ;
query . exec ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindAxisLogInfo ( bool isRemote )
{
if ( m_CurrentShowJob = = NULL ) return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) ) return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
EnterCriticalSection ( & m_AxisLogCs ) ;
for ( size_t i = 0 ; i < m_AxisLogs . size ( ) ; i + + )
{
delete m_AxisLogs [ i ] ;
m_AxisLogs [ i ] = NULL ;
}
m_AxisLogs . clear ( ) ;
LeaveCriticalSection ( & m_AxisLogCs ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s FROM %s WHERE %s=%d " ,
AxisLog : : AL_FIELD_ID . c_str ( ) ,
AxisLog : : AL_FIELD_JOB_ID . c_str ( ) ,
AxisLog : : AL_FIELD_LAYER_INDEX . c_str ( ) ,
AxisLog : : AL_FIELD_COVER_TYPE . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_MOLD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_LINEAR_ENCODER_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_LOAD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_ARM_POS . c_str ( ) ,
AxisLog : : AL_FIELD_PRE_SUPPLY_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_MOLD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_LINEAR_ENCODER_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_LOAD_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_ARM_POS . c_str ( ) ,
AxisLog : : AL_FIELD_AFT_SUPPLY_POS . c_str ( ) ,
AxisLog : : AL_FIELD_MOLD_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_LOAD_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_ARM_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_FIELD_SUPPLY_DATA_COUNT . c_str ( ) ,
AxisLog : : AL_TABLE_NAME . c_str ( ) ,
AxisLog : : AL_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
AxisLog * lc = new AxisLog ( ) ;
lc - > m_Id = query . getColumn ( AxisLog : : AL_FIELD_ID . c_str ( ) ) . getInt64 ( ) ;
lc - > m_JobId = query . getColumn ( AxisLog : : AL_FIELD_JOB_ID . c_str ( ) ) . getInt64 ( ) ;
lc - > m_LayerIndex = query . getColumn ( AxisLog : : AL_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
lc - > m_CoverType = query . getColumn ( AxisLog : : AL_FIELD_COVER_TYPE . c_str ( ) ) . getInt ( ) ;
lc - > m_PreMoldPos = query . getColumn ( AxisLog : : AL_FIELD_PRE_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_PreLinearEncoderPos = query . getColumn ( AxisLog : : AL_FIELD_PRE_LINEAR_ENCODER_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_PreLoadPos = query . getColumn ( AxisLog : : AL_FIELD_PRE_LOAD_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_PreArmPos = query . getColumn ( AxisLog : : AL_FIELD_PRE_ARM_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_PreSupplyPos = query . getColumn ( AxisLog : : AL_FIELD_PRE_SUPPLY_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_AftMoldPos = query . getColumn ( AxisLog : : AL_FIELD_AFT_MOLD_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_AftLinearEncoderPos = query . getColumn ( AxisLog : : AL_FIELD_AFT_LINEAR_ENCODER_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_AftLoadPos = query . getColumn ( AxisLog : : AL_FIELD_AFT_LOAD_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_AftArmPos = query . getColumn ( AxisLog : : AL_FIELD_AFT_ARM_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_AftSupplyPos = query . getColumn ( AxisLog : : AL_FIELD_AFT_SUPPLY_POS . c_str ( ) ) . getDouble ( ) ;
lc - > m_MoldDataCount = query . getColumn ( AxisLog : : AL_FIELD_MOLD_DATA_COUNT . c_str ( ) ) . getUInt ( ) ;
lc - > m_LoadDataCount = query . getColumn ( AxisLog : : AL_FIELD_LOAD_DATA_COUNT . c_str ( ) ) . getUInt ( ) ;
lc - > m_ArmDataCount = query . getColumn ( AxisLog : : AL_FIELD_ARM_DATA_COUNT . c_str ( ) ) . getUInt ( ) ;
lc - > m_SupplyDataCount = query . getColumn ( AxisLog : : AL_FIELD_SUPPLY_DATA_COUNT . c_str ( ) ) . getUInt ( ) ;
EnterCriticalSection ( & m_AxisLogCs ) ;
m_AxisLogs . push_back ( lc ) ;
LeaveCriticalSection ( & m_AxisLogCs ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindAxisLogData ( AxisLog * axisLog , bool isRemote )
{
if ( ! axisLog ) return ;
if ( m_CurrentShowJob = = NULL ) return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) ) return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s FROM %s WHERE %s=%lld " ,
AxisLog : : AL_FIELD_MOLD_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_LOAD_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_ARM_DATA . c_str ( ) ,
AxisLog : : AL_FIELD_SUPPLY_DATA . c_str ( ) ,
AxisLog : : AL_TABLE_NAME . c_str ( ) ,
AxisLog : : AL_FIELD_ID . c_str ( ) , axisLog - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
if ( query . executeStep ( ) ) {
int moldBytes = query . getColumn ( AxisLog : : AL_FIELD_MOLD_DATA . c_str ( ) ) . getBytes ( ) ;
int loadBytes = query . getColumn ( AxisLog : : AL_FIELD_LOAD_DATA . c_str ( ) ) . getBytes ( ) ;
int armBytes = query . getColumn ( AxisLog : : AL_FIELD_ARM_DATA . c_str ( ) ) . getBytes ( ) ;
int supplyBytes = query . getColumn ( AxisLog : : AL_FIELD_SUPPLY_DATA . c_str ( ) ) . getBytes ( ) ;
if ( moldBytes > = sizeof ( float ) ) {
float * pdata = ( float * ) query . getColumn ( AxisLog : : AL_FIELD_MOLD_DATA . c_str ( ) ) . getBlob ( ) ;
int datasize = moldBytes / 4 ;
axisLog - > m_MoldDataCount = datasize ;
if ( axisLog - > m_MoldData ) {
delete [ ] axisLog - > m_MoldData ;
axisLog - > m_MoldData = NULL ;
}
axisLog - > m_MoldData = new float [ datasize ] ;
for ( int j = 0 ; j < datasize ; j + + ) {
axisLog - > m_MoldData [ j ] = pdata [ j ] ;
}
}
else {
if ( axisLog - > m_MoldData ) {
delete [ ] axisLog - > m_MoldData ;
axisLog - > m_MoldData = NULL ;
}
axisLog - > m_MoldDataCount = 0 ;
}
if ( loadBytes > = sizeof ( float ) ) {
float * pdata = ( float * ) query . getColumn ( AxisLog : : AL_FIELD_LOAD_DATA . c_str ( ) ) . getBlob ( ) ;
int datasize = loadBytes / 4 ;
axisLog - > m_LoadDataCount = datasize ;
if ( axisLog - > m_LoadData ) {
delete [ ] axisLog - > m_LoadData ;
axisLog - > m_LoadData = NULL ;
}
axisLog - > m_LoadData = new float [ datasize ] ;
for ( int j = 0 ; j < datasize ; j + + ) {
axisLog - > m_LoadData [ j ] = pdata [ j ] ;
}
}
else {
if ( axisLog - > m_LoadData ) {
delete [ ] axisLog - > m_LoadData ;
axisLog - > m_LoadData = NULL ;
}
axisLog - > m_LoadDataCount = 0 ;
}
if ( armBytes > = sizeof ( float ) ) {
float * pdata = ( float * ) query . getColumn ( AxisLog : : AL_FIELD_ARM_DATA . c_str ( ) ) . getBlob ( ) ;
int datasize = armBytes / 4 ;
axisLog - > m_ArmDataCount = datasize ;
if ( axisLog - > m_ArmData ) {
delete [ ] axisLog - > m_ArmData ;
axisLog - > m_ArmData = NULL ;
}
axisLog - > m_ArmData = new float [ datasize ] ;
for ( int j = 0 ; j < datasize ; j + + ) {
axisLog - > m_ArmData [ j ] = pdata [ j ] ;
}
}
else {
if ( axisLog - > m_ArmData ) {
delete [ ] axisLog - > m_ArmData ;
axisLog - > m_ArmData = NULL ;
}
axisLog - > m_ArmDataCount = 0 ;
}
if ( supplyBytes > = sizeof ( float ) ) {
float * pdata = ( float * ) query . getColumn ( AxisLog : : AL_FIELD_SUPPLY_DATA . c_str ( ) ) . getBlob ( ) ;
int datasize = supplyBytes / 4 ;
axisLog - > m_SupplyDataCount = datasize ;
if ( axisLog - > m_SupplyData ) {
delete [ ] axisLog - > m_SupplyData ;
axisLog - > m_SupplyData = NULL ;
}
axisLog - > m_SupplyData = new float [ datasize ] ;
for ( int j = 0 ; j < datasize ; j + + ) {
axisLog - > m_SupplyData [ j ] = pdata [ j ] ;
}
}
else {
if ( axisLog - > m_SupplyData ) {
delete [ ] axisLog - > m_SupplyData ;
axisLog - > m_SupplyData = NULL ;
}
axisLog - > m_SupplyDataCount = 0 ;
}
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
2024-05-22 15:58:54 +08:00
void LogDao : : StartExport ( string path , LogAssist & assist )
{
if ( m_ExportThread ! = INVALID_HANDLE_VALUE ) return ;
m_ExportPath = path ;
m_ExportFlag = true ;
m_IsExportData = assist . isExportData ;
m_IsExportAxisData = assist . isExportAxisData ;
m_IsExportImage = assist . isExportImage ;
m_IsExportScanData = assist . isExportScanData ;
m_ExportThread = AtlCreateThread ( ExportProc , this ) ;
}
2024-03-19 17:45:12 +08:00
void LogDao : : StopExport ( )
{
m_ExportFlag = false ;
if ( m_ExportThread ! = INVALID_HANDLE_VALUE ) {
if ( WaitForSingleObject ( m_ExportThread , 1000 ) = = WAIT_TIMEOUT ) {
TerminateThread ( m_ExportThread , 1 ) ;
}
CloseHandle ( m_ExportThread ) ;
m_ExportThread = INVALID_HANDLE_VALUE ;
}
}
bool LogDao : : IsExportFinished ( )
{
return ! m_ExportFlag ;
}
DWORD WINAPI LogDao : : ExportProc ( LogDao * _this )
{
if ( _this ) {
2024-05-22 15:58:54 +08:00
_this - > ExportRun ( ) ;
2024-03-19 17:45:12 +08:00
_this - > m_ExportFlag = false ;
CloseHandle ( _this - > m_ExportThread ) ;
_this - > m_ExportThread = INVALID_HANDLE_VALUE ;
}
return 0 ;
}
2024-05-22 15:58:54 +08:00
void LogDao : : ExportRun ( )
{
m_ExportInfo = g_LngManager - > SLog_ExportProgressCreatePath - > ShowText ( ) ;
if ( 0 ! = _access ( m_ExportPath . c_str ( ) , 0 ) ) {
_mkdir ( m_ExportPath . c_str ( ) ) ;
}
string imagePath = m_ExportPath + " /images " ;
_mkdir ( imagePath . c_str ( ) ) ;
char buffer [ 2048 ] ;
if ( m_IsExportData ) {
m_ExportProgress = 0 ;
m_ExportInfo = g_LngManager - > SLog_ExportProgressData - > ShowText ( ) ;
string file = m_ExportPath + " /envdata.csv " ;
ofstream ofs ( file , ios : : trunc ) ;
if ( ofs . is_open ( ) ) {
ofs < < " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <EFBFBD> ,<2C> <> ʱ(s),<2C> <> λ<EFBFBD> <CEBB> ,<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 1(PPM),<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2(PPM),<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> ¶<EFBFBD> (<28> <> ),ʪ<> <CAAA> (%%),<2C> <> <EFBFBD> <EFBFBD> ѹ<EFBFBD> <D1B9> (kPa),<2C> <> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <C6B5> (Hz),<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> ¶<EFBFBD> (<28> <> ),<2C> <> <EFBFBD> <EFBFBD> ,ˮ<> <CBAE> (<28> <> )\n " ;
EnterCriticalSection ( & m_StatusCs ) ;
for ( size_t i = 0 ; i < m_LayerStatus . size ( ) ; + + i ) {
if ( ! m_ExportFlag ) break ;
LayerStatus * ls = m_LayerStatus [ i ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s,%u,%d,%.3f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f \n " ,
TimeHelper : : Time2Str ( ls - > m_InsertTitme ) . c_str ( ) ,
ls - > m_SpendSecond ,
ls - > m_LayerIndex + 1 , ls - > m_PrintOxygen1 , ls - > m_PrintOxygen2 , ls - > m_PrintTemp ,
ls - > m_PrintHumidity , ls - > m_PrintPressure , ls - > m_FanFrequency , ls - > m_PlateTemp , ls - > m_WindRate , ls - > m_WaterTemp ) ;
ofs < < buffer ;
m_ExportProgress = ( float ) ( i + 1 ) / m_LayerStatus . size ( ) ;
}
LeaveCriticalSection ( & m_StatusCs ) ;
ofs . flush ( ) ;
}
ofs . close ( ) ;
}
if ( m_IsExportAxisData ) {
m_ExportProgress = 0 ;
m_ExportInfo = g_LngManager - > SLog_ExportProgressData - > ShowText ( ) ;
string file = m_ExportPath + " /axisdata.csv " ;
ofstream ofs ( file , ios : : trunc ) ;
if ( ofs . is_open ( ) ) {
string strhead = " <EFBFBD> <EFBFBD> λ<EFBFBD> <EFBFBD> ,<2C> ̷۷ <CCB7> ʽ ,<2C> <> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> ,<2C> ̺<EFBFBD> <CCBA> <EFBFBD> <EFBFBD> <EFBFBD> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> ,<2C> <> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> դλ<D5A4> ã<EFBFBD> mm<6D> <6D> ,<2C> ̺<EFBFBD> <CCBA> <EFBFBD> <EFBFBD> <EFBFBD> դλ<D5A4> ã<EFBFBD> mm<6D> <6D> ,<2C> <> ǰ<EFBFBD> ̷۱ <CCB7> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> ,<2C> ̺<EFBFBD> <CCBA> ̷۱ <CCB7> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> , <20> <> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> ,<2C> ̺<CCBA> λ<EFBFBD> ã<EFBFBD> mm<6D> <6D> \n " ;
//sprintf_s(buffer, sizeof(buffer), g_LngManager->SLog_ExportAxisDataContentHeader->ShowText());
ofs < < strhead . c_str ( ) ;
EnterCriticalSection ( & m_AxisLogCs ) ;
for ( size_t i = 0 ; i < m_AxisLogs . size ( ) ; + + i ) {
if ( ! m_ExportFlag ) break ;
AxisLog * ls = m_AxisLogs [ i ] ;
string coverType = " δ֪ " ;
if ( ls - > m_CoverType = = CoverCfg : : TWO_WAY1 ) {
coverType = " ˫<EFBFBD> <EFBFBD> <EFBFBD> ̷<EFBFBD> 1 " ;
}
else if ( ls - > m_CoverType = = CoverCfg : : ONE_WAY ) {
coverType = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̷<EFBFBD> " ;
}
else if ( ls - > m_CoverType = = CoverCfg : : NO_COVER ) {
coverType = " <EFBFBD> <EFBFBD> <EFBFBD> ̷<EFBFBD> " ;
}
else if ( ls - > m_CoverType = = CoverCfg : : TWO_WAY2 ) {
coverType = " ˫<EFBFBD> <EFBFBD> <EFBFBD> ̷<EFBFBD> 2 " ;
}
else if ( ls - > m_CoverType = = CoverCfg : : ONE_WAY2 ) {
coverType = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̷<EFBFBD> 2" ;
}
sprintf_s ( buffer , sizeof ( buffer ) , " %u,%s,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f \n " ,
ls - > m_LayerIndex + 1 , coverType . c_str ( ) , ls - > m_PreMoldPos , ls - > m_AftMoldPos ,
ls - > m_PreLinearEncoderPos , ls - > m_AftLinearEncoderPos , ls - > m_PreArmPos , ls - > m_AftArmPos , ls - > m_PreSupplyPos , ls - > m_AftSupplyPos ) ;
ofs < < buffer ;
m_ExportProgress = ( float ) ( i + 1 ) / m_AxisLogs . size ( ) ;
}
LeaveCriticalSection ( & m_AxisLogCs ) ;
ofs . flush ( ) ;
}
ofs . close ( ) ;
}
if ( m_IsExportScanData ) {
m_ExportProgress = 0 ;
m_ExportInfo = g_LngManager - > SLog_ExportProgressData - > ShowText ( ) ;
string file = m_ExportPath + " /scannerdata.csv " ;
ofstream ofs ( file , ios : : trunc ) ;
if ( ofs . is_open ( ) ) {
sprintf_s ( buffer , sizeof ( buffer ) , g_LngManager - > SLog_ExportScannerDataContentHeader - > ShowText ( ) ) ;
ofs < < buffer ;
EnterCriticalSection ( & m_ScannerStatusCS ) ;
for ( size_t i = 0 ; i < m_ScannerStatus . size ( ) ; + + i ) {
if ( ! m_ExportFlag ) break ;
ScannerStatus * ls = m_ScannerStatus [ i ] ;
bool IsPositionErrorNormalRangeX = ( ls - > m_LowStateX & 0x10000 ) ? true : false ;
bool IsPositionErrorNormalRangeY = ( ls - > m_LowStateY & 0x10000 ) ? true : false ;
bool IsCriticalErrorX = ( ls - > m_LowStateX & 0x2000 ) ? false : true ;
bool IsCriticalErrorY = ( ls - > m_LowStateY & 0x2000 ) ? false : true ;
bool IsScanSystemTempOverLimitX = ( ls - > m_LowStateX & 0x800 ) ? false : true ;
bool IsScanSystemTempOverLimitY = ( ls - > m_LowStateY & 0x800 ) ? false : true ;
bool IsScannerReachedCriticalEdgePosX = ( ls - > m_LowStateX & 0x200 ) ? false : true ;
bool IsScannerReachedCriticalEdgePosY = ( ls - > m_LowStateY & 0x200 ) ? false : true ;
bool IsServoBoradOperationTempNormalX = ( ls - > m_HighStateX & 0x4000 ) ? true : false ;
bool IsServoBoradOperationTempNormalY = ( ls - > m_HighStateY & 0x4000 ) ? true : false ;
bool IsGalvanometerScannerOperationTempNormalX = ( ls - > m_HighStateX & 0x2000 ) ? true : false ;
bool IsGalvanometerScannerOperationTempNormalY = ( ls - > m_HighStateY & 0x2000 ) ? true : false ;
sprintf_s ( buffer , sizeof ( buffer ) , " %s,%d,%d,%.3f,%.3f,%.3f,%.3f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s \n " ,
TimeHelper : : Time2Str ( ls - > m_InsertTime ) . c_str ( ) , ls - > m_LayerIndex + 1 , ls - > m_ScanId , ls - > m_ScanTempX , ls - > m_ScanTempY , ls - > m_ScanServoTempX , ls - > m_ScanServoTempY ,
ls - > m_ActualPositionX , ls - > m_SetPositionX , ls - > m_PositionErrorX , ls - > m_ActualPositionY , ls - > m_SetPositionY , ls - > m_PositionErrorY , IsPositionErrorNormalRangeX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " ,
IsPositionErrorNormalRangeY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsCriticalErrorX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsCriticalErrorY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsScanSystemTempOverLimitX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " ,
IsScanSystemTempOverLimitY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsScannerReachedCriticalEdgePosX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsScannerReachedCriticalEdgePosY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsServoBoradOperationTempNormalX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " ,
IsServoBoradOperationTempNormalY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsGalvanometerScannerOperationTempNormalX ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " , IsGalvanometerScannerOperationTempNormalY ? " <EFBFBD> <EFBFBD> " : " <EFBFBD> <EFBFBD> " ) ;
ofs < < buffer ;
m_ExportProgress = ( float ) ( i + 1 ) / m_ScannerStatus . size ( ) ;
}
LeaveCriticalSection ( & m_ScannerStatusCS ) ;
ofs . flush ( ) ;
}
ofs . close ( ) ;
}
if ( m_IsExportImage ) {
m_ExportProgress = 0 ;
m_ExportInfo = g_LngManager - > SLog_ExportProgressImage - > ShowText ( ) ;
tjhandle tjinstance = tjInitTransform ( ) ;
//Gdiplus::GdiplusStartupInput gdiplusStartupInput;
//ULONG_PTR pGdiToken;
//Gdiplus::GdiplusStartup(&pGdiToken, &gdiplusStartupInput, NULL);
EnterCriticalSection ( & m_LogImageCs ) ;
for ( size_t i = 0 ; i < m_LogImages . size ( ) ; + + i ) {
if ( ! m_ExportFlag ) break ;
LogImage * logImage = m_LogImages [ i ] ;
unsigned char * image = NULL ;
unsigned long image_size = 0 ;
//int width, height;
if ( g_log - > m_LogDao - > FindImage ( logImage - > m_Id , & image , & image_size ) ) {
unsigned long change_size = 0 ;
unsigned char * changeImage = NULL ;
tjtransform transform ;
memset ( & transform , 0 , sizeof ( tjtransform ) ) ;
transform . op = TJXOP_VFLIP ;
transform . options | = TJXOPT_TRIM ;
int rel = tjTransform ( tjinstance , image , image_size , 1 , & changeImage , & change_size , & transform , 0 ) ;
if ( rel = = 0 ) {
sprintf_s ( buffer , sizeof ( buffer ) , " %s/%d_%d.jpeg " , imagePath . c_str ( ) , logImage - > m_LayerIndex + 1 , logImage - > m_Type ) ;
FILE * jpegFile = fopen ( buffer , " wb " ) ;
if ( jpegFile ! = NULL ) {
fwrite ( changeImage , change_size , 1 , jpegFile ) ;
}
fclose ( jpegFile ) ;
}
tjFree ( changeImage ) ;
m_ExportProgress = ( float ) ( i + 1 ) / m_LogImages . size ( ) ;
}
if ( image ! = NULL ) delete [ ] image ;
}
LeaveCriticalSection ( & m_LogImageCs ) ;
}
}
2024-03-19 17:45:12 +08:00
void LogDao : : LogScannerStatus ( vector < ScannerStatus * > & scannerStatus )
{
char buffer [ 1024 ] ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Transaction transaction ( * m_pDB ) ;
for ( size_t i = 0 ; i < scannerStatus . size ( ) ; i + + ) {
ScannerStatus * ss = scannerStatus [ i ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%d,%lld,%d,%u,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%d,%d,%d,%d); " ,
ScannerStatus : : SCAN_TABLE_NAME . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SCAN_ID . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_INSERT_TIME . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_JOB_ID . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_LAYER_INDEX . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SCAN_TEMP_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SCAN_TEMP_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SERVO_TEMP_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SERVO_TEMP_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_ACTUAL_POSITION_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SET_POSITION_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_POSITION_ERROR_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_ACTUAL_POSITION_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_SET_POSITION_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_POSITION_ERROR_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_LOW_STATE_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_LOW_STATE_Y . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_HIGH_STATE_X . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_HIGH_STATE_Y . c_str ( ) ,
ss - > m_ScanId , ss - > m_InsertTime , ss - > m_JobId , ss - > m_LayerIndex , ss - > m_ScanTempX , ss - > m_ScanTempY , ss - > m_ScanServoTempX , ss - > m_ScanServoTempY ,
ss - > m_ActualPositionX , ss - > m_SetPositionX , ss - > m_PositionErrorX , ss - > m_ActualPositionY , ss - > m_SetPositionY , ss - > m_PositionErrorY ,
ss - > m_LowStateX , ss - > m_LowStateY , ss - > m_HighStateX , ss - > m_HighStateY ) ;
m_pDB - > exec ( buffer ) ;
//OutputDebugString(buffer);
//OutputDebugString("\n");
}
transaction . commit ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindScanState ( )
{
if ( m_CurrentShowJob = = NULL )
return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) )
return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
// char sql[1024];
EnterCriticalSection ( & m_ScannerStatusCS ) ;
for ( size_t i = 0 ; i < m_ScannerStatus . size ( ) ; + + i ) {
delete m_ScannerStatus [ i ] ;
m_ScannerStatus [ i ] = NULL ;
}
m_ScannerStatus . clear ( ) ;
LeaveCriticalSection ( & m_ScannerStatusCS ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s=%d " ,
ScannerStatus : : SCAN_TABLE_NAME . c_str ( ) ,
ScannerStatus : : SCAN_FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
ScannerStatus * ss = new ScannerStatus ( ) ;
ss - > m_ScanId = query . getColumn ( ScannerStatus : : SCAN_FIELD_SCAN_ID . c_str ( ) ) . getInt ( ) ;
ss - > m_InsertTime = query . getColumn ( ScannerStatus : : SCAN_FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
ss - > m_JobId = query . getColumn ( ScannerStatus : : SCAN_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
ss - > m_LayerIndex = query . getColumn ( ScannerStatus : : SCAN_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
ss - > m_ScanTempX = query . getColumn ( ScannerStatus : : SCAN_FIELD_SCAN_TEMP_X . c_str ( ) ) . getDouble ( ) ;
ss - > m_ScanTempY = query . getColumn ( ScannerStatus : : SCAN_FIELD_SCAN_TEMP_Y . c_str ( ) ) . getDouble ( ) ;
ss - > m_ScanServoTempX = query . getColumn ( ScannerStatus : : SCAN_FIELD_SERVO_TEMP_X . c_str ( ) ) . getDouble ( ) ;
ss - > m_ScanServoTempY = query . getColumn ( ScannerStatus : : SCAN_FIELD_SERVO_TEMP_Y . c_str ( ) ) . getDouble ( ) ;
ss - > m_ActualPositionX = query . getColumn ( ScannerStatus : : SCAN_FIELD_ACTUAL_POSITION_X . c_str ( ) ) . getDouble ( ) ;
ss - > m_SetPositionX = query . getColumn ( ScannerStatus : : SCAN_FIELD_SET_POSITION_X . c_str ( ) ) . getDouble ( ) ;
ss - > m_PositionErrorX = query . getColumn ( ScannerStatus : : SCAN_FIELD_POSITION_ERROR_X . c_str ( ) ) . getDouble ( ) ;
ss - > m_ActualPositionY = query . getColumn ( ScannerStatus : : SCAN_FIELD_ACTUAL_POSITION_Y . c_str ( ) ) . getDouble ( ) ;
ss - > m_SetPositionY = query . getColumn ( ScannerStatus : : SCAN_FIELD_SET_POSITION_Y . c_str ( ) ) . getDouble ( ) ;
ss - > m_PositionErrorY = query . getColumn ( ScannerStatus : : SCAN_FIELD_POSITION_ERROR_Y . c_str ( ) ) . getDouble ( ) ;
ss - > m_LowStateX = query . getColumn ( ScannerStatus : : SCAN_FIELD_LOW_STATE_X . c_str ( ) ) . getInt ( ) ;
ss - > m_LowStateY = query . getColumn ( ScannerStatus : : SCAN_FIELD_LOW_STATE_Y . c_str ( ) ) . getInt ( ) ;
ss - > m_HighStateX = query . getColumn ( ScannerStatus : : SCAN_FIELD_HIGH_STATE_X . c_str ( ) ) . getInt ( ) ;
ss - > m_HighStateY = query . getColumn ( ScannerStatus : : SCAN_FIELD_HIGH_STATE_Y . c_str ( ) ) . getInt ( ) ;
EnterCriticalSection ( & m_ScannerStatusCS ) ;
m_ScannerStatus . push_back ( ss ) ;
LeaveCriticalSection ( & m_ScannerStatusCS ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : LogFocusStatus ( vector < FocusStatus * > & focusStatus )
{
if ( focusStatus . empty ( ) ) return ;
char buffer [ 2048 ] ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Transaction transaction ( * m_pDB ) ;
for ( size_t i = 0 ; i < focusStatus . size ( ) ; i + + ) {
FocusStatus * ss = focusStatus [ i ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES(%d,%lld,%d,%u,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%d,%d,%d); " ,
FocusStatus : : TABLE_NAME . c_str ( ) ,
FocusStatus : : FIELD_SCAN_ID . c_str ( ) ,
FocusStatus : : FIELD_INSERT_TIME . c_str ( ) ,
FocusStatus : : FIELD_JOB_ID . c_str ( ) ,
FocusStatus : : FIELD_LAYER_INDEX . c_str ( ) ,
FocusStatus : : FIELD_SCAN_SERVO_TEMP . c_str ( ) ,
FocusStatus : : FIELD_PD_SUPPLY_VOLTAGE . c_str ( ) ,
FocusStatus : : FIELD_DSP_CORE_SUPPLY_VOLTAGE . c_str ( ) ,
FocusStatus : : FIELD_DSP_IO_VOLTAGE . c_str ( ) ,
FocusStatus : : FIELD_ANALOG_SECTION_VOLTAGE . c_str ( ) ,
FocusStatus : : FIELD_AD_CONVERTER_SUPPLY_VOLTAGE . c_str ( ) ,
FocusStatus : : FIELD_PD_SUPPLY_CURRENT . c_str ( ) ,
FocusStatus : : FIELD_LOW_STATE . c_str ( ) ,
FocusStatus : : FIELD_HIGH_STATE . c_str ( ) ,
FocusStatus : : FIELD_STOP_ENEN . c_str ( ) ,
ss - > m_ScanId , ss - > m_InsertTime , ss - > m_JobId , ss - > m_LayerIndex , ss - > m_ScanServoTemp , ss - > m_PDSupplyVoltage ,
ss - > m_DSPCoreSupplyVoltage , ss - > m_DSPIOVoltage , ss - > m_AnalogSectionVoltage , ss - > m_ADConverterSupplyVoltage ,
ss - > m_PDSupplyCurrent , ss - > m_LowState , ss - > m_HighState , ss - > m_StopEven ) ;
m_pDB - > exec ( buffer ) ;
}
transaction . commit ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindFocusState ( )
{
if ( m_CurrentShowJob = = NULL )
return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) )
return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
// char sql[1024];
EnterCriticalSection ( & m_FocusStatusCS ) ;
for ( size_t i = 0 ; i < m_FocusStatus . size ( ) ; + + i ) {
delete m_FocusStatus [ i ] ;
m_FocusStatus [ i ] = NULL ;
}
m_FocusStatus . clear ( ) ;
LeaveCriticalSection ( & m_FocusStatusCS ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s=%d " ,
FocusStatus : : TABLE_NAME . c_str ( ) ,
FocusStatus : : FIELD_JOB_ID . c_str ( ) , m_CurrentShowJob - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
FocusStatus * ss = new FocusStatus ( ) ;
ss - > m_ScanId = query . getColumn ( FocusStatus : : FIELD_SCAN_ID . c_str ( ) ) . getInt ( ) ;
ss - > m_InsertTime = query . getColumn ( FocusStatus : : FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
ss - > m_JobId = query . getColumn ( FocusStatus : : FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
ss - > m_LayerIndex = query . getColumn ( FocusStatus : : FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
ss - > m_ScanServoTemp = query . getColumn ( FocusStatus : : FIELD_SCAN_SERVO_TEMP . c_str ( ) ) . getDouble ( ) ;
ss - > m_PDSupplyVoltage = query . getColumn ( FocusStatus : : FIELD_PD_SUPPLY_VOLTAGE . c_str ( ) ) . getDouble ( ) ;
ss - > m_DSPCoreSupplyVoltage = query . getColumn ( FocusStatus : : FIELD_DSP_CORE_SUPPLY_VOLTAGE . c_str ( ) ) . getDouble ( ) ;
ss - > m_DSPIOVoltage = query . getColumn ( FocusStatus : : FIELD_DSP_IO_VOLTAGE . c_str ( ) ) . getDouble ( ) ;
ss - > m_AnalogSectionVoltage = query . getColumn ( FocusStatus : : FIELD_ANALOG_SECTION_VOLTAGE . c_str ( ) ) . getDouble ( ) ;
ss - > m_ADConverterSupplyVoltage = query . getColumn ( FocusStatus : : FIELD_AD_CONVERTER_SUPPLY_VOLTAGE . c_str ( ) ) . getDouble ( ) ;
ss - > m_PDSupplyCurrent = query . getColumn ( FocusStatus : : FIELD_PD_SUPPLY_CURRENT . c_str ( ) ) . getDouble ( ) ;
ss - > m_LowState = query . getColumn ( FocusStatus : : FIELD_LOW_STATE . c_str ( ) ) . getInt ( ) ;
ss - > m_HighState = query . getColumn ( FocusStatus : : FIELD_HIGH_STATE . c_str ( ) ) . getInt ( ) ;
ss - > m_StopEven = query . getColumn ( FocusStatus : : FIELD_STOP_ENEN . c_str ( ) ) . getInt ( ) ;
EnterCriticalSection ( & m_FocusStatusCS ) ;
m_FocusStatus . push_back ( ss ) ;
LeaveCriticalSection ( & m_FocusStatusCS ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : SaveScannerPower ( ScannerPowerLog * log )
{
if ( ! log ) return ;
if ( log - > m_CurrentDatas . empty ( ) | | log - > m_VoltageDatas . empty ( ) ) return ;
char buffer [ 512 ] ;
string strsql = " INSERT INTO %s(%s,%s,%s,%s,%s) VALUES(%lld,%d,%d,?,?) " ;
sprintf_s ( buffer , sizeof ( buffer ) , strsql . c_str ( ) , ScannerPowerLog : : TABLE_NAME . c_str ( ) , ScannerPowerLog : : FIELD_INSERT_TIME . c_str ( ) ,
ScannerPowerLog : : FIELD_JOB_ID . c_str ( ) , ScannerPowerLog : : FIELD_SNO . c_str ( ) ,
ScannerPowerLog : : FIELD_VOLTAGE_DATA . c_str ( ) , ScannerPowerLog : : FIELD_CURRENT_DATA . c_str ( ) , log - > m_InsertTime , log - > m_JobId , log - > m_Sno ) ;
float * vdata = NULL ;
float * cdata = NULL ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * m_pDB , buffer ) ;
int vsize = log - > m_VoltageDatas . size ( ) ;
int csize = log - > m_CurrentDatas . size ( ) ;
vdata = new float [ vsize ] ;
cdata = new float [ csize ] ;
for ( int i = 0 ; i < vsize ; i + + ) {
vdata [ i ] = log - > m_VoltageDatas [ i ] ;
}
for ( int i = 0 ; i < csize ; i + + ) {
cdata [ i ] = log - > m_CurrentDatas [ i ] ;
}
query . bind ( 1 , vdata , vsize * sizeof ( float ) ) ;
query . bind ( 2 , cdata , csize * sizeof ( float ) ) ;
query . exec ( ) ;
}
2024-05-22 15:58:54 +08:00
catch ( SQLite : : Exception & e )
2024-03-19 17:45:12 +08:00
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
2024-05-22 15:58:54 +08:00
2024-03-19 17:45:12 +08:00
LeaveCriticalSection ( & m_DbCs ) ;
if ( vdata ) {
delete [ ] vdata ;
vdata = NULL ;
}
if ( cdata ) {
delete [ ] cdata ;
cdata = NULL ;
}
}
void LogDao : : FindScannerPowerInfo ( )
{
if ( ! m_CurrentShowJob ) return ;
for ( size_t i = 0 ; i < m_ScannerPower . size ( ) ; + + i ) {
delete m_ScannerPower [ i ] ;
m_ScannerPower [ i ] = NULL ;
}
m_ScannerPower . clear ( ) ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) ) {
return ;
}
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s,%s,%s FROM %s WHERE %s=%d " ,
ScannerPowerLog : : FIELD_ID . c_str ( ) ,
ScannerPowerLog : : FIELD_INSERT_TIME . c_str ( ) ,
ScannerPowerLog : : FIELD_JOB_ID . c_str ( ) ,
ScannerPowerLog : : FIELD_SNO . c_str ( ) ,
ScannerPowerLog : : TABLE_NAME . c_str ( ) ,
ScannerPowerLog : : FIELD_JOB_ID . c_str ( ) ,
m_CurrentShowJob - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
ScannerPowerLog * log = new ScannerPowerLog ( ) ;
log - > m_Id = query . getColumn ( ScannerPowerLog : : FIELD_ID . c_str ( ) ) . getInt ( ) ;
log - > m_InsertTime = query . getColumn ( ScannerPowerLog : : FIELD_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
log - > m_JobId = query . getColumn ( ScannerPowerLog : : FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
log - > m_Sno = query . getColumn ( ScannerPowerLog : : FIELD_SNO . c_str ( ) ) . getInt ( ) ;
m_ScannerPower . push_back ( log ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindScannerPowerData ( ScannerPowerLog * spl )
{
if ( ! spl ) return ;
if ( ! m_CurrentShowJob ) return ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) ) {
return ;
}
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
spl - > m_VoltageDatas . clear ( ) ;
spl - > m_CurrentDatas . clear ( ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s,%s FROM %s WHERE %s=%d " ,
ScannerPowerLog : : FIELD_VOLTAGE_DATA . c_str ( ) ,
ScannerPowerLog : : FIELD_CURRENT_DATA . c_str ( ) ,
ScannerPowerLog : : TABLE_NAME . c_str ( ) ,
ScannerPowerLog : : FIELD_ID . c_str ( ) , spl - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
if ( query . executeStep ( ) ) {
int vdsize = query . getColumn ( ScannerPowerLog : : FIELD_VOLTAGE_DATA . c_str ( ) ) . getBytes ( ) / 4 ;
float * vdata = ( float * ) query . getColumn ( ScannerPowerLog : : FIELD_VOLTAGE_DATA . c_str ( ) ) . getBlob ( ) ;
for ( int i = 0 ; i < vdsize ; i + + ) {
spl - > m_VoltageDatas . push_back ( vdata [ i ] ) ;
}
int cdsize = query . getColumn ( ScannerPowerLog : : FIELD_CURRENT_DATA . c_str ( ) ) . getBytes ( ) / 4 ;
float * cdata = ( float * ) query . getColumn ( ScannerPowerLog : : FIELD_CURRENT_DATA . c_str ( ) ) . getBlob ( ) ;
for ( int i = 0 ; i < cdsize ; i + + ) {
spl - > m_CurrentDatas . push_back ( cdata [ i ] ) ;
}
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
2024-05-22 15:58:54 +08:00
void LogDao : : FindInfraredTempLog ( )
{
JobBean * job = m_CurrentShowJob ;
if ( job = = NULL ) return ;
tm tmtemp ;
localtime_s ( & tmtemp , & job - > m_InsertTime ) ;
if ( m_DBMap . find ( m_CurrentShowJob - > m_YearBelong ) = = m_DBMap . end ( ) ) return ;
SQLite : : Database * db = m_DBMap [ m_CurrentShowJob - > m_YearBelong ] ;
EnterCriticalSection ( & m_InfraredTempCS ) ;
for ( size_t i = 0 ; i < m_InfraredTempLogs . size ( ) ; i + + ) {
delete m_InfraredTempLogs [ i ] ;
m_InfraredTempLogs [ i ] = NULL ;
}
m_InfraredTempLogs . clear ( ) ;
LeaveCriticalSection ( & m_InfraredTempCS ) ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s=%d " ,
InfraredTempLog : : IT_TABLE_NAME . c_str ( ) ,
InfraredTempLog : : IT_FIELD_JOB_ID . c_str ( ) ,
job - > m_Id ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
SQLite : : Statement query ( * db , buffer ) ;
while ( query . executeStep ( ) ) {
InfraredTempLog * log = new InfraredTempLog ( ) ;
log - > m_Id = query . getColumn ( InfraredTempLog : : IT_FIELD_ID . c_str ( ) ) . getInt ( ) ;
log - > m_PreInsertTime = query . getColumn ( InfraredTempLog : : IT_FIELD_PRE_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
log - > m_AftInserTime = query . getColumn ( InfraredTempLog : : IT_FIELD_AFT_INSERT_TIME . c_str ( ) ) . getInt64 ( ) ;
log - > m_FinishedTime = query . getColumn ( InfraredTempLog : : IT_FIELD_FINISHED_TIME . c_str ( ) ) . getInt64 ( ) ;
log - > m_JobId = query . getColumn ( InfraredTempLog : : IT_FIELD_JOB_ID . c_str ( ) ) . getInt ( ) ;
log - > m_LayerIndex = query . getColumn ( InfraredTempLog : : IT_FIELD_LAYER_INDEX . c_str ( ) ) . getUInt ( ) ;
log - > m_PartCount = query . getColumn ( InfraredTempLog : : IT_FIELD_PART_COUNT . c_str ( ) ) . getInt ( ) ;
SQLite : : Column colBlob = query . getColumn ( InfraredTempLog : : IT_FIELD_TEMP_DATA . c_str ( ) ) ;
int blobsize = colBlob . getBytes ( ) ;
if ( blobsize > 0 ) {
float * pdata = ( float * ) colBlob . getBlob ( ) ;
int count = 0 ;
for ( int i = 0 ; i < log - > m_PartCount ; i + + ) {
InfraredTempLog : : ITPair itPair ;
//itPair.Pid = pdata[count++];
itPair . PreCover = pdata [ count + + ] ;
itPair . AftCover = pdata [ count + + ] ;
itPair . WaitMax = pdata [ count + + ] ;
itPair . PrintMax = pdata [ count + + ] ;
itPair . m_DifTemp = pdata [ count + + ] ;
itPair . m_PowerAdjustValue = pdata [ count + + ] ;
log - > m_Temps . push_back ( itPair ) ;
}
}
EnterCriticalSection ( & m_InfraredTempCS ) ;
m_InfraredTempLogs . push_back ( log ) ;
LeaveCriticalSection ( & m_InfraredTempCS ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : AddInfraredTempLog ( InfraredTempLog & log )
{
if ( log . m_PartCount = = 0 | | log . m_Temps . size ( ) = = 0 ) return ;
if ( log . m_PartCount ! = log . m_Temps . size ( ) ) return ;
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s,%s,%s) VALUES(%lld,%lld,%lld,%lld,%u,%d,?) " ,
InfraredTempLog : : IT_TABLE_NAME . c_str ( ) ,
InfraredTempLog : : IT_FIELD_PRE_INSERT_TIME . c_str ( ) ,
InfraredTempLog : : IT_FIELD_AFT_INSERT_TIME . c_str ( ) ,
InfraredTempLog : : IT_FIELD_FINISHED_TIME . c_str ( ) ,
InfraredTempLog : : IT_FIELD_JOB_ID . c_str ( ) ,
InfraredTempLog : : IT_FIELD_LAYER_INDEX . c_str ( ) ,
InfraredTempLog : : IT_FIELD_PART_COUNT . c_str ( ) ,
InfraredTempLog : : IT_FIELD_TEMP_DATA . c_str ( ) ,
log . m_PreInsertTime , log . m_AftInserTime , log . m_FinishedTime , log . m_JobId , log . m_LayerIndex , log . m_PartCount ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
vector < float > datas ;
SQLite : : Statement query ( * m_pDB , buffer ) ;
for ( size_t i = 0 ; i < log . m_Temps . size ( ) ; i + + ) {
//datas.push_back(log.m_Temps[i].Pid);
datas . push_back ( log . m_Temps [ i ] . PreCover ) ;
datas . push_back ( log . m_Temps [ i ] . AftCover ) ;
datas . push_back ( log . m_Temps [ i ] . WaitMax ) ;
datas . push_back ( log . m_Temps [ i ] . PrintMax ) ;
datas . push_back ( log . m_Temps [ i ] . m_DifTemp ) ;
datas . push_back ( log . m_Temps [ i ] . m_PowerAdjustValue ) ;
}
if ( datas . size ( ) > 0 ) query . bind ( 1 , & datas [ 0 ] , datas . size ( ) * sizeof ( float ) ) ;
else query . bind ( 1 ) ;
query . exec ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
2024-03-19 17:45:12 +08:00
void LogDao : : AddPartPos ( string jid , vector < int > & pids )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT %s FROM %s WHERE %s='%s' " ,
PartPosBean : : FIELD_PART_ID . c_str ( ) ,
PartPosBean : : CONFIG_NAME . c_str ( ) ,
PartPosBean : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ) ;
string selsql ( buffer ) ;
vector < int > hasPart ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
SQLite : : Statement query ( * m_pDB , selsql ) ;
while ( query . executeStep ( ) ) {
int pid = query . getColumn ( PartPosBean : : FIELD_PART_ID . c_str ( ) ) . getInt ( ) ;
hasPart . push_back ( pid ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
map < int , bool > pidmap ;
for ( size_t i = 0 ; i < hasPart . size ( ) ; i + + ) {
pidmap [ hasPart [ i ] ] = true ;
}
vector < string > ins ;
for ( size_t i = 0 ; i < pids . size ( ) ; i + + ) {
if ( pidmap . find ( pids [ i ] ) = = pidmap . end ( ) )
{
sprintf_s ( buffer , sizeof ( buffer ) , " INSERT INTO %s(%s,%s,%s,%s,%s) VALUES('%s',%d,%.6f,%.6f,%.6f) " ,
PartPosBean : : CONFIG_NAME . c_str ( ) ,
PartPosBean : : FIELD_JOB_ID . c_str ( ) ,
PartPosBean : : FIELD_PART_ID . c_str ( ) ,
PartPosBean : : FIELD_X_OFFSET . c_str ( ) ,
PartPosBean : : FIELD_Y_OFFSET . c_str ( ) ,
PartPosBean : : FIELD_ROTATE_ANGLE . c_str ( ) ,
jid . c_str ( ) , pids [ i ] , 0.0f , 0.0f , 0.0f ) ;
ins . push_back ( buffer ) ;
}
}
if ( ! ins . empty ( ) )
{
try {
SQLite : : Transaction transaction ( * m_pDB ) ;
for ( size_t i = 0 ; i < ins . size ( ) ; + + i ) {
m_pDB - > exec ( ins [ i ] ) ;
}
transaction . commit ( ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindPartPos ( string jid , vector < PartPosBean * > & partPos )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " SELECT * FROM %s WHERE %s='%s' " ,
PartPosBean : : CONFIG_NAME . c_str ( ) ,
PartPosBean : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ) ;
EnterCriticalSection ( & m_DbCs ) ;
try
{
SQLite : : Statement query ( * m_pDB , buffer ) ;
while ( query . executeStep ( ) ) {
PartPosBean * pa = new PartPosBean ( ) ;
pa - > m_JobId = query . getColumn ( PartPosBean : : FIELD_JOB_ID . c_str ( ) ) . getString ( ) ;
pa - > m_PartId = query . getColumn ( PartPosBean : : FIELD_PART_ID . c_str ( ) ) . getInt ( ) ;
pa - > m_XOffset = ( float ) ( query . getColumn ( PartPosBean : : FIELD_X_OFFSET . c_str ( ) ) . getDouble ( ) ) ;
pa - > m_YOffset = ( float ) ( query . getColumn ( PartPosBean : : FIELD_Y_OFFSET . c_str ( ) ) . getDouble ( ) ) ;
pa - > m_RotateAngle = ( float ) ( query . getColumn ( PartPosBean : : FIELD_ROTATE_ANGLE . c_str ( ) ) . getDouble ( ) ) ;
partPos . push_back ( pa ) ;
}
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : UpdatePartPos ( string jid , int partid , float x , float y , float rotate )
{
char buffer [ 1024 ] ;
sprintf_s ( buffer , sizeof ( buffer ) , " UPDATE %s SET %s=%.6f,%s=%.6f,%s=%.6f WHERE %s='%s' AND %s=%d " ,
PartPosBean : : CONFIG_NAME . c_str ( ) ,
PartPosBean : : FIELD_X_OFFSET . c_str ( ) , x ,
PartPosBean : : FIELD_Y_OFFSET . c_str ( ) , y ,
PartPosBean : : FIELD_ROTATE_ANGLE . c_str ( ) , rotate ,
PartPosBean : : FIELD_JOB_ID . c_str ( ) , jid . c_str ( ) ,
PartPosBean : : FIELD_PART_ID . c_str ( ) , partid ) ;
EnterCriticalSection ( & m_DbCs ) ;
try {
m_pDB - > exec ( buffer ) ;
}
catch ( SQLite : : Exception & e )
{
g_log - > TraceError ( e . getErrorStr ( ) ) ;
}
LeaveCriticalSection ( & m_DbCs ) ;
}
void LogDao : : FindRecordByJob ( )
{
if ( IsFindingRecord ( ) ) return ;
SetIsFindingRecord ( true ) ;
HANDLE thread = AtlCreateThread ( FindRecordProc , this ) ;
}
DWORD WINAPI LogDao : : FindRecordProc ( LogDao * _this )
{
if ( _this )
{
_this - > FindRecordRun ( ) ;
_this - > SetIsFindingRecord ( false ) ;
}
return 0 ;
}
void LogDao : : FindRecordRun ( )
{
2024-05-22 15:58:54 +08:00
FindImageInfo ( ) ;
FindAxisLogInfo ( ) ;
FindScanState ( ) ;
FindScannerPowerInfo ( ) ;
FindInfraredTempLog ( ) ;
FindFocusState ( ) ;
FindIFImageInfo ( ) ;
m_LogAssist . yTitle = " PPM " ;
if ( m_LogAssist . layer_selected_style = = 1 ) {
GetLayerStatusTable ( m_LogAssist ) ;
}
else {
if ( m_LogAssist . layer_selected_base = = 0 ) {
GetLayerStatusByTime ( m_LogAssist ) ;
}
else {
GetLayerStatusByLayer ( m_LogAssist ) ;
}
}
m_LogAssist . m_SelectedServoLogRow = - 1 ;
m_ShowAxisLog = NULL ;
m_LogAssist . selected_sp_id = - 1 ;
m_ShowScannerPower = NULL ;
2024-03-19 17:45:12 +08:00
2024-05-22 15:58:54 +08:00
m_LogAssist . selected_if_id = - 1 ;
m_ShowInfraredTemp = NULL ;
2024-03-19 17:45:12 +08:00
}