zoukankan      html  css  js  c++  java
  • 格力空调红外拼码Python脚本程序

    #coding=utf-8  

    #说明:格力空调红外拼码Python脚本程序  

    #对应的码库为格力9,inst值:100032  

    startLevel = (9000,4500)    #起始码  

    linkLevel = (550,20000)     #连接码  

    lowLevel = (550,550)        #低电平  

    highLevel = (550,1660)      #高电平  

    #模式标志  

    modeFlag = 4  

    def modeCodeFunc(m):  

    global modeFlag  

        modeCode = (lowLevel+lowLevel+lowLevel, #自动  

            highLevel+lowLevel+lowLevel, #制冷  

            lowLevel+highLevel+lowLevel, #加湿  

            highLevel+highLevel+lowLevel,#送风  

            lowLevel+lowLevel+highLevel) #制热  

    if m > modeCode.__len__()-1:  

    print "模式参数必须小于" +str(modeCode.__len__())  

    return modeCode[0]  

        modeFlag = m  

    return modeCode[m]  

    #开关  

    keyFlag = 0  

    def keyCodeFunc(k):  

    global keyFlag  

        keyCode = (lowLevel,    #关  

               highLevel)   #开  

        keyFlag = k  

    return keyCode[k]  

    #风速  

    fanSpeedFlag =0  

    def fanSpeedCodeFunc(f):  

    global fanSpeedFlag  

        fanSpeedCode = (lowLevel+lowLevel,  #自动  

                highLevel+lowLevel, #一档  

                lowLevel+highLevel, #二档  

                highLevel+highLevel)    #三档  

    if f>fanSpeedCode.__len__()-1:  

    print "风速参数必须小于"+str(fanSpeedCode.__len__())  

    return fanSpeedCode[0]  

        fanSpeedFlag = f  

    return fanSpeedCode[f]  

    #扫风  

    #fanScanFlag = 0  

    def fanScanCodeFunc(f):  

        fanScanCode = (lowLevel,highLevel)  

        fanScanFlag = f  

    if f>fanScanCode.__len__()-1:  

    print "扫风参数必须小于"+str(fanScanCode.__len__())  

    return fanScanCode[0]  

    return fanScanCode[f]  

    def getSleepCode(s):  

        sleepCode = (lowLevel,highLevel)  

    if s>sleepCode.__len__()-1:  

    print "睡眠参数必须小于"+str(sleepCode.__len__())  

    return sleepCode[0]  

    return sleepCode[s]  

    tempFlag = 16  

    def tempertureCodeFunc(t):  

    global tempFlag  

        tempFlag = t  

        tempCode = ()# lowLevel+lowLevel+lowLevel+lowLevel  

        dat  = t - 16  

    #print dat  

    print bin(dat)  

    for i in range(0, 4, 1):  

            x = dat & 1  

    #print x,  

    if x == 1:  

                tempCode += highLevel  

    elif x == 0:  

                tempCode += lowLevel  

            dat = dat >> 1  

    return tempCode  

    #定时数据  

    def getTimerCode():  

        timerCode = lowLevel+lowLevel+lowLevel+lowLevel+  

                    lowLevel+lowLevel+lowLevel+lowLevel  

    return timerCode  

    #超强、灯光、健康、干燥、换气  

    def getOtherCode(strong, light, health, dry, breath):  

        otherFuncCode = ()  

    if True==strong:  

            otherFuncCode = highLevel  

    else:  

            otherFuncCode = lowLevel  

    if True==light:  

            otherFuncCode += highLevel  

    else:  

            otherFuncCode += lowLevel  

    if True==health:  

            otherFuncCode += highLevel  

    else:  

            otherFuncCode += lowLevel  

    if True==dry:  

            otherFuncCode += highLevel  

    else:  

            otherFuncCode += lowLevel  

    if True==breath:  

            otherFuncCode += highLevel  

    else:  

            otherFuncCode += lowLevel  

    return otherFuncCode  

    #前35位结束码后七位结束码  

    #所有按键都是  

    #000 1010  

    def getFirstCodeEnd():  

        firstCodeEnd = lowLevel+lowLevel+lowLevel+highLevel+lowLevel+highLevel+lowLevel  

    return firstCodeEnd  

    #连接码  

    def getLinkCode():  

        linkCode = lowLevel+highLevel+lowLevel+linkLevel  

    return linkCode  

    #上下扫风  

    fanUpAndDownFlag = 1;  

    fanLeftAndRightFlag = 1;  

    def fanUpAndDownCodeFunc(f):  

    global fanUpAndDownFlag  

        fanUpAndDownCode = (lowLevel+lowLevel+lowLevel+lowLevel,  

                        highLevel+lowLevel+lowLevel+lowLevel)  

        fanUpAndDownFlag = f  

        fanScanCodeFunc(fanUpAndDownFlag or fanLeftAndRightFlag)  

    return fanUpAndDownCode[f]  

    #左右扫风  

    def fanLeftAndRightCodeFunc(f):  

    global fanLeftAndRightFlag  

        fanLeftAndRightCode =(lowLevel+lowLevel+lowLevel+lowLevel,  

                          highLevel+lowLevel+lowLevel+lowLevel)  

        fanLeftAndRightFlag = f  

        fanScanCodeFunc(fanUpAndDownFlag or fanLeftAndRightFlag)  

    return fanLeftAndRightCode[f]  

    #0000  

    #0100  

    #0000  

    #0000  

    #0000  

    def getOtherFunc2():  

        otherFunc2 = lowLevel+lowLevel+lowLevel+lowLevel  

        otherFunc2 += lowLevel+highLevel+lowLevel+lowLevel  

        otherFunc2+= lowLevel+lowLevel+lowLevel+lowLevel+  

                    lowLevel+lowLevel+lowLevel+lowLevel+  

                    lowLevel+lowLevel+lowLevel+lowLevel  

    return otherFunc2  

    def getCheckoutCode():  

    #校验码 = (模式 – 1) + (温度 – 16) + 5 + 左右扫风 + 换气 + 节能 - 开关  

    # 取二进制后四位,再逆序  

        dat = (modeFlag - 1) + (tempFlag - 16) + 5 + fanLeftAndRightFlag + 0 + 0 - keyFlag  

    print(dat)  

        code = ()  

    for i in range(0, 4, 1):  

            x = dat & 1  

    if 1 == x:  

                code += highLevel  

    elif 0 == x:  

                code += lowLevel  

            dat = dat >> 1  

    #print code  

    return code  

    def getSecondCodeEnd():  

        secondCodeEnd = (550,40000)  

    return secondCodeEnd  

    if __name__ == "__main__":  

    print("格力空调遥控器红外编码-长码")  

    print("100032-格力9")  

        code = startLevel               #起始码  

        code += modeCodeFunc(1)         #模式:0自动,1制冷,2加湿,3送风,4加热  

        code += keyCodeFunc(1)          #开关:0关,1开  

        code += fanSpeedCodeFunc(0)     #风速:0自动,1一档,2二档,3三档  

        code += fanScanCodeFunc(0)      #扫风:0关,1开-设置上下扫风和左右扫风的时候会自动设置为1  

        code += getSleepCode(0)         #睡眠  

        code += tempertureCodeFunc(16)   #温度  

        code += getTimerCode()          #定时  

        code += getOtherCode(False,True,False,False,False)  #其他-超强、灯光、健康、干燥、换气  

        code += getFirstCodeEnd()       #剩余的编码  

        code += getLinkCode()           #连接码  

        code += fanUpAndDownCodeFunc(0)     #上下扫风  

        code += fanLeftAndRightCodeFunc(1)  #左右扫风  

        code += getOtherFunc2()             #固定码  

        code += getCheckoutCode()           #校验码  

        code += getSecondCodeEnd()          #结束码  

    print "电平码:"  

    print code  

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/blhw/p/6702874.html
Copyright © 2011-2022 走看看