#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # mon_cffi.py # # Copyright 2018 john@jcoppens.com # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # from cffi import FFI ffi = FFI() ffi.cdef(""" // declarations typedef unsigned int lsampl_t; struct comedi_t *comedi_open( const char *filename); int comedi_data_read( struct comedi_t *handler, unsigned int subdevice, unsigned int channel, unsigned int range, unsigned int aref, lsampl_t *data); """) C = ffi.verify(""" // passed to the real C compiler #include """, libraries=["/usr/lib/libcomedi.so"]) p = C.comedi_open(b"/dev/comedi0") print(C.comedi_data_read(p, 0, 0, 0, 0, None))