You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.9 KiB
Python

import struct
# from skio.worker.state import SlotInfo
class DIdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int, lis: list):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
lis1 = []
for i in lis:
lis1 += i
# print(lis1)
self.value = struct.pack('8Q', *lis1)
# print(len(self.value))
self.array = []
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, self.value, 0xF314
]
# print(self.buf)
def packBytes(self):
packstyle = '>HHLL64sH'
req = struct.pack(packstyle, *self.buf)
return req
class AOdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int, lis: list):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
self.value = struct.pack('d' * 80, *lis)
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, self.value, 0xF314
]
# print(self.buf)
def packBytes(self):
packstyle = '>HHLL640sH'
req = struct.pack(packstyle, *self.buf)
return req
class AIdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, 0xF314
]
def packBytes(self):
packstyle = '>HHLLH'
req = struct.pack(packstyle, *self.buf)
return req
class GSstartdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, 0xF314
]
def packBytes(self):
packstyle = '>HHLLH'
req = struct.pack(packstyle, *self.buf)
return req
class GSstopdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, 0xF314
]
def packBytes(self):
packstyle = '>HHLLH'
req = struct.pack(packstyle, *self.buf)
return req
class HSdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int, lis: list):
self.data_type = data_type
self.data_size = 456
self.Packet_serial_No = Packet_serial_No
self.value = struct.pack('d' * 57, *lis)
print(self.data_type,self.data_size)
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, self.value, 0xF314
]
def packBytes(self):
packstyle = '>HHLL456sH'
req = struct.pack(packstyle, *self.buf)
return req
class STDdataPacket(object):
def __init__(self, data_type: int, data_size: int, Packet_serial_No: int, lis: list):
self.data_type = data_type
self.data_size = data_size
self.Packet_serial_No = Packet_serial_No
self.value = struct.pack('d' * self.data_size / 8, *lis)
self.buf = [
0xF312, self.data_type, self.data_size, self.Packet_serial_No, self.value, 0xF314
]
def packBytes(self):
packstyle = '>HHLL%ssH' % self.data_size
req = struct.pack(packstyle, *self.buf)
return req
if __name__ == '__main__':
A = AOdataPacket(1, 320, 0X0000000, [1] + [0] * 39)
print(A.value)
A.packBytes()
print(A.packBytes())