From bbc6b1d452884768bf480e481fb3756552ead2ff Mon Sep 17 00:00:00 2001 From: Haseeb Ehsan Date: Sat, 17 Feb 2018 12:32:49 +0500 Subject: [PATCH] Revert "keeping previous RF24 boost wrapper as it is" This reverts commit 2e29f9d0661218de6d159aef5645237b3e9af00e. --- pyRF24/crossunixccompiler.py | 38 ---- pyRF24/pyRF24.cpp | 328 ----------------------------------- pyRF24/setup.py | 48 ----- 3 files changed, 414 deletions(-) delete mode 100644 pyRF24/crossunixccompiler.py delete mode 100644 pyRF24/pyRF24.cpp delete mode 100644 pyRF24/setup.py diff --git a/pyRF24/crossunixccompiler.py b/pyRF24/crossunixccompiler.py deleted file mode 100644 index 0532c15e9..000000000 --- a/pyRF24/crossunixccompiler.py +++ /dev/null @@ -1,38 +0,0 @@ -import sys -from distutils import unixccompiler -from distutils import ccompiler - - -def register(): - sys.modules['distutils.crossunixccompiler'] = sys.modules[__name__] - ccompiler.compiler_class['crossunix'] = (__name__, - 'CrossUnixCCompiler', - 'UNIX-style compiler for cross compilation') - - -def try_remove_all(lst, starts): - lst[:] = [x for x in lst if not x.startswith(starts)] - - -class CrossUnixCCompiler(unixccompiler.UnixCCompiler): - def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): - try_remove_all(self.compiler_so, ('-m64', '-fstack-protector-strong', '-mtune=generic')) - try_remove_all(cc_args, '-I/usr') - try_remove_all(pp_opts, '-I/usr') - return unixccompiler.UnixCCompiler._compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts) - - def link(self, target_desc, objects, - output_filename, output_dir=None, libraries=None, - library_dirs=None, runtime_library_dirs=None, - export_symbols=None, debug=0, extra_preargs=None, - extra_postargs=None, build_temp=None, target_lang=None): - try_remove_all(self.library_dirs, ('/usr')) - return unixccompiler.UnixCCompiler.link(self, target_desc, objects, output_filename, output_dir, libraries, - library_dirs, runtime_library_dirs, export_symbols, debug, - extra_preargs, extra_postargs, build_temp, target_lang) - - def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs): - self.__class__ = unixccompiler.UnixCCompiler - ret = unixccompiler.UnixCCompiler._fix_lib_args(self, libraries, library_dirs, runtime_library_dirs) - self.__class__ = CrossUnixCCompiler - return ret diff --git a/pyRF24/pyRF24.cpp b/pyRF24/pyRF24.cpp deleted file mode 100644 index fa0322886..000000000 --- a/pyRF24/pyRF24.cpp +++ /dev/null @@ -1,328 +0,0 @@ -#include -#include - -namespace bp = boost::python; - -// ******************** explicit wrappers ************************** -// for methods which need it - mostly for buffer operations -// - -void throw_ba_exception(void) -{ - PyErr_SetString(PyExc_TypeError, "buf parameter must be bytes or bytearray"); - bp::throw_error_already_set(); -} - -char *get_bytes_or_bytearray_str(bp::object buf) -{ - PyObject *py_ba; - py_ba = buf.ptr(); - if (PyByteArray_Check(py_ba)) - return PyByteArray_AsString(py_ba); - else if (PyBytes_Check(py_ba)) - return PyBytes_AsString(py_ba); - else - throw_ba_exception(); - return NULL; -} - -int get_bytes_or_bytearray_ln(bp::object buf) -{ - PyObject *py_ba; - py_ba = buf.ptr(); - if (PyByteArray_Check(py_ba)) - return PyByteArray_Size(py_ba); - else if (PyBytes_Check(py_ba)) - return PyBytes_Size(py_ba); - else - throw_ba_exception(); - return 0; -} - -bp::object read_wrap(RF24& ref, int maxlen) -{ - char *buf = new char[maxlen+1]; - ref.read(buf, maxlen); - bp::object py_ba(bp::handle<>(PyByteArray_FromStringAndSize(buf, maxlen("RPiGPIOPin") - .value("RPI_GPIO_P1_03", RPI_GPIO_P1_03) - .value("RPI_GPIO_P1_05", RPI_GPIO_P1_05) - .value("RPI_GPIO_P1_07", RPI_GPIO_P1_07) - .value("RPI_GPIO_P1_08", RPI_GPIO_P1_08) - .value("RPI_GPIO_P1_10", RPI_GPIO_P1_10) - .value("RPI_GPIO_P1_11", RPI_GPIO_P1_11) - .value("RPI_GPIO_P1_12", RPI_GPIO_P1_12) - .value("RPI_GPIO_P1_13", RPI_GPIO_P1_13) - .value("RPI_GPIO_P1_15", RPI_GPIO_P1_15) - .value("RPI_GPIO_P1_16", RPI_GPIO_P1_16) - .value("RPI_GPIO_P1_18", RPI_GPIO_P1_18) - .value("RPI_GPIO_P1_19", RPI_GPIO_P1_19) - .value("RPI_GPIO_P1_21", RPI_GPIO_P1_21) - .value("RPI_GPIO_P1_22", RPI_GPIO_P1_22) - .value("RPI_GPIO_P1_23", RPI_GPIO_P1_23) - .value("RPI_GPIO_P1_24", RPI_GPIO_P1_24) - .value("RPI_GPIO_P1_26", RPI_GPIO_P1_26) - .value("RPI_V2_GPIO_P1_03", RPI_V2_GPIO_P1_03) - .value("RPI_V2_GPIO_P1_05", RPI_V2_GPIO_P1_05) - .value("RPI_V2_GPIO_P1_07", RPI_V2_GPIO_P1_07) - .value("RPI_V2_GPIO_P1_08", RPI_V2_GPIO_P1_08) - .value("RPI_V2_GPIO_P1_10", RPI_V2_GPIO_P1_10) - .value("RPI_V2_GPIO_P1_11", RPI_V2_GPIO_P1_11) - .value("RPI_V2_GPIO_P1_12", RPI_V2_GPIO_P1_12) - .value("RPI_V2_GPIO_P1_13", RPI_V2_GPIO_P1_13) - .value("RPI_V2_GPIO_P1_15", RPI_V2_GPIO_P1_15) - .value("RPI_V2_GPIO_P1_16", RPI_V2_GPIO_P1_16) - .value("RPI_V2_GPIO_P1_18", RPI_V2_GPIO_P1_18) - .value("RPI_V2_GPIO_P1_19", RPI_V2_GPIO_P1_19) - .value("RPI_V2_GPIO_P1_21", RPI_V2_GPIO_P1_21) - .value("RPI_V2_GPIO_P1_22", RPI_V2_GPIO_P1_22) - .value("RPI_V2_GPIO_P1_23", RPI_V2_GPIO_P1_23) - .value("RPI_V2_GPIO_P1_24", RPI_V2_GPIO_P1_24) - .value("RPI_V2_GPIO_P1_26", RPI_V2_GPIO_P1_26) - .value("RPI_V2_GPIO_P5_03", RPI_V2_GPIO_P5_03) - .value("RPI_V2_GPIO_P5_04", RPI_V2_GPIO_P5_04) - .value("RPI_V2_GPIO_P5_05", RPI_V2_GPIO_P5_05) - .value("RPI_V2_GPIO_P5_06", RPI_V2_GPIO_P5_06) - .value("RPI_BPLUS_GPIO_J8_03", RPI_BPLUS_GPIO_J8_03) - .value("RPI_BPLUS_GPIO_J8_05", RPI_BPLUS_GPIO_J8_05) - .value("RPI_BPLUS_GPIO_J8_07", RPI_BPLUS_GPIO_J8_07) - .value("RPI_BPLUS_GPIO_J8_08", RPI_BPLUS_GPIO_J8_08) - .value("RPI_BPLUS_GPIO_J8_10", RPI_BPLUS_GPIO_J8_10) - .value("RPI_BPLUS_GPIO_J8_11", RPI_BPLUS_GPIO_J8_11) - .value("RPI_BPLUS_GPIO_J8_12", RPI_BPLUS_GPIO_J8_12) - .value("RPI_BPLUS_GPIO_J8_13", RPI_BPLUS_GPIO_J8_13) - .value("RPI_BPLUS_GPIO_J8_15", RPI_BPLUS_GPIO_J8_15) - .value("RPI_BPLUS_GPIO_J8_16", RPI_BPLUS_GPIO_J8_16) - .value("RPI_BPLUS_GPIO_J8_18", RPI_BPLUS_GPIO_J8_18) - .value("RPI_BPLUS_GPIO_J8_19", RPI_BPLUS_GPIO_J8_19) - .value("RPI_BPLUS_GPIO_J8_21", RPI_BPLUS_GPIO_J8_21) - .value("RPI_BPLUS_GPIO_J8_22", RPI_BPLUS_GPIO_J8_22) - .value("RPI_BPLUS_GPIO_J8_23", RPI_BPLUS_GPIO_J8_23) - .value("RPI_BPLUS_GPIO_J8_24", RPI_BPLUS_GPIO_J8_24) - .value("RPI_BPLUS_GPIO_J8_26", RPI_BPLUS_GPIO_J8_26) - .value("RPI_BPLUS_GPIO_J8_29", RPI_BPLUS_GPIO_J8_29) - .value("RPI_BPLUS_GPIO_J8_31", RPI_BPLUS_GPIO_J8_31) - .value("RPI_BPLUS_GPIO_J8_32", RPI_BPLUS_GPIO_J8_32) - .value("RPI_BPLUS_GPIO_J8_33", RPI_BPLUS_GPIO_J8_33) - .value("RPI_BPLUS_GPIO_J8_35", RPI_BPLUS_GPIO_J8_35) - .value("RPI_BPLUS_GPIO_J8_36", RPI_BPLUS_GPIO_J8_36) - .value("RPI_BPLUS_GPIO_J8_37", RPI_BPLUS_GPIO_J8_37) - .value("RPI_BPLUS_GPIO_J8_38", RPI_BPLUS_GPIO_J8_38) - .value("RPI_BPLUS_GPIO_J8_40", RPI_BPLUS_GPIO_J8_40) - .export_values() - ; - - bp::enum_< bcm2835SPIClockDivider>("bcm2835SPIClockDivider") - .value("BCM2835_SPI_CLOCK_DIVIDER_65536", BCM2835_SPI_CLOCK_DIVIDER_65536) - .value("BCM2835_SPI_CLOCK_DIVIDER_32768", BCM2835_SPI_CLOCK_DIVIDER_32768) - .value("BCM2835_SPI_CLOCK_DIVIDER_16384", BCM2835_SPI_CLOCK_DIVIDER_16384) - .value("BCM2835_SPI_CLOCK_DIVIDER_8192", BCM2835_SPI_CLOCK_DIVIDER_8192) - .value("BCM2835_SPI_CLOCK_DIVIDER_4096", BCM2835_SPI_CLOCK_DIVIDER_4096) - .value("BCM2835_SPI_CLOCK_DIVIDER_2048", BCM2835_SPI_CLOCK_DIVIDER_2048) - .value("BCM2835_SPI_CLOCK_DIVIDER_1024", BCM2835_SPI_CLOCK_DIVIDER_1024) - .value("BCM2835_SPI_CLOCK_DIVIDER_512", BCM2835_SPI_CLOCK_DIVIDER_512) - .value("BCM2835_SPI_CLOCK_DIVIDER_256", BCM2835_SPI_CLOCK_DIVIDER_256) - .value("BCM2835_SPI_CLOCK_DIVIDER_128", BCM2835_SPI_CLOCK_DIVIDER_128) - .value("BCM2835_SPI_CLOCK_DIVIDER_64", BCM2835_SPI_CLOCK_DIVIDER_64) - .value("BCM2835_SPI_CLOCK_DIVIDER_32", BCM2835_SPI_CLOCK_DIVIDER_32) - .value("BCM2835_SPI_CLOCK_DIVIDER_16", BCM2835_SPI_CLOCK_DIVIDER_16) - .value("BCM2835_SPI_CLOCK_DIVIDER_8", BCM2835_SPI_CLOCK_DIVIDER_8) - .value("BCM2835_SPI_CLOCK_DIVIDER_4", BCM2835_SPI_CLOCK_DIVIDER_4) - .value("BCM2835_SPI_CLOCK_DIVIDER_2", BCM2835_SPI_CLOCK_DIVIDER_2) - .value("BCM2835_SPI_CLOCK_DIVIDER_1", BCM2835_SPI_CLOCK_DIVIDER_1) - .export_values(); - - - bp::enum_< bcm2835SPIChipSelect>("bcm2835SPIChipSelect") - .value("BCM2835_SPI_CS0", BCM2835_SPI_CS0) - .value("BCM2835_SPI_CS1", BCM2835_SPI_CS1) - .value("BCM2835_SPI_CS2", BCM2835_SPI_CS2) - .value("BCM2835_SPI_CS_NONE", BCM2835_SPI_CS_NONE) - .export_values(); - -// exposing '#define's for SPI speed as this is needed for RF24 constructor - bp::scope().attr("BCM2835_SPI_SPEED_64MHZ") = BCM2835_SPI_SPEED_64MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_32MHZ") = BCM2835_SPI_SPEED_32MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_16MHZ") = BCM2835_SPI_SPEED_16MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_8MHZ") = BCM2835_SPI_SPEED_8MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_4MHZ") = BCM2835_SPI_SPEED_4MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_2MHZ") = BCM2835_SPI_SPEED_2MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_1MHZ") = BCM2835_SPI_SPEED_1MHZ; - bp::scope().attr("BCM2835_SPI_SPEED_512KHZ") = BCM2835_SPI_SPEED_512KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_256KHZ") = BCM2835_SPI_SPEED_256KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_128KHZ") = BCM2835_SPI_SPEED_128KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_64KHZ") = BCM2835_SPI_SPEED_64KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_32KHZ") = BCM2835_SPI_SPEED_32KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_16KHZ") = BCM2835_SPI_SPEED_16KHZ; - bp::scope().attr("BCM2835_SPI_SPEED_8KHZ") = BCM2835_SPI_SPEED_8KHZ; -#endif // BCM2835_H - - bp::enum_< rf24_crclength_e>("rf24_crclength_e") - .value("RF24_CRC_DISABLED", RF24_CRC_DISABLED) - .value("RF24_CRC_8", RF24_CRC_8) - .value("RF24_CRC_16", RF24_CRC_16) - .export_values() - ; - - bp::enum_< rf24_datarate_e>("rf24_datarate_e") - .value("RF24_1MBPS", RF24_1MBPS) - .value("RF24_2MBPS", RF24_2MBPS) - .value("RF24_250KBPS", RF24_250KBPS) - .export_values() - ; - - bp::enum_< rf24_pa_dbm_e>("rf24_pa_dbm_e") - .value("RF24_PA_MIN", RF24_PA_MIN) - .value("RF24_PA_LOW", RF24_PA_LOW) - .value("RF24_PA_HIGH", RF24_PA_HIGH) - .value("RF24_PA_MAX", RF24_PA_MAX) - .value("RF24_PA_ERROR", RF24_PA_ERROR) - .export_values() - ; - -// ******************** RF24 class ************************** -// - bp::class_< RF24 >( "RF24", bp::init< uint8_t, uint8_t >(( bp::arg("_cepin"), bp::arg("_cspin") )) ) - .def( bp::init< uint8_t, uint8_t, uint32_t >(( bp::arg("_cepin"), bp::arg("_cspin"), bp::arg("spispeed") )) ) - .def("available", (bool ( ::RF24::* )( ) )( &::RF24::available ) ) - .def("available_pipe", &available_wrap ) // needed to rename this method as python does not allow such overloading - .def("begin", &RF24::begin) - .def("closeReadingPipe", &RF24::closeReadingPipe) - .def("disableCRC", &RF24::disableCRC) - .def("enableAckPayload", &RF24::enableAckPayload) - .def("enableDynamicAck", &RF24::enableDynamicAck) - .def("enableDynamicPayloads", &RF24::enableDynamicPayloads) - .def("flush_tx", &RF24::flush_tx) - .def("getCRCLength", &RF24::getCRCLength) - .def("getDataRate", &RF24::getDataRate) - .def("getDynamicPayloadSize", &RF24::getDynamicPayloadSize) - .def("getPALevel", &RF24::getPALevel) - .def("isAckPayloadAvailable", &RF24::isAckPayloadAvailable) - .def("isPVariant", &RF24::isPVariant) - .def("isValid", &RF24::isValid) - .def("maskIRQ", &RF24::maskIRQ, ( bp::arg("tx_ok"), bp::arg("tx_fail"), bp::arg("rx_ready"))) - .def("openReadingPipe", &openReadingPipe_wrap, (bp::arg("number"), bp::arg("address"))) - .def("openReadingPipe", (void ( ::RF24::* )( ::uint8_t,::uint64_t ) )( &::RF24::openReadingPipe), (bp::arg("number"), bp::arg("address"))) - .def("openWritingPipe", &openWritingPipe_wrap, (bp::arg("address"))) - .def("openWritingPipe", (void ( ::RF24::* )( ::uint64_t ) )( &::RF24::openWritingPipe), ( bp::arg("address") ) ) - .def("powerDown", &RF24::powerDown) - .def("powerUp", &RF24::powerUp) - .def("printDetails", &RF24::printDetails) - .def("reUseTX", &RF24::reUseTX) - .def("read", &read_wrap, (bp::arg("maxlen"))) - .def("rxFifoFull", &RF24::rxFifoFull) - .def("setAddressWidth", &RF24::setAddressWidth) - .def("setAutoAck", (void ( ::RF24::* )( bool ) )( &::RF24::setAutoAck ), ( bp::arg("enable") ) ) - .def("setAutoAck", (void ( ::RF24::* )( ::uint8_t,bool ) )( &::RF24::setAutoAck ), ( bp::arg("pipe"), bp::arg("enable") ) ) - .def("setCRCLength", &RF24::setCRCLength, ( bp::arg("length") ) ) - .def("setChannel", &RF24::setChannel, ( bp::arg("channel") ) ) - .def("setDataRate", &RF24::setDataRate, ( bp::arg("speed") ) ) - .def("setPALevel", &RF24::setPALevel, ( bp::arg("level") ) ) - .def("setRetries", &RF24::setRetries , (bp::arg("delay"), bp::arg("count"))) - .def("startFastWrite", &startFastWrite_wrap1, ( bp::arg("buf"), bp::arg("len"), bp::arg("multicast") ) ) - .def("startFastWrite", &startFastWrite_wrap2, ( bp::arg("buf"), bp::arg("len"), bp::arg("multicast"), bp::arg("startTx") ) ) - .def("startListening", &RF24::startListening) - .def("startWrite", &startWrite_wrap, ( bp::arg("buf"), bp::arg("len"), bp::arg("multicast") ) ) - .def("stopListening", &RF24::stopListening) - .def("testCarrier", &RF24::testCarrier) - .def("testRPD", &RF24::testRPD) - .def("txStandBy", (bool ( ::RF24::* )( ::uint32_t,bool))(&RF24::txStandBy), txStandBy_wrap1( bp::args("timeout", "startTx") ) ) - .def("whatHappened", &whatHappened_wrap) - .def("write", &write_wrap1, ( bp::arg("buf") ) ) - .def("write", &write_wrap2, ( bp::arg("buf"), bp::arg("multicast") ) ) - .def("writeAckPayload", writeAckPayload_wrap, ( bp::arg("pipe"), bp::arg("buf") ) ) - .def("writeBlocking", &writeBlocking_wrap, ( bp::arg("buf"), bp::arg("timeout") ) ) - .def("writeFast", &writeFast_wrap1, ( bp::arg("buf") ) ) - .def("writeFast", &writeFast_wrap2, ( bp::arg("buf"), bp::arg("multicast") ) ) - .add_property("payloadSize", &RF24::getPayloadSize, &RF24::setPayloadSize) - .def_readwrite( "failureDetected", &RF24::failureDetected ); -} diff --git a/pyRF24/setup.py b/pyRF24/setup.py deleted file mode 100644 index f8ace892a..000000000 --- a/pyRF24/setup.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import setuptools -import crossunixccompiler - -version = '' - - -def process_configparams(): - global version - - with open('../Makefile.inc') as f: - config_lines = f.read().splitlines() - - cflags = os.getenv("CFLAGS", "") - for line in config_lines: - identifier, value = line.split('=', 1) - if identifier == "CPUFLAGS": - cflags += " " + value - elif identifier == "HEADER_DIR": - cflags += " -I" + os.path.dirname(value) - elif identifier == "LIB_DIR": - cflags += " -L" + value - elif identifier == "LIB_VERSION": - version = value - elif identifier in ("CC", "CXX"): - os.environ[identifier] = value - - os.environ["CFLAGS"] = cflags - - -if sys.version_info >= (3,): - BOOST_LIB = 'boost_python3' -else: - BOOST_LIB = 'boost_python' - -process_configparams() -crossunixccompiler.register() - -module_RF24 = setuptools.Extension('RF24', - libraries=['rf24', BOOST_LIB], - sources=['pyRF24.cpp']) - -setuptools.setup(name='RF24', - version=version, - ext_modules=[module_RF24])