📄 instance_battery.cpp
字号:
//raise error //TODO this->SetNull( true ); }*/ }void BatteryRateClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );/* LONG value = 0; int index ; BATTERY_DEVICE_LIST DeviceList; LONG Rate; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryRate( BatteryDevice , &Rate ); value = Rate; //printf("Rate value %d\n",value); //fordebugging only if(Rate == BATTERY_UNKNOWN_RATE){ //raise error Battery rate unknows //TODO this->SetNull( true ); } else{ this->SetValueImpl( value ); } } else { //raise error //TODO this->SetNull( true ); }*/} void BatteryRechargeableClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; IntelMobileBool rechargable; if (pThis->__battery->isInit) { this->SetValueImpl( pThis->__battery->batteryinfo.Rechargeable ); } else { //raise error //TODO this->SetNull( true ); }/* int index; BATTERY_DEVICE_LIST DeviceList; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if ( ret == 0) { if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryRechargeable( BatteryDevice ,&rechargable ); if ( ret == 0) { this->SetValueImpl( rechargable ); } else { this->SetNull( true ); } } else { this->SetNull( true ); } } else { this->SetNull( true ); }*/}void BatteryReportingScaleCapacityClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );/* ULONG QueryBuffer1[4], QueryBuffer2[4]; LONG entries; int index; BATTERY_DEVICE_LIST DeviceList; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } this->Clear(); //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if ( ret == 0 ) { if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryGranularity( BatteryDevice, &entries, QueryBuffer1, QueryBuffer2); //entires, granularity, capacity if ( ret == 0 ) { for ( int ix = 0; ix < entries; ix++ ) this->InsertValueImpl( QueryBuffer2[ix] ); } else { this->SetNull( true ); } } else { this->SetNull( true ); } } else { this->SetNull( true ); }*/} void BatteryReportingScaleEntriesClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );/* ULONG QueryBuffer1[4], QueryBuffer2[4]; LONG entries; int index; BATTERY_DEVICE_LIST DeviceList; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if (ret == 0 ){ if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryGranularity( BatteryDevice, &entries, QueryBuffer1, QueryBuffer2); //entires, granularity, capacity if (ret == 0 ){ this->SetValueImpl( entries ); } else { this->SetNull( true ); } } else { this->SetNull( true ); } } else { this->SetNull( true ); }*/} void BatteryReportingScaleGranularityClass::GetValueImpl(){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)_pThis; this->SetNull( true );/* ULONG QueryBuffer1[4], QueryBuffer2[4]; LONG entries; int index; BATTERY_DEVICE_LIST DeviceList; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } this->Clear(); //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if (ret == 0 ){ if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryGranularity( BatteryDevice, &entries, QueryBuffer1, QueryBuffer2); //entires, granularity, capacity if ( ret == 0) { for ( int ix = 0; ix < entries; ix++ ) this->InsertValueImpl( QueryBuffer1[ix] ); } else { this->SetNull( true ); } } else { this->SetNull( true ); } } else { this->SetNull( true ); }*/} void BatterySerialNumberClass::GetValueImpl ( ) { DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; if (pThis->__battery->isInit) { IntelMobileChar serial[256]; #ifdef _UNICODE mbstowcs(serial,pThis->__battery->batteryinfo.SerialNumber,256); #else strncpy(serial,pThis->__battery->batteryinfo.SerialNumber,256); #endif this->SetValueImpl( serial); } else { //raise error //TODO this->SetNull( true ); }/* int index; BATTERY_DEVICE_LIST DeviceList; BATTERY_DEVICE * BatteryDevice; DWORD ret; char SerialNumber[MAX_PATH];// BSTR value = NULL; IntelMobileChar value[256]; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if(ret == 0){ if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed in the battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatterySerialNumber( BatteryDevice, SerialNumber ); if(ret == 0){ //printf("serial number value %s\n",SerialNumber ); //used for debugging only //value = _com_util::ConvertStringToBSTR( SerialNumber ); mbstowcs(value,SerialNumber,256); this->SetValueImpl( static_cast<IntelMobileChar*>( value ) ); } else { this->SetNull( true ); } } else { this->SetNull( true ); } } else { this->SetNull( true ); }*/ }void BatterySuggestedCriticalAlertCapacityClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; if (pThis->__battery->isInit) { this->SetValueImpl( pThis->__battery->batteryinfo.SCriticalAlert ); } else { //raise error //TODO this->SetNull( true ); }/* ULONG value = 0; int index; BATTERY_DEVICE_LIST DeviceList; ULONG SuggestedCriticalAlert; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if(ret == 0){ if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryDefaultAlert1( BatteryDevice , &SuggestedCriticalAlert); if(ret == 0){ value = SuggestedCriticalAlert; //printf("SuggestedCriticalAlert value %d\n",value); //fordebugging only this->SetValueImpl( value ); } else { //raise error //TODO this->SetNull( true ); } } else { //raise error //TODO this->SetNull( true ); } } else { //raise error //TODO this->SetNull( true ); }*/}void BatterySuggestedLowAlertCapacityClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; if (pThis->__battery->isInit) { this->SetValueImpl( pThis->__battery->batteryinfo.SCriticalBias ); } else { //raise error //TODO this->SetNull( true ); }/* ULONG value = 0; int index; BATTERY_DEVICE_LIST DeviceList; ULONG SuggestedLowAlert; BATTERY_DEVICE * BatteryDevice; DWORD ret; if(!pThis->Index.IsNull()) { index = pThis->Index.GetValue(); } else { return; } //Only first implementation to see that it works within framework ret = pThis->GetBatteryInstances( &DeviceList ); //TODO optimize code, pull Devicelist out as a global if(ret == 0){ if(DeviceList.Device[index].Tag !=0) { //we do have a battery installed inthe battery slot BatteryDevice = &DeviceList.Device[index]; ret = pThis->GetBatteryDefaultAlert2( BatteryDevice , &SuggestedLowAlert); if(ret == 0){ value = SuggestedLowAlert; //printf("SuggestedLowAlert value %d\n",value); //fordebugging only this->SetValueImpl( value ); } else { //raise error //TODO this->SetNull( true ); } } else { //raise error //TODO this->SetNull( true ); } } else { //raise error //TODO this->SetNull( true ); }*/}void BatteryCriticalAlertCapacityClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; ULONG value = 0; this->SetNull( true ); //for power policy// GLOBAL_POWER_POLICY GlobalPowerPolicy; //Pointer to a GLOBAL_POWER_POLICY structure that receives the current global power policy settings.// POWER_POLICY PowerPolicy; //Pointer to a POWER_POLICY structure that receives the power policy settings that are unique to the active power scheme. // GLOBAL_USER_POWER_POLICY GlobalCurrentUserPowerPolicy; //ULONG Revision; POWER_ACTION_POLICY PowerButtonAc; POWER_ACTION_POLICY PowerButtonDc; POWER_ACTION_POLICY SleepButtonAc; POWER_ACTION_POLICY SleepButtonDc; POWER_ACTION_POLICY LidCloseAc; POWER_ACTION_POLICY LidCloseDc; SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; ULONG GlobalFlags;// GLOBAL_MACHINE_POWER_POLICY GlobalCurrentMachPowerPolicy;// USER_POWER_POLICY CurrentUserPowerPolicy ; // MACHINE_POWER_POLICY CurrentMachPowerPolicy; //NUM_DISCHARGE_POLICIES defined in winnt.h, currently 4) // SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; //BOOLEAN Enable; UCHAR Spare[3]; ULONG BatteryLevel; POWER_ACTION_POLICY PowerPolicy; SYSTEM_POWER_STATE MinSystemState//// The GetCurrentPowerPolicies function retrieves the current system power policy settings.// // if( GetCurrentPowerPolicies(&GlobalPowerPolicy, &PowerPolicy) ){ // GlobalCurrentUserPowerPolicy = GlobalPowerPolicy.user;// GlobalCurrentMachPowerPolicy = GlobalPowerPolicy.mach;// CurrentUserPowerPolicy = PowerPolicy.user;// CurrentMachPowerPolicy = PowerPolicy.mach;// DischargePolicy[0] = GlobalCurrentUserPowerPolicy.DischargePolicy[0]; // if(DischargePolicy[0].Enable) { //printf("BatteryLevel 0 , %d\n", DischargePolicy[0].BatteryLevel); //critical debug only// value = DischargePolicy[0].BatteryLevel;// this->SetValueImpl( value );// }// else {// this->SetNull( true );// }// }// else {// this->SetNull( true );// }}//void BatteryLowAlertCapacityClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis;// ULONG value = 0; if (pThis->__battery->isInit) { this->SetValueImpl( pThis->__battery->batteryinfo.CriticalAlert ); } else { //raise error //TODO this->SetNull( true ); } //for power policy// GLOBAL_POWER_POLICY GlobalPowerPolicy; //Pointer to a GLOBAL_POWER_POLICY structure that receives the current global power policy settings.// POWER_POLICY PowerPolicy; //Pointer to a POWER_POLICY structure that receives the power policy settings that are unique to the active power scheme. // GLOBAL_USER_POWER_POLICY GlobalCurrentUserPowerPolicy; //ULONG Revision; POWER_ACTION_POLICY PowerButtonAc; POWER_ACTION_POLICY PowerButtonDc; POWER_ACTION_POLICY SleepButtonAc; POWER_ACTION_POLICY SleepButtonDc; POWER_ACTION_POLICY LidCloseAc; POWER_ACTION_POLICY LidCloseDc; SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; ULONG GlobalFlags; // GLOBAL_MACHINE_POWER_POLICY GlobalCurrentMachPowerPolicy;// USER_POWER_POLICY CurrentUserPowerPolicy ; // MACHINE_POWER_POLICY CurrentMachPowerPolicy; //NUM_DISCHARGE_POLICIES defined in winnt.h, currently 4) // SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; //BOOLEAN Enable; UCHAR Spare[3]; ULONG BatteryLevel; POWER_ACTION_POLICY PowerPolicy; SYSTEM_POWER_STATE MinSystemState//// The GetCurrentPowerPolicies function retrieves the current system power policy settings.// // if( GetCurrentPowerPolicies(&GlobalPowerPolicy, &PowerPolicy) ){ // GlobalCurrentUserPowerPolicy = GlobalPowerPolicy.user;// GlobalCurrentMachPowerPolicy = GlobalPowerPolicy.mach; // CurrentUserPowerPolicy = PowerPolicy.user;// CurrentMachPowerPolicy = PowerPolicy.mach;// DischargePolicy[1] = GlobalCurrentUserPowerPolicy.DischargePolicy[1]; //alarm// if(DischargePolicy[1].Enable) { //printf("BatteryLevel 1 , %d\n", DischargePolicy[1].BatteryLevel); //critical debug only// value = DischargePolicy[1].BatteryLevel;// this->SetValueImpl( value );// }// else {// this->SetNull( true );// }/// }// else {// this->SetNull( true );// }}void BatteryFailSafeClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; bool systembattery; int ret=GetSystemBattery(&systembattery); if(!ret) this->SetValueImpl(systembattery); else{ this->SetNull(true); }}void BatteryTemperatureClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );}void BatteryTimeRemainingClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );} void BatteryVoltageClass::GetValueImpl ( ){ DefaultBatteryInstanceObject* pThis = (DefaultBatteryInstanceObject*)this->_pThis; this->SetNull( true );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -