import socket import numpy as np import ctypes from ctypes import cdll import data_structures import threading import queue import os import mmap class DataRecorder: def __init__(self, host="192.168.2.128", port=1234, packet_size=4096): self.lib = cdll.LoadLibrary('../cpp/data_recorder.so') self.lib.DataRecorder_new.argtypes = [ctypes.c_int32] self.lib.DataRecorder_new.restype = ctypes.c_int64 self.lib.DataRecorder_get_recording_rate.argtypes = [ctypes.c_int64] self.lib.DataRecorder_get_recording_rate.restype = ctypes.c_float # self.lib.DataRecorder_get_current_recording_size.argtypes = [ctypes.c_int64] # self.lib.DataRecorder_get_current_recording_size.restype = ctypes.c_float self.lib.DataRecorder_start_recording.argtypes = [ctypes.c_int64, ctypes.c_char_p, ctypes.c_int64, ctypes.c_int32] self.lib.DataRecorder_start_recording.restype = ctypes.c_int32 self.lib.DataRecorder_stop_recording.argtypes = [ctypes.c_int64] self.lib.DataRecorder_stop_recording.restype = ctypes.c_int32 self.obj = self.lib.DataRecorder_new(port) def start_recording(self, filename, write_to_disk=False): filename = filename.encode('utf-8') filename = ctypes.c_char_p(filename) self.lib.DataRecorder_start_recording(self.obj, filename, -1, 1) def stop_recording(self): self.lib.DataRecorder_stop_recording(self.obj)