def createPointInformationPacket(self): """function to build a point information request packet using speak 6 header""" header = LocalHeader(packetID.spkd_ID_POINT_INFO_REQUEST) header.setParameter("destinationTask", 0x04) header.setParameter("sourceChannelAddress", 0xFD) #values sent by consys for header replicated here header.setParameter("sourceTask", 0x92) header.IgnoreReserved(True) content = PointInformationContent() packet = Packet(header, content) frame = Frame(packet, FLG) transfer = SerialDataTransfer("COM20") reader = DataReader(transfer) reader.Start() #executes read thread to process incoming response after sent request transfer.Write(frame.getByteArray()) print(frame.getByteArray()) print("Point Information Reply\n") read(reader, transfer)
def sendNextPointInformationPacket(self, clientID): global FLG header = LocalHeader(packetID.spkd_ID_POINT_CLNT_ACKNOWLEDGE) header.setParameter("destinationTask", 0x04) header.setParameter("sourceChannelAddress", 0xFD) header.setParameter("sourceTask", 0x12) FLG = FLG + 1 content = NextPointInformationContent() content.setParameter("clientID", clientID) packet = Packet(header, content) frame = Frame(packet, FLG) header.IgnoreReserved(True) transfer.Write(frame.getByteArray()) print(frame.getByteArray()) print("Next Point Information Reply\n")
def createPointInformationPacket(self): """function to build a point information request packet using speak 6 header""" header = LocalHeader(packetID.spkd_ID_POINT_INFO_REQUEST) header.setParameter("destinationTask", 0x04) header.setParameter("sourceChannelAddress", 0xFD) #values sent by consys for header replicated here header.setParameter("sourceTask", 0x92) content = PointInformationContent() content.setParameter("searchType", 0x0A) packet = Packet(header, content) frame = Frame(packet, FLG) header.IgnoreReserved(True) transfer.Write(frame.getByteArray()) print(frame.getByteArray()) print("Point Information Reply Packet")
def format(self, bytes): header = None if (len(bytes) == 10): header = LocalHeader(bytes[8]) header.setParameter("signature", bytes[0]) header.setParameter("networkNode", bytes[1]) header.setParameter("channel", bytes[2]) header.setParameter("destinationChannelAddress", bytes[3]) header.setParameter("destinationTask", bytes[4]) header.setParameter("sourceChannelAddress", bytes[5]) header.setParameter("sourceTask", bytes[6]) header.setParameter("marker", bytes[7]) header.setParameter("reserved", bytes[9]) else: raise ValueError( "@LocalHeaderFormatter: the bytes length is unvalid") return header
from content import Content; from header import LocalHeader, LocalHeader5; from packetids import spkd_ID_POINT_INFO_REQUEST; from packet import Packet; import devicetype as devices; from frame import Frame; from serialdatatransfer import SerialDataTransfer; from readers import DataReader, BadPacketReadError; from byte import Byte; from points import *; if(__name__ == '__main__'): header = LocalHeader(spkd_ID_POINT_INFO_REQUEST); header.setParameter("destinationTask", 0x04); header.setParameter("sourceChannelAddress", 0xfd); header.setParameter("sourceTask",0x92); content = PointInformationContent(); content.setParameter('PanelNumber', 0x0c); content.setParameter('Channel', 0xff); content.setParameter('LoopNumber', 0x00); content.setParameter('PointCategory', 0xff); content.setParameter('PointNumber', 0xfd); content.setParameter('LogicalPointNumber', 0xfe); content.setParameter('LogicalPointZone', 0x00); content.setParameter('DeviceCategory', 0x00); content.setParameter('Group', 0x01); content.setParameter('LogicalPointZone', 0x00); content.setParameter('LogicalPointZone', 0x00); content.setParameter('LogicalPointZone', 0x00); packet = Packet(header, content); frame = Frame(packet , 0x0d);
def __del__(self): self.close() del self.__threadDeamon del self.__waitEvent self.__threadDeamon = None self.__waitEvent = None def onSendPacket(self, event): self.__sendPacket(event.playload) print("Packet {0} has be sent , size = {1}".format( event.playload.header.getParameter("packetID"), event.playload.size)) #Test packet protocol sending. if (__name__ == "__main__"): protocol = Protocol(SerialDataTransfer("COM1")) protocol.start() for i in range(0, 5): protocol.publish(PyEvent("initial.event", {"name": "Obaro"})) #Sending packet using the protocol. header = LocalHeader(ids.spkd_ID_RESTART_REQUEST) reset = RestartContent() packet = Packet(header, reset) protocol.publish(PyEvent(MX_SENDING__PACKET_EVENT, packet)) protocol.setTransport(None) protocol.close()
#create a valid frame object if possible other throw an exception. try: if (len(bytes) > 1): formatter = LocalFrameFormatter() frame = formatter.format(bytes) except Exception as frameError: raise BadPacketReadError(frameError.message, bytes, INVALID_FRAME_ERROR) except Exception as err: print err return frame """ When the Panel is restart , a default packet is send via the consys port. with packet ID = 78 # 01 00 12 00 00 00 00 00 00 00 00 00 182 00 01 """ if (__name__ == '__main__'): restart = Packet(LocalHeader(ids.spkd_ID_RESTART_REQUEST), RestartContent()) frameObject = Frame(restart, 0) reader = PTPFrameReader("COM8") reader.Start() while (reader != None): frame = reader.Next() if (frame != None): event = Event(01, frame) reader.publish(event)