void Button28OnClick() { unsigned char l,cnt[4]; if(i==6) { if(a==0) { a=1; i=0; InitMCU(); SF_Start(); SF_mem(); Write_Log("Security armed"); } else { i=0; InitMCU(); SF_Start(); SF_rem(); Write_Log("Security disarmed"); } DrawScreen(&System_Log_Screen); Delay_ms(2000); strcpy(Label24.Caption," "); hom=1; DrawScreen(&Home); } }
/**************************************************************************** * * FUNCTION: LoadDeviceDriver( const TCHAR, const TCHAR, HANDLE *) * * PURPOSE: Registers a driver with the system configuration manager * and then loads it. * ****************************************************************************/ BOOL LoadDeviceDriver( const TCHAR * Name, const TCHAR * Path, HANDLE * lphDevice,BOOL Install) { SC_HANDLE schSCManager; BOOL okay; DWORD Service_Error; char LogZeile[128]; sprintf(LogZeile,"Service Installations"); Write_Log(LogZeile); sprintf(LogZeile,"====================="); Write_Log(LogZeile); schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS ); if ( schSCManager == NULL ) { Service_Error = GetLastError(); sprintf(LogZeile,"OpenSCManager für %s (%s) return %d ",Name,Path,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_DATABASE_DOES_NOT_EXIST ) strcat(LogZeile,"DATABASE_DOES_NOT_EXIST"); else if ( Service_Error == ERROR_INVALID_PARAMETER ) strcat(LogZeile,"INVALID_PARAMETER"); strcat(LogZeile,")"); Write_Log(LogZeile); if ( Service_Error == ERROR_ACCESS_DENIED ) MessageBox(hWnd,"Sie besitzen nicht die notwendigen Rechte für die Verwaltung von Geräten","Multi-Decode",MB_ICONSTOP|MB_OK); } // Ignore success of installation: it may already be installed. if ( Install == TRUE ) InstallDriver( schSCManager, Name, Path ); // Ignore success of start: it may already be started. okay=StartDriver( schSCManager, Name ); CloseServiceHandle( schSCManager ); return okay; }
void RTC_Config(void) { /*后备寄存器1中,存了一个特殊字符0xA5A5 第一次上电或后备电源掉电后,该寄存器数据丢失, 表明RTC数据丢失,需要重新配置 */ if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) //检查是否第一次上电或后备电池已经掉电, { Write_Log("Backup VBAT PowerDown or First time PowerUp,Initialize RTC\r\n"); RTC_Configuration(); BKP_WriteBackupRegister(BKP_DR1, 0xA5A5); time_now.tm_year = 2011; time_now.tm_mon = 10; //月份表示为0~11 time_now.tm_mday = 13; time_now.tm_hour = 13; time_now.tm_min = 16; time_now.tm_sec = 38; Time_SetCalendarTime(time_now);//设置初始时间 } else //若后备寄存器没有掉电,则无需重新配置RTC { Write_Log("Backup VBAT Keep, Don't RTC Configuralation\r\n"); //等待RTC与APB同步 RTC_WaitForSynchro(); RTC_WaitForLastTask(); //使能秒中断 RTC_ITConfig(RTC_IT_SEC, ENABLE); RTC_WaitForLastTask(); } //这里我们可以利用RCC_GetFlagStatus()函数查看本次复位类型 if (RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET) { por_rst_flag = 1; Write_Log("PowerUp Reset\r\n"); } else if (RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET) { pin_rst_flag = 1; Write_Log("pin Reset\r\n"); } else if(PWR_GetFlagStatus(PWR_FLAG_WU)!= RESET) //wakeup唤醒 { Write_Log("WakeUp...\r\n"); } if(PWR_GetFlagStatus(PWR_FLAG_SB) != RESET) //检查是否由待机模式下唤醒,如是则不需要配置RTC /* System resumed from STANDBY mode */ /* Clear StandBy flag */ PWR_ClearFlag(PWR_FLAG_SB); //清除RCC中复位标志 RCC_ClearFlag(); return; }
/**************************************************************************** * * FUNCTION: StopDriver( IN SC_HANDLE, IN LPCTSTR) * * PURPOSE: Has the configuration manager stop the driver (unload it) * ****************************************************************************/ BOOL StopDriver( IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName ) { SC_HANDLE schService; BOOL ret; SERVICE_STATUS serviceStatus; DWORD Service_Error ; char LogZeile[128]; schService = OpenService( SchSCManager, DriverName, SERVICE_ALL_ACCESS ); if ( schService == NULL ) return FALSE; ret = ControlService( schService, SERVICE_CONTROL_STOP, &serviceStatus ); if ( ret == FALSE ) { Service_Error = GetLastError(); sprintf(LogZeile,"StopService %s Fail ( Return 0x%X ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_DEPENDENT_SERVICES_RUNNING ) strcat(LogZeile,"ERROR_DEPENDENT_SERVICES_RUNNING"); else if ( Service_Error == ERROR_INVALID_SERVICE_CONTROL ) strcat(LogZeile,"ERROR_INVALID_SERVICE_CONTROL"); else if ( Service_Error == ERROR_SERVICE_CANNOT_ACCEPT_CTRL ) strcat(LogZeile,"ERROR_SERVICE_CANNOT_ACCEPT_CTRL"); else if ( Service_Error == ERROR_SERVICE_NOT_ACTIVE ) strcat(LogZeile,"ERROR_SERVICE_NOT_ACTIVE"); else if ( Service_Error == ERROR_SERVICE_REQUEST_TIMEOUT ) strcat(LogZeile,"ERROR_SERVICE_REQUEST_TIMEOUT"); strcat(LogZeile,")"); Write_Log(LogZeile); }; CloseServiceHandle( schService ); return ret; }
BOOL GPS_MeiTrack::isThisProtocol( char *buf ,GPSINFO *pGpsInfo) { if(buf[0]=='$' && buf[1]=='$') { pGpsInfo->nDevID +=GPS_MEITRACK; pGpsInfo->nDevID +=GPSID_TID; if(m_i64RecvCnt++ %100==0) { Write_Log("meiligao",buf); } return TRUE; } return FALSE; }
/********************************************************************* * 函数名称:void TestLogCase_One() * 说明:简单的测试函数,读文件 * 调用者:main * 输入参数: * 无 * 输出参数: * 无 * 返回值: * void -- *********************************************************************/ void CWriteLog::TestLogCase_One() { FILE *pFile = NULL; TCHAR *pFieldContent = NULL; TCHAR szFileName[] = _T("test_case.txt"); pFieldContent = (TCHAR *)malloc(TEST_CASE_MAX_FILE_LEN); if(NULL == pFieldContent) { Write_Log(LOG_TYPE_ERROR, _T("malloc memory failed,program exit!")); return; } memset(pFieldContent, 0, TEST_CASE_MAX_FILE_LEN); Write_Log(LOG_TYPE_INFO, _T("malloc memory for pFiled successful,memory size is: %ld"), TEST_CASE_MAX_FILE_LEN); Write_Log(LOG_TYPE_INFO, _T("测试中文写入"), TEST_CASE_MAX_FILE_LEN); pFile = _tfopen(szFileName, _T("r")); if(NULL == pFile) { fprintf(stderr, "open file failed."); Write_Log(LOG_TYPE_ERROR, _T("Open file %s failed. program exit!"), szFileName); return; } Write_Log(LOG_TYPE_INFO, _T("Open file %s successful."), szFileName); fread(pFieldContent, 1, TEST_CASE_MAX_FILE_LEN, pFile); pFieldContent[TEST_CASE_MAX_FILE_LEN -1] = '\0'; fclose(pFile); printf("The file %s content is: \n%s\n", szFileName, pFieldContent); Write_Log(LOG_TYPE_INFO, _T("The file %s content is: \n%s\n"), szFileName, pFieldContent); }
/**************************************************************************** * * FUNCTION: StartDriver( IN SC_HANDLE, IN LPCTSTR) * * PURPOSE: Starts the driver service. * ****************************************************************************/ BOOL StartDriver( IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName ) { SC_HANDLE schService; BOOL ret; SERVICE_STATUS ServiceStatus; char LogZeile[128]; DWORD Service_Error ; schService = OpenService( SchSCManager, DriverName, SERVICE_ALL_ACCESS ); if ( schService == NULL ) { Service_Error = GetLastError(); sprintf(LogZeile,"OpenService %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); else if ( Service_Error == ERROR_INVALID_NAME ) strcat(LogZeile,"INVALID_NAME"); else if ( Service_Error == ERROR_SERVICE_DOES_NOT_EXIST ) strcat(LogZeile,"SERVICE_DOES_NOT_EXIST"); strcat(LogZeile,")"); Write_Log(LogZeile); return(FALSE); }; if ( QueryServiceStatus(schService,&ServiceStatus ) == FALSE ) { Service_Error = GetLastError(); sprintf(LogZeile,"QueryServiceStatus %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); strcat(LogZeile,")"); Write_Log(LogZeile); CloseServiceHandle( schService ); return(FALSE); }; if ( ServiceStatus.dwCurrentState == SERVICE_RUNNING ) return(TRUE); ret = StartService( schService, 0, NULL ); if ( ret == FALSE ) { Service_Error = GetLastError(); if( Service_Error == ERROR_SERVICE_ALREADY_RUNNING) { CloseServiceHandle( schService ); return(TRUE); } else { sprintf(LogZeile,"StartService %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); else if ( Service_Error == ERROR_PATH_NOT_FOUND ) strcat(LogZeile,"PATH_NOT_FOUND"); else if ( Service_Error == ERROR_SERVICE_DATABASE_LOCKED ) strcat(LogZeile,"SERVICE_DATABASE_LOCKED"); else if ( Service_Error == ERROR_SERVICE_DEPENDENCY_DELETED ) strcat(LogZeile,"DEPENDENCY_DELETED"); else if ( Service_Error == ERROR_SERVICE_DEPENDENCY_FAIL ) strcat(LogZeile,"DEPENDENCY_FAIL"); else if ( Service_Error == ERROR_SERVICE_DISABLED ) strcat(LogZeile,"SERVICE_DISABLED"); else if ( Service_Error == ERROR_SERVICE_LOGON_FAILED ) strcat(LogZeile,"SERVICE_LOGON_FAILED"); else if ( Service_Error == ERROR_SERVICE_MARKED_FOR_DELETE ) strcat(LogZeile,"SERVICE_MARKED_FOR_DELETE"); else if ( Service_Error == ERROR_SERVICE_NO_THREAD ) strcat(LogZeile,"SERVICE_NO_THREAD"); else if ( Service_Error == ERROR_SERVICE_REQUEST_TIMEOUT ) strcat(LogZeile,"SERVICE_REQUEST_TIMEOUT"); strcat(LogZeile,")"); Write_Log(LogZeile); RemoveDriver(SchSCManager, DriverName); return(FALSE); } } CloseServiceHandle( schService ); return ret; }
/**************************************************************************** * * FUNCTION: InstallDriver( IN SC_HANDLE, IN LPCTSTR, IN LPCTSTR) * * PURPOSE: Creates a driver service. * ****************************************************************************/ BOOL InstallDriver( IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName, IN LPCTSTR ServiceExe ) { SC_HANDLE schService; DWORD Service_Error; char LogZeile[128]; int ret; char DependOn[256]; LPCTSTR dependencies=NULL; memset(&DependOn[0],0x00,256); if ( ( strcmp((char *)DriverName,"MultiDec BT-Treiber") == 0 ) || ( strcmp((char *)DriverName,"MultiDec SAA-Treiber") == 0 ) ) { strcpy(DependOn,"MultiDec HAL-Treiber"); dependencies=&DependOn[0]; }; // // NOTE: This creates an entry for a standalone driver. If this // is modified for use with a driver that requires a Tag, // Group, and/or Dependencies, it may be necessary to // query the registry for existing driver information // (in order to determine a unique Tag, etc.). // schService = CreateService( SchSCManager, // SCManager database DriverName, // name of service DriverName, // name to display SERVICE_ALL_ACCESS | STANDARD_RIGHTS_REQUIRED , // desired access SERVICE_KERNEL_DRIVER, // service type SERVICE_AUTO_START, // start type SERVICE_ERROR_NORMAL, // error control type ServiceExe, // service's binary NULL, // no load ordering group NULL, // no tag identifier dependencies, // no dependencies NULL, // LocalSystem account NULL // no password ); if ( schService == NULL ) { Service_Error = GetLastError(); sprintf(LogZeile,"CreateService %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_CIRCULAR_DEPENDENCY ) strcat(LogZeile,"CIRCULAR_DEPENDENCY"); else if ( Service_Error == ERROR_DUP_NAME ) strcat(LogZeile,"DUP_NAME"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); else if ( Service_Error == ERROR_INVALID_NAME ) strcat(LogZeile,"INVALID_NAME"); else if ( Service_Error == ERROR_INVALID_PARAMETER ) strcat(LogZeile,"INVALID_PARAMETER"); else if ( Service_Error == ERROR_INVALID_SERVICE_ACCOUNT ) strcat(LogZeile,"INVALID_SERVICE_ACCOUNT"); else if ( Service_Error == ERROR_SERVICE_EXISTS ) strcat(LogZeile,"SERVICE_EXISTS"); strcat(LogZeile,")"); Write_Log(LogZeile); }; if(Service_Error == ERROR_SERVICE_EXISTS) { schService = OpenService( SchSCManager, DriverName, SERVICE_CHANGE_CONFIG ); if ( schService == NULL ) { Service_Error = GetLastError(); sprintf(LogZeile,"OpenService %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); else if ( Service_Error == ERROR_INVALID_NAME ) strcat(LogZeile,"INVALID_NAME"); else if ( Service_Error == ERROR_SERVICE_DOES_NOT_EXIST ) strcat(LogZeile,"SERVICE_DOES_NOT_EXIST"); strcat(LogZeile,")"); Write_Log(LogZeile); }; if ( DependOn[0] == 0x00 ) { ret = ChangeServiceConfig( schService, SERVICE_KERNEL_DRIVER, // service type SERVICE_AUTO_START, // start type SERVICE_ERROR_NORMAL, ServiceExe, NULL, NULL, NULL, NULL, NULL, DriverName ); } else { ret = ChangeServiceConfig( schService, SERVICE_KERNEL_DRIVER, // service type SERVICE_AUTO_START, // start type SERVICE_ERROR_NORMAL, ServiceExe, NULL, NULL, DependOn, NULL, NULL, DriverName ); }; if( ret != 0 ) { CloseServiceHandle( schService ); return TRUE; }; Service_Error = GetLastError(); sprintf(LogZeile,"ChangeService %s Fail ( Return %x ",DriverName,Service_Error); if ( Service_Error == ERROR_ACCESS_DENIED ) strcat(LogZeile,"ACCESS_DENIED"); else if ( Service_Error == ERROR_CIRCULAR_DEPENDENCY ) strcat(LogZeile,"CIRCULAR_DEPENDENCY"); else if ( Service_Error == ERROR_DUP_NAME ) strcat(LogZeile,"DUP_NAME"); else if ( Service_Error == ERROR_INVALID_HANDLE ) strcat(LogZeile,"INVALID_HANDLE"); else if ( Service_Error == ERROR_INVALID_PARAMETER ) strcat(LogZeile,"INVALID_PARAMETER"); else if ( Service_Error == ERROR_INVALID_SERVICE_ACCOUNT ) strcat(LogZeile,"INVALID_SERVICE_ACCOUNT"); else if ( Service_Error == ERROR_SERVICE_MARKED_FOR_DELETE ) strcat(LogZeile,"SERVICE_MARKED_FOR_DELETE"); strcat(LogZeile,")"); Write_Log(LogZeile); CloseServiceHandle( schService ); return FALSE; }; // Hier if ( schService != NULL ) CloseServiceHandle( schService ); return(TRUE); };
void Box53OnClick() { choice_t=2; Write_Log("Lighting mode: Dinner"); Draw_state(choice_t); }
void Box40OnClick() { choice_t=3; Write_Log("Heating mode: Party"); Draw_state(choice_t); }
void Box39OnClick() { choice_t=2; Write_Log("Heating mode: Day"); Draw_state(choice_t); }
void Box38OnClick() { choice_t=1; Write_Log("Heating mode: Night"); Draw_state(choice_t); }
void Box37OnClick() { choice_t=0; Write_Log("Heating mode: Home"); Draw_state(choice_t); }
void Box55OnClick() { choice_t=3; Write_Log("Lighting mode: Party"); Draw_state(choice_t); }
void Box51OnClick() { choice_t=0; Write_Log("Lighting mode: Media"); Draw_state(choice_t); }
int Start_MDHal( void ) { unsigned int Register; HANDLE hWD; char VersionString[255]; char Path[255]; HANDLE Device_Handle; NT=Get_Version_Informations(&VersionString[0]); Fail_BOOT=FALSE; sprintf(Path,t("Betriebssystem : %s "),VersionString); Write_Log(Path); SetDlgItemText(SplashWnd,IDC_TEXT1,VersionString); Fail_BOOT=FALSE; hWD = WD_Open(); sprintf(Path,"OrgDriverName : %s ",OrgDriverName); Write_Log(Path); sprintf(Path,"OrgDVBDriverName : %s ",OrgDVBDriverName); Write_Log(Path); if ( OrgDriverName[0] != 0x00 ) { UnloadDeviceDriver((const char *)OrgDriverName,FALSE); Sleep(500); }; if ( OrgDVBDriverName[0] != 0x00 ) { UnloadDeviceDriver((const char *)OrgDVBDriverName,FALSE); Sleep(500); }; if ( hWD == (void *)0xffffffff) { sprintf(Path,t("Starte Service-Installation")); Write_Log(Path); if ( NT == TRUE ) { Write_Log(">>>>>>>> MDHALDR.SYS For NT <<<<<<<<"); GetCurrentDirectory( sizeof (Path),Path ); strcat(Path,"\\MDHALDR.SYS"); Write_Log(Path); if ( ! LoadDeviceDriver( "MultiDec HAL-Treiber", Path, &Device_Handle,TRUE ) ) { return(-1); }; } else { Write_Log(">>>>>>>> MDHALDR.VXD For 9x <<<<<<<<"); Device_Handle=CreateFile("\\\\.\\MDHALDR.VXD",0,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_DELETE_ON_CLOSE,0); if(Device_Handle==INVALID_HANDLE_VALUE){ DWORD x = GetLastError(); if ( x != 50 ) return(-2); } } } else { sprintf(Path,t("Service bereits installiert")); Write_Log(Path); WD_Close (hWD); }; // Ich benutze Windriver, und um jungo nicht weiter zu schaden, // liegt diese Funktion in einer DLL , die nur mit MultiDec läuft! // ( Andere Programme würden keine Freischaltung bekommen ) // // Sorry Jungo, aber 3500.- DM habe ich nicht, aber ich mache ab sofort // ( eigentlich schon immer ) Werbung für euch Register = Register_MDHal_Driver(); if ( Register !=0xefcf1ffe ) { sprintf(Path,t("Service - Register fehlerhaft ( Return : 0x%08x)"),Register); Write_Log(Path); return(-3); } sprintf(Path,t("Service - OK")); Write_Log(Path); return(0); };
void Box52OnClick() { choice_t=1; Write_Log("Lighting mode: Relax"); Draw_state(choice_t); }