예제 #1
0
파일: cond.py 프로젝트: KaiserMovet/K-Smart
 def Refresh(self):
     debug.Log(str(self.dev1) + "!=Value " + str(self.dev1 != "Value"))
     if self.dev1 != "Value":
         self.value1 = self.data.GetValue(self.dev1)
         debug.Log("Value1= " + str(self.value1))
     debug.Log(str(self.dev2) + "!=Value " + str(self.dev2 != "Value"))
     if self.dev2 != "Value":
         self.value2 = self.data.GetValue(self.dev2)
         debug.Log("Value2= " + str(self.value2))
     self.bool = compDict[self.comp](self.value1, self.value2)
예제 #2
0
파일: cond.py 프로젝트: KaiserMovet/K-Smart
 def __init__(self, name, refresh, desc):
     self.name = name
     self.refresh = refresh  #sekundy
     self.desc = desc
     self.small = dict()  #slownik malych warunkow
     self.effect = dict()  #slownik efektow
     self.bool = False
     debug.Log('Cond: Object Added {}, {}, {}'.format(name, refresh, desc))
예제 #3
0
파일: cond.py 프로젝트: KaiserMovet/K-Smart
 def Refresh(self, count, interval):
     if count % (self.refresh // interval) != 0:
         return
     tempBool = 0  #Liczy true w small.bool
     for i in self.small.values():
         i.Refresh()
         if i.bool:
             tempBool += 1
         ###
     ###
     if tempBool == len(self.small):
         if self.bool == False:
             debug.Log('{}: bool To True'.format(self.name))
         self.bool = True
     else:
         if self.bool == False:
             debug.Log('{}: bool To False'.format(self.name))
         self.bool = False
     ###
     for i in self.effect.values():
         i.Refresh(self.bool)
예제 #4
0
    def __init__(self, name, pos, desc, typeName, refreshTime, isRec):

        self.name = name
        self.pos = pos
        self.desc = desc
        self.typeName = typeName
        self.value = 0
        self.trueValue = -1
        self.isRec = isRec
        self.refreshTime = refreshTime  #sekundy

        debug.Log('Device: Object Added {}, {}, {}, {}, {}, {}'.format(
            name, pos, desc, typeName, refreshTime, isRec))
예제 #5
0
파일: main.py 프로젝트: KaiserMovet/K-Smart
def Refresh(data):
    data.timeCount=0
    debug.Log("Refresh")
    while not isExit:
        if isActive:
            data.isUpdating=True
            data.dicConst["lastUpdate"]=time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
            data.Refresh()
            data.dicConst["timeCount"]+=data.dicConst["interval"]
            data.isUpdating=False
            with open("data.txt","w") as file:
                file.write(data.DataToStr())
            if data.dicConst["timeCount"]>=3600:
                data.dicConst["timeCount"]=0

        time.sleep(data.dicConst["interval"])
예제 #6
0
    def run(self):
        # add a try/finally statement in the future
        serial = SerialModule(self.port, self.baud)
        self.terminate = False
        BUFFER = []
        debug.Log("ListenThread: Serial thread started!")
        debug.Log("ListenThread: port = %s, baud = %s" % (self.port, self.baud))
        while True:
            debug.Log("ListenThread: Awaiting packet...")
            if self.terminate:
                debug.Log("ListenThread: Serial thread stopped!")
                break
            newbuffer = serial.Rx()
            if newbuffer:
                BUFFER += newbuffer
                debug.Log("ListenThread: Bytes: %s" % str(BUFFER))
            while len(BUFFER) > 0:
                try:
                    packet_info = self.decoder.get_data_definition(BUFFER)
                    expectedlength = packet_info.getPacketLength()
                    
                    packet_type = packet_info.getPacketName()
                    if packet_type == "unknown":
                        self.notify_unknown_packet_received(packet_type, BUFFER[:])
                        BUFFER = []
                    elif 0 < len(BUFFER) < expectedlength:
                        self.notify_unexpected_length(packet_info, BUFFER)
                        break
                    elif len(BUFFER) >= expectedlength:
                        self.notify_packet_received(packet_type, BUFFER[:expectedlength])
                        BUFFER = BUFFER[expectedlength:]
                    else:
                        pass
                        
                except ValueError:
                    debug.Log("ListenThread: length is zero")
                    BUFFER = []
                except AssertionError:
                    debug.Log("ListenThread: packet not large enough to determine SOB")
                    BUFFER = []
                except IndexError:
                    debug.Log("ListenThread: BUFFER Start of block not 0xFF. Clearing BUFFER!")
                    BUFFER = []

        serial.close()
예제 #7
0
 def SetDevValue(self):
     #TODO
     connector.SendValue(self.typeName, self.value)
     debug.Log('{}: SetDevValue {} '.format(self.name, self.value))
     pass
예제 #8
0
 def GetDevValue(self):
     #TODO
     self.value = connector.GetValue(self.typeName)
     debug.Log('{}: GetDevValue {} '.format(self.name, self.value))
     pass
예제 #9
0
 def notify_unknown_packet_received(self, packet_type, data):
     debug.Log("ListenThread: Unknown packet type")
     debug.Log(data)
     self.notify_packet_received(packet_type, data)
예제 #10
0
 def notify_unexpected_length(self, packet_info, data):
     debug.Log("ListenThread: packet length smaller than expected length")
     debug.Log("ListenThread: expected = %i, actual = %i" % (packet_info.getPacketLength(), len(data)))
     self.publisher.notify_unexpected_length(packet_info, data)
예제 #11
0
파일: cond.py 프로젝트: KaiserMovet/K-Smart
 def addSmall(self, data, name, dev1, dev2, comp, value1=0, value2=0):
     self.small[name] = (SmallCond(data, dev1, value1, dev2, value2, comp))
     debug.Log('{}: Cond Added {}, {}, {}, {}, {}, {}'.format(
         self.name, name, dev1, value1, dev2, value2, comp))
예제 #12
0
파일: cond.py 프로젝트: KaiserMovet/K-Smart
 def addEffec(self, data, name, deviceName, trueValue, falseValue):
     self.effect[name] = (Effect(data, deviceName, trueValue, falseValue))
     debug.Log('{}: Effect Added {}, {}, {}, {}'.format(
         self.name, name, deviceName, trueValue, falseValue))