用python写了个控制cpu变频范围的小程序

用python写了个控制cpu变频范围的小程序

CpuFreq
这是一个控制cpu变频范围和笔记本风扇工作模式的GUI小程序.


如果你在可变频的笔记本(intel PM ;AMD Turion),上安装linux.
使用本程序,你可以很方面的在gui界面下设置你所需要的运行环境:
比如说:
cpu是PM 0.6Ghz-1.7Ghz的。

你可以在工作时候设置为1.7GHz-1.2GHz,
不插电时设置为1.2GHz-0.8GHz
晚上挂驴下载时设为0.8Ghz-0.6Ghz

你还可以选择你的cpu风扇运行于 主动 或 被动 模式。


主动模式:风扇持续低转速运行,随着cpu温度身高逐渐提高转速。
被动模式:空闲时风扇停转,当cpu温度超过BIOS设置的阀值时,启动风扇降温,温度下降时再停止风扇工作。


cpu 变频次数 和 各频率运行比例 统计。

下载:
http://www.linuxfans.org/nuke/mo ... eninfo&did=4498

界面是用wxpython写的。
使用了MDI结构。
在全部wx.MDIChildFrame  Show 完成后,,发现不论怎么 Raise()  都不能把之先前列出的wx.MDIChildFrame 前置。。。   
请前辈为我指点下。。。
谢谢。

沙发。
看上去不错,学习一下。
很厉害啊
哈。。。。     工作层简单死了。。就是几个echo命令。

[Copy to clipboard] [ - ]
CODE:
def GetCpuData():
        """cpudata.keys == ['trans_table', 'scaling_max_freq', 'scaling_governor', 'scaling_min_freq', 'scaling_available_governors', 'scaling_available_frequencies', 'time_in_state', 'total_trans']"""
        cpudatadir = '/sys/devices/system/cpu/cpu0/cpufreq/'
        data = {'scaling_available_frequencies':'','scaling_available_governors':'','scaling_governor':'','scaling_max_freq':'','scaling_min_freq':'','time_in_state':'','total_trans':'','trans_table':''}
        for i in data.keys():
                if i not in ['time_in_state','total_trans','trans_table']:
                        d = open(cpudatadir+i).read()
                        data[i] = d
                else:
                        d = open(cpudatadir+'stats/'+i).read()
                        data[i] = d
        return data
       
def SetCpuData(scaling_max_freq=0,scaling_min_freq=0,scaling_governor=0):
        cpudatadir = '/sys/devices/system/cpu/cpu0/cpufreq/'
        targetlist = ['scaling_min_freq','scaling_max_freq','scaling_governor']
        targetlist = [cpudatadir + i for i in targetlist]
        changelist = [scaling_min_freq,scaling_max_freq,scaling_governor]
        for i in range(3):
                if not changelist[i] == 0:
                        d = open(targetlist[i],'w')
                        d.write(str(changelist[i]))
                        d.close()
                else : pass
       
                       
def Fandata(mode,state='None'):
        """when mode it 'set',state instruct what cpu cooling mode should be use,0 mean active,1 mean passive"""
        dir = '/proc/acpi/thermal_zone/THRM/'
        if mode == 'get':
                d = open(dir+'cooling_mode','r')
                D = d.read()
                d.close()
                t = open(dir+'temperature','r')
                T = t.read()
                T = T.replace('   ','')
                t.close()
                return D , T
        if mode == 'set':
                d = open(dir+'cooling_mode','w')
                d.write(state)
                d.close()

嘿嘿 在linux下就可以这么简单 设备就是文件 哈哈
读系统文件就中啦,我以为LZ是在WIN下实现的,不过对LZ的界面很感兴趣,怎么弄D?