Przeglądaj źródła

1、删除无用代码;
2、添加脚本通知cmd;

scbc.sat2 5 lat temu
rodzic
commit
1fa657efed

+ 0 - 89
SATService/SATService/MainProcess.cpp

@@ -1,89 +0,0 @@
-#include "StdAfx.h"
-#include "MainProcess.h"
-#include "WindowService.h"
-
-CMainProcess::CMainProcess(void)
-{
-	m_hBackupDatabase = NULL;
-	m_hCheckServices = NULL;
-	m_hEvent1 = NULL;
-	m_hEvent2 = NULL;
-}
-
-CMainProcess::~CMainProcess(void)
-{
-}
-
-void CMainProcess::StartWork()
-{
-	m_hEvent1 = CreateEvent(NULL, TRUE, FALSE, NULL);
-	if ( m_hEvent1 == NULL )
-	{
-		_tprintf_s(_T("创建事件失败\n"));
-		return;
-	}
-
-	m_hEvent2 = CreateEvent(NULL, TRUE, FALSE, NULL);
-	if ( m_hEvent2 == NULL )
-	{
-		_tprintf_s(_T("创建事件失败2\n"));
-		return;
-	}
-
-	m_hCheckServices = CreateThread(NULL, 0, CheckSvcStatusThread, this, 0, NULL);
-	if ( m_hCheckServices == NULL)
-	{
-		SetEvent(m_hEvent1);
-		SetEvent(m_hEvent2);
-		CloseHandle(m_hEvent1);
-		CloseHandle(m_hEvent2);
-		m_hEvent1 = NULL;
-		m_hEvent2 = NULL;
-		_tprintf_s(_T("创建线程失败\n"));
-		return;
-	}
-
-	m_hBackupDatabase = CreateThread(NULL, 0, BackupDatabaseThread, this, 0, NULL);
-	if ( m_hBackupDatabase == NULL )
-	{
-		SetEvent(m_hEvent1);
-		SetEvent(m_hEvent2);
-		CloseHandle(m_hEvent1);
-		CloseHandle(m_hEvent2);
-		m_hEvent1 = NULL;
-		m_hEvent2 = NULL;
-		WaitForSingleObject(m_hCheckServices,INFINITE);
-		if (m_hBackupDatabase)
-			CloseHandle(m_hBackupDatabase);
-		m_hBackupDatabase = NULL;
-		_tprintf_s(_T("创建线程失败2\n"));
-		return;
-	}
-}
-
-void CMainProcess::EndofWork()
-{
-
-}
-
-DWORD CMainProcess::CheckSvcStatusThread(LPVOID lpVoid)
-{
-	CMainProcess *that = (CMainProcess*)lpVoid;
-
-	do 
-	{
-	} while ( WaitForSingleObject(that->m_hEvent1, 200) == WAIT_TIMEOUT );
-
-	return 0;
-}
-
-DWORD CMainProcess::BackupDatabaseThread(LPVOID lpVoid)
-{
-	CMainProcess *that = (CMainProcess*)lpVoid;
-
-	do 
-	{
-	} while ( WaitForSingleObject(that->m_hEvent2, 200) == WAIT_TIMEOUT );
-
-	return 0;
-}

+ 0 - 65
SATService/SATService/MainProcess.h

@@ -1,65 +0,0 @@
-/************************************************************************/
-/*  Copyright (C), 2010-2020, [Jeff], 保留所有权利;
-/*  模 块 名:服务的主要处理类;
-/*  描    述:;
-/*
-/*  版    本:[V];	
-/*  作    者:[Jeff];
-/*  日    期:[5/6/2011];
-/*
-/*
-/*  注    意:;
-/*
-/*  修改记录:[Jeff];
-/*  修改日期:;
-/*  修改版本:;
-/*  修改内容:;
-/************************************************************************/
-
-#ifndef __MAIN_PROCESS__
-#define __MAIN_PROCESS__
-
-#pragma once
-
-class CMainProcess
-{
-	CMainProcess(void);
-public:
-	// 单例对象模式;
-	static CMainProcess* GetInstance()
-	{
-		static CMainProcess* pInstance = NULL;
-		if ( pInstance == NULL )
-		{
-			pInstance = new CMainProcess;
-		}
-
-		return pInstance;
-	}
-
-	~CMainProcess(void);
-
-protected:
-	// 线程控制句柄;
-	HANDLE  m_hEvent1;
-	// 检查服务线程句柄;
-	HANDLE	m_hCheckServices;
-	// 线程控制句柄;
-	HANDLE  m_hEvent2;
-	// 备份数据库线程句柄;
-	HANDLE	m_hBackupDatabase;
-
-	// 其他接口;
-public:
-	// 工作开始函数;	
-	void StartWork();
-	// 工作结束函数;
-	void EndofWork();
-
-	// 检测服务在线线程;
-	static DWORD WINAPI CheckSvcStatusThread(LPVOID lpVoid);
-	static DWORD WINAPI BackupDatabaseThread(LPVOID lpVoid);
-
-};
-
-#endif

+ 11 - 1
SATService/SATService/SATProtocol.h

@@ -12,6 +12,8 @@ namespace SATPROTO{
 	const int MAX_CASES(50);
 	// 最大任务数;
 	const int MAX_TASKS(10);
+	// 通知内容最大长度;
+	const int MAX_NOTICE(30);
 	//////////////////////////////////////////////////////////////////////////
 	// 具体协议指令;
 	enum ProtocolCMD {
@@ -23,7 +25,9 @@ namespace SATPROTO{
 		CMD_DEL_DEVICE,
 		CMD_QUERY_DEVICES,
 		// 查询任务;
-		CMD_QUERY_TASK
+		CMD_QUERY_TASK,
+		// 脚本通知
+		CMD_PY_NOTICE
 	};
 
 	//////////////////////////////////////////////////////////////////////////
@@ -100,6 +104,12 @@ namespace SATPROTO{
 		TaskInfo	ssTasks[MAX_TASKS];
 	}TaskInfoResp, *pTaskInfoResp;
 
+	typedef struct __PY_NOTICE__ {
+		__int64		nTimeStamp;					// 时间戳;
+		int			nNoticeType;					// 通知类型;
+		//char		szNotice[MAX_NOTICE];			// 通知内容;
+	}PyNotice, *pPyNotice;
+
 #pragma pack(pop)
 }
 

+ 0 - 1
SATService/SATService/SATService.cpp

@@ -3,7 +3,6 @@
 
 #include "stdafx.h"
 #include "SATService.h"
-#include "MainProcess.h"
 #include "SATExecutor.h"
 #include "SATDevices.h"
 #include "SATTCPServer.h"

+ 0 - 8
SATService/SATService/SATService.vcproj

@@ -342,14 +342,6 @@
 		<Filter
 			Name="Work"
 			>
-			<File
-				RelativePath=".\MainProcess.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\MainProcess.h"
-				>
-			</File>
 			<File
 				RelativePath=".\PythonExecutor.cpp"
 				>

+ 27 - 0
SATService/SATService/SATTCPServer.cpp

@@ -988,6 +988,33 @@ void CSATTCPServer::_TaskProcess(PER_IO_CONTEXT* pIoContext, SATPROTO::Package*
 					pbuff = NULL;
 				}
 				break;
+			case SATPROTO::CMD_PY_NOTICE:
+				{
+					SATPROTO::PyNotice *notice = (SATPROTO::PyNotice*)pak->buf;
+					if ( notice->nNoticeType == 0 ) { // 表示异常关机;
+
+					}
+					else if ( notice->nNoticeType == 1 ) { // 表示异常重启;
+
+					}
+
+					// 封装返回数据;
+					long len = sizeof(SATPROTO::DataHeader);
+					byte *pbuff = new byte[len];
+					memset(pbuff, 0, len);
+					SATPROTO::Package *pSendPak = (SATPROTO::Package *)pbuff;
+					pSendPak->header.protocol = 0xAA;
+					pSendPak->header.cmd = pHeader->cmd;
+					pSendPak->header.len = len;
+					
+					// 返回给客户端;
+					send(pIoContext->m_sockAccept, (const char*)pbuff, len, 0);
+
+					// 释放内存;
+					delete []pbuff;
+					pbuff = NULL;
+				}
+				break;
 			default:
 				break;
 		}