Exemplo n.º 1
0
    def assign(self, a_values: array):
        address, size = a_values.buffer_info()
        assert size >= 3, "Для корректной работы в импульсный фильтр нужно задать как минимум 3 значения!"

        pointer_to_double = ctypes.cast(address,
                                        ctypes.POINTER(ctypes.c_double))
        self.mxsrclib_dll.imp_filter_assign(pointer_to_double, size)
Exemplo n.º 2
0
    def coef_points(self, a_points: array):
        assert self.__created, "CorrectMap не подклюена!"

        address, size = a_points.buffer_info()
        pointer_to_double = ctypes.cast(address,
                                        ctypes.POINTER(ctypes.c_double))

        self.mxsrclib_dll.correct_map_set_coef_points(self.__handle,
                                                      pointer_to_double, size)
Exemplo n.º 3
0
def encode_py_array(data: array.array) -> bytes:
    typecode = data.typecode
    count = data.buffer_info()[1]
    byte_count = count * data.itemsize
    buffer = encode_string(typecode) + encode_int(byte_count) + data.tobytes()
    return buffer
Exemplo n.º 4
0
 def from_array(self, param: array):
     if param.typecode != 'd':
         raise TypeError("Must be an array of doubles")
     ptr, _ = param.buffer_info()
     return ctypes.cast(ptr,
                        ctypes.POINTER(ctypes.c_double))  # type: ignore