klipper/klippy/sharedlib.py

44 lines
1.0 KiB
Python
Raw Permalink Normal View History

import sys, os, gc, optparse, logging, time
from cffi import FFI
import datetime, platform
SCREEN_PATH="/home/pi/3dscreen"
ffi = FFI()
lib = None
def load():
global lib
ffi.cdef("""
char* Klippy_Get_Autosave_Filename();
char* Klippy_Autosave_Read();
bool Klippy_Autosave_Write(char*);
void free(void*);
""")
arch = platform.machine()
if arch == "aarch64":
lib = ffi.dlopen(SCREEN_PATH+"/lib/lib3dscreen-arm64.so")
elif arch == "armv7l":
lib = ffi.dlopen(SCREEN_PATH+"/lib/lib3dscreen.so")
else:
lib = ffi.dlopen("/lib/lib3dscreen-host.so")
def Klippy_Get_Autosave_Filename():
res = lib.Klippy_Get_Autosave_Filename()
s = ffi.string(res).decode("utf-8")
lib.free(res)
return s
def Klippy_Autosave_Read():
res = lib.Klippy_Autosave_Read()
s = ffi.string(res).decode("utf-8")
lib.free(res)
return s
def Klippy_Autosave_Write(data):
b = data.encode('utf-8')
res = lib.Klippy_Autosave_Write(b)
return res