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.
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
import datetime
|
|
import os
|
|
import struct
|
|
import threading
|
|
from pathlib import Path
|
|
|
|
|
|
class storeData(object):
|
|
|
|
def __init__(self):
|
|
self.path = None
|
|
self.fd = None
|
|
self.lock = threading.RLock()
|
|
|
|
def setup(self, path):
|
|
with self.lock:
|
|
self.path = path
|
|
self.__create__data()
|
|
|
|
def __create__data(self):
|
|
st = str(datetime.datetime.now().date()) + '.dat'
|
|
self.fd = os.open(
|
|
self.path.joinpath(st).as_posix(),
|
|
flags=os.O_CREAT | os.O_RDWR | os.O_APPEND
|
|
)
|
|
|
|
def write(self, time, datapacket):
|
|
os.write(self.fd, struct.pack('d', time))
|
|
os.write(self.fd, b'\n')
|
|
os.write(self.fd, datapacket)
|
|
os.write(self.fd, b'\n')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
lis = []
|
|
a = None
|
|
for i in [[1, ] * 8, [2] * 8, [3] * 8, [4] * 8]:
|
|
a = len(bytearray(i))
|
|
lis.append(struct.pack('%ds' % a, bytearray(i)))
|
|
data = struct.pack('%ds' % a * len(lis), *lis)
|
|
a = storeData()
|
|
path = Path(__file__).absolute().parent.parent.joinpath('static')
|
|
a.setup(path)
|