From a7df53fbfe79e579b167f613635914246078dfb0 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 14 Jan 2022 18:15:56 +0300 Subject: [PATCH] platformio_pre.py --- include_pip.py | 3 - library.json | 10 +-- libs/compress/picompress.cpp | 2 +- libs/console/piscreen.cpp | 4 +- libs/console/piterminal.cpp | 4 +- libs/main/containers/picontainers.h | 4 +- libs/main/core/pibase.h | 3 +- libs/main/core/pibytearray.h | 2 +- libs/main/core/piincludes.h | 3 - libs/main/core/piinit.cpp | 71 ++++++++++---------- libs/main/core/piobject.cpp | 8 +-- libs/main/core/piobject.h | 6 +- libs/main/core/pitime.cpp | 15 +++-- libs/main/core/pivariantsimple.h | 6 +- libs/main/io_devices/pibinarylog.cpp | 2 +- libs/main/io_devices/pican.cpp | 2 +- libs/main/io_devices/piethernet.cpp | 22 +++--- libs/main/io_devices/pifile.cpp | 2 +- libs/main/io_devices/piiodevice.cpp | 6 +- libs/main/io_devices/piserial.cpp | 2 +- libs/main/io_devices/pispi.cpp | 2 +- libs/main/io_utils/pibasetransfer.cpp | 2 +- libs/main/io_utils/pipacketextractor.cpp | 2 +- libs/main/piplatform.h | 5 +- libs/main/system/pilibrary.cpp | 4 +- libs/main/system/pilibrary.h | 4 +- libs/main/system/piplugin.cpp | 4 +- libs/main/system/piplugin.h | 4 +- libs/main/system/piprocess.cpp | 4 +- libs/main/system/piprocess.h | 4 +- libs/main/system/pisystemmonitor.cpp | 12 ++-- libs/main/system/pisystemmonitor.h | 4 +- libs/main/system/pisystemtests.cpp | 4 +- platformio_pre.py | 85 ++++++++++++++++++++++++ 34 files changed, 200 insertions(+), 117 deletions(-) delete mode 100644 include_pip.py create mode 100644 platformio_pre.py diff --git a/include_pip.py b/include_pip.py deleted file mode 100644 index c9fb712d..00000000 --- a/include_pip.py +++ /dev/null @@ -1,3 +0,0 @@ -Import("env") - -env.Append(CCFLAGS=["-Ilib/pip/libs/main/core", "-Ilib/pip/libs/main/containers", "-Ilib/pip/libs/main/introspection"]) diff --git a/library.json b/library.json index c5cd63bf..39351b7f 100644 --- a/library.json +++ b/library.json @@ -13,17 +13,13 @@ "dependencies": {"mike-matera/ArduinoSTL": "^1.3.2"}, "build": { - "srcDir": "libs/main", "srcFilter": [ - "+", - "+", - "+", - "+" + "+", + "+" ], "flags": [ - "-std=c++11", "-DPIP_MICRO" ], - "extraScript": "include_pip.py" + "extraScript": "platformio_pre.py" } } \ No newline at end of file diff --git a/libs/compress/picompress.cpp b/libs/compress/picompress.cpp index b9d73a51..6fc21a30 100644 --- a/libs/compress/picompress.cpp +++ b/libs/compress/picompress.cpp @@ -19,7 +19,7 @@ #include "picompress.h" #ifdef PIP_COMPRESS -# ifdef FREERTOS +# ifdef ESP_PLATFORM # include "esp32/rom/miniz.h" # define compress2 mz_compress2 # define Z_OK MZ_OK diff --git a/libs/console/piscreen.cpp b/libs/console/piscreen.cpp index 9dbb9c70..232ad3e5 100644 --- a/libs/console/piscreen.cpp +++ b/libs/console/piscreen.cpp @@ -63,7 +63,7 @@ PIScreen::SystemConsole::SystemConsole() { GetConsoleMode(PRIVATE->hOut, &PRIVATE->smode); GetConsoleCursorInfo(PRIVATE->hOut, &PRIVATE->curinfo); #else -# ifdef FREERTOS +# ifdef MICRO_PIP w = 80; h = 24; # else @@ -115,7 +115,7 @@ void PIScreen::SystemConsole::prepare() { w = PRIVATE->csbi.srWindow.Right - PRIVATE->csbi.srWindow.Left + 1; h = PRIVATE->csbi.srWindow.Bottom - PRIVATE->csbi.srWindow.Top + 1; #else -# ifndef FREERTOS +# ifndef MICRO_PIP winsize ws; ioctl(0, TIOCGWINSZ, &ws); w = ws.ws_col; diff --git a/libs/console/piterminal.cpp b/libs/console/piterminal.cpp index 75163b8e..d63fca89 100644 --- a/libs/console/piterminal.cpp +++ b/libs/console/piterminal.cpp @@ -19,7 +19,7 @@ #include "piincludes_p.h" #include "piterminal.h" #include "pisharedmemory.h" -#ifndef FREERTOS +#ifndef MICRO_PIP #ifdef WINDOWS # include # include @@ -918,4 +918,4 @@ bool PITerminal::resize(int cols, int rows) { return ret; } -#endif // FREERTOS +#endif // MICRO_PIP diff --git a/libs/main/containers/picontainers.h b/libs/main/containers/picontainers.h index 5c67211b..f0aa9921 100644 --- a/libs/main/containers/picontainers.h +++ b/libs/main/containers/picontainers.h @@ -28,13 +28,13 @@ #include "picout.h" #include "piintrospection_containers.h" -#ifndef PIP_MICRO +//#ifndef PIP_MICRO # ifdef MAC_OS # include # else # include # endif -#endif +//#endif #include #include #include diff --git a/libs/main/core/pibase.h b/libs/main/core/pibase.h index bc26962e..2e6f01b8 100644 --- a/libs/main/core/pibase.h +++ b/libs/main/core/pibase.h @@ -124,6 +124,7 @@ #include #include #include +#include #ifdef WINDOWS # ifdef CC_VC @@ -277,7 +278,7 @@ } _PIP_ADD_COUNTER(_pip_initializer_); -#ifdef FREERTOS +#ifdef MICRO_PIP # define PIP_MIN_MSLEEP 10. #else # define PIP_MIN_MSLEEP 1. diff --git a/libs/main/core/pibytearray.h b/libs/main/core/pibytearray.h index 40ed546c..9887337a 100644 --- a/libs/main/core/pibytearray.h +++ b/libs/main/core/pibytearray.h @@ -29,7 +29,7 @@ #include "pivector2d.h" #include -#ifdef FREERTOS +#ifdef MICRO_PIP # define _TYPENAME_(T) "?" #else # define _TYPENAME_(T) typeid(T).name() diff --git a/libs/main/core/piincludes.h b/libs/main/core/piincludes.h index c9b44e2a..41748b2c 100644 --- a/libs/main/core/piincludes.h +++ b/libs/main/core/piincludes.h @@ -26,9 +26,6 @@ #ifdef PIP_STD_IOSTREAM # include #endif -#ifndef PIP_MICRO -# include -#endif class PIMutex; class PIMutexLocker; diff --git a/libs/main/core/piinit.cpp b/libs/main/core/piinit.cpp index 38e64be8..2a221934 100644 --- a/libs/main/core/piinit.cpp +++ b/libs/main/core/piinit.cpp @@ -25,7 +25,7 @@ #include "pisysteminfo.h" #include "piresourcesstorage.h" #include "pidir.h" -#ifndef FREERTOS +#ifndef MICRO_PIP # include "piprocess.h" #endif #ifdef ESP_PLATFORM @@ -49,7 +49,7 @@ void __PISetTimerResolution() { } #else # include -# ifndef FREERTOS +# ifndef MICRO_PIP # include # endif # include @@ -84,7 +84,7 @@ ULONG prev_res; bool delete_locs; PRIVATE_DEFINITION_END(PIInit) -#ifndef FREERTOS +#ifndef MICRO_PIP void __sighandler__(PISignals::Signal s) { //piCout << Hex << int(s); if (s == PISignals::StopTTYInput || s == PISignals::StopTTYOutput) @@ -106,12 +106,12 @@ PIInit::PIInit() { file_charset = 0; PISystemInfo * sinfo = PISystemInfo::instance(); sinfo->execDateTime = PIDateTime::current(); +#ifndef MICRO_PIP setFileCharset("UTF-8"); -#ifndef FREERTOS -#ifndef ANDROID +# ifndef ANDROID PISignals::setSlot(__sighandler__); PISignals::grabSignals(PISignals::UserDefined1); -# ifndef WINDOWS +# ifndef WINDOWS PISignals::grabSignals(PISignals::StopTTYInput | PISignals::StopTTYOutput); sigset_t ss; sigemptyset(&ss); @@ -128,7 +128,7 @@ PIInit::PIInit() { break; } } -# else +# else //WINDOWS // OS version DWORD dwVersion = GetVersion(); DWORD dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); @@ -154,33 +154,33 @@ PIInit::PIInit() { setTimerResolutionAddr = (PINtSetTimerResolution)GetProcAddress(PRIVATE->ntlib, "NtSetTimerResolution"); __PISetTimerResolution(); } -# endif -# ifdef HAS_LOCALE +# endif //WINDOWS +# ifdef HAS_LOCALE //cout << "has locale" << endl; if (currentLocale_t != 0) { freelocale(currentLocale_t); currentLocale_t = 0; } currentLocale_t = newlocale(LC_ALL, setlocale(LC_ALL, ""), 0); -# else +# else //HAS_LOCALE setlocale(LC_ALL, ""); setlocale(LC_NUMERIC, "C"); -# endif -#else +# endif //HAS_LOCALE +# else //ANDROID struct sigaction actions; memset(&actions, 0, sizeof(actions)); sigemptyset(&actions.sa_mask); actions.sa_flags = 0; actions.sa_handler = android_thread_exit_handler; sigaction(SIGTERM, &actions, 0); -#endif +# endif //ANDROID PRIVATE->delete_locs = false; __syslocname__ = __sysoemname__ = 0; __utf8name__ = const_cast("UTF-8"); -#ifdef PIP_ICU +# ifdef PIP_ICU UErrorCode e((UErrorCode)0); u_init(&e); -# ifdef WINDOWS +# ifdef WINDOWS PRIVATE->delete_locs = true; CPINFOEX cpinfo; int l = 0; @@ -192,30 +192,30 @@ PIInit::PIInit() { memset(__sysoemname__, 0, 256); memcpy(__sysoemname__, "ibm-", 4); memcpy(&(__sysoemname__[4]), cpinfo.CodePageName, l); -# else +# else /*PIString en(getenv("LANG")); if (!en.isEmpty()) en = en.mid(en.find(".") + 1); PIByteArray enba = en.toByteArray(); memcpy(__syslocname__, enba.data(), enba.size_s());*/ -# endif +# endif //piCout << __syslocname__; //piCout << __sysoemname__; -#else -# ifdef WINDOWS +# else //PIP_ICU +# ifdef WINDOWS __syslocname__ = (char *)CP_ACP; __sysoemname__ = (char *)CP_OEMCP; __utf8name__ = (char *)CP_UTF8; -# endif -#endif -#ifdef MAC_OS +# endif +# endif //PIP_ICU +# ifdef MAC_OS host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &__pi_mac_clock); -#endif +# endif char cbuff[1024]; memset(cbuff, 0, 1024); if (gethostname(cbuff, 1023) == 0) sinfo->hostname = cbuff; -#ifdef WINDOWS +# ifdef WINDOWS SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); sinfo->processorsCount = sysinfo.dwNumberOfProcessors; @@ -236,7 +236,7 @@ PIInit::PIInit() { ulong unlen = 1023; if (GetUserName(cbuff, &unlen) != 0) sinfo->user = cbuff; -#else +# else //WINDOWS sinfo->processorsCount = piMaxi(1, int(sysconf(_SC_NPROCESSORS_ONLN))); passwd * ps = getpwuid(getuid()); if (ps) @@ -252,8 +252,9 @@ PIInit::PIInit() { sinfo->OS_version = uns.release; sinfo->architecture = uns.machine; } -# endif -#endif +# endif //WINDOWS +#endif // MICRO_PIP + #ifdef ESP_PLATFORM esp_chip_info_t chip_info; esp_chip_info(&chip_info); @@ -265,19 +266,21 @@ PIInit::PIInit() { sinfo->OS_name = #ifdef WINDOWS PIStringAscii("Windows"); -#elif defined(QNX) +# elif defined(QNX) PIStringAscii("QNX"); -#elif defined(MAC_OS) +# elif defined(MAC_OS) PIStringAscii("MacOS"); -#elif defined(ANDROID) +# elif defined(ANDROID) PIStringAscii("Android"); -#elif defined(FREE_BSD) +# elif defined(FREE_BSD) PIStringAscii("FreeBSD"); -#elif defined(FREERTOS) +# elif defined(FREERTOS) PIStringAscii("FreeRTOS"); -#else +# elif defined(MICRO_PIP) + PIStringAscii("MicroPIP"); +# else uns.sysname; -#endif +# endif } diff --git a/libs/main/core/piobject.cpp b/libs/main/core/piobject.cpp index 7a7ae457..1ec4714e 100644 --- a/libs/main/core/piobject.cpp +++ b/libs/main/core/piobject.cpp @@ -21,7 +21,7 @@ #include "pisysteminfo.h" #include "pithread.h" #include "piconditionvar.h" -#ifndef FREERTOS +#ifndef MICRO_PIP # include "pifile.h" #endif @@ -355,7 +355,7 @@ void PIObject::piDisconnect(PIObject * src, const PIString & sig) { src->connections.remove(i); i--; if (dest) { -#if !defined(ANDROID) && !defined(MAC_OS) && !defined(FREERTOS) +#if !defined(ANDROID) && !defined(MAC_OS) && !defined(MICRO_PIP) PIMutexLocker _mld(dest->mutex_connect, src != dest); #endif dest->updateConnectors(); @@ -373,7 +373,7 @@ void PIObject::piDisconnectAll() { // piCout << "disconnect"<< src << o; if (!o || (o == this)) continue; if (!o->isPIObject()) continue; -#if !defined(ANDROID) && !defined(MAC_OS) && !defined(FREERTOS) +#if !defined(ANDROID) && !defined(MAC_OS) && !defined(MICRO_PIP) PIMutexLocker _mld(o->mutex_connect, this != o); #endif PIVector & oc(o->connections); @@ -615,7 +615,7 @@ void dumpApplication() { } -#ifndef FREERTOS +#ifndef MICRO_PIP bool dumpApplicationToFile(const PIString & path) { PIFile f(path + "_tmp"); f.setName("__S__DumpFile"); diff --git a/libs/main/core/piobject.h b/libs/main/core/piobject.h index 5d11c0ed..b7955006 100644 --- a/libs/main/core/piobject.h +++ b/libs/main/core/piobject.h @@ -192,9 +192,9 @@ public: static PIObject::Connection piConnect(PIObject * src, const PIString & sig, PIObject * dest_o, void * dest, void * ev_h, void * e_h, int args, const char * loc); static PIObject::Connection piConnectU(PIObject * src, const PIString & sig, PIObject * dest_o, void * dest, const PIString & hname, const char * loc, PIObject * performer = 0); static PIObject::Connection piConnectLS(PIObject * src, const PIString & sig, std::function * f, const char * loc); - template - static std::function * __newFunctor(void(*stat_handler)(void*,TYPES...), INPUT functor) { - return (std::function*)(new std::function(functor)); + template + static std::function * __newFunctor(void(*stat_handler)(void*,PITYPES...), PIINPUT functor) { + return (std::function*)(new std::function(functor)); } diff --git a/libs/main/core/pitime.cpp b/libs/main/core/pitime.cpp index f19e038f..605c4707 100644 --- a/libs/main/core/pitime.cpp +++ b/libs/main/core/pitime.cpp @@ -35,6 +35,9 @@ # include "freertos/FreeRTOS.h" # include "freertos/task.h" #endif +#ifdef MICRO_PIP +# include +#endif /*! \class PISystemTime * @brief System time @@ -252,12 +255,10 @@ PISystemTime PISystemTime::current(bool precise_but_not_system) { ullong lt = ullong(sft.dwHighDateTime) * 0x100000000U + ullong(sft.dwLowDateTime); return PISystemTime(lt / 10000000U, (lt % 10000000U) * 100U); } -#else -# ifdef MAC_OS +#elif defined(MAC_OS) mach_timespec_t t_cur; clock_get_time(__pi_mac_clock, &t_cur); -# else -# ifdef FREERTOS +#elif defined(MICRO_PIP) timespec t_cur; timeval tv; tv.tv_sec = 0; @@ -265,11 +266,11 @@ PISystemTime PISystemTime::current(bool precise_but_not_system) { gettimeofday(&tv, NULL); t_cur.tv_sec = tv.tv_sec; t_cur.tv_nsec = tv.tv_usec * 1000; -# else +#else timespec t_cur; clock_gettime(precise_but_not_system ? CLOCK_MONOTONIC : 0, &t_cur); -# endif -# endif +#endif +#ifndef WINDOWS return PISystemTime(t_cur.tv_sec, t_cur.tv_nsec); #endif } diff --git a/libs/main/core/pivariantsimple.h b/libs/main/core/pivariantsimple.h index 152c3782..56afc755 100644 --- a/libs/main/core/pivariantsimple.h +++ b/libs/main/core/pivariantsimple.h @@ -27,7 +27,7 @@ #include "pistring.h" #include -#ifdef PIP_FREERTOS +#ifdef MICRO_PIP #include "pivariant.h" #endif @@ -48,10 +48,10 @@ template class __VariantFunctions__: public __VariantFunctionsBase__ { public: __VariantFunctionsBase__ * instance() final {static __VariantFunctions__ ret; return &ret;} -#ifdef PIP_FREERTOS +#ifdef MICRO_PIP PIString typeName() const final {static PIString ret(PIVariant(T()).typeName()); return ret;} #else - PIString typeName() const final {static PIString ret(typeid(T).name()); return ret;} + PIString typeName() const final {static PIString ret(_TYPENAME_(T)); return ret;} #endif uint hash() const final {static uint ret = typeName().hash(); return ret;} void newT(void *& ptr, const void * value) final {ptr = (void*)(new T(*(const T*)value));} diff --git a/libs/main/io_devices/pibinarylog.cpp b/libs/main/io_devices/pibinarylog.cpp index 9358664a..bc593ed9 100644 --- a/libs/main/io_devices/pibinarylog.cpp +++ b/libs/main/io_devices/pibinarylog.cpp @@ -53,7 +53,7 @@ static const uchar binlog_sig[] = {'B','I','N','L','O','G'}; REGISTER_DEVICE(PIBinaryLog) PIBinaryLog::PIBinaryLog() { -#ifdef FREERTOS +#ifdef MICRO_PIP setThreadedReadBufferSize(512); #else setThreadedReadBufferSize(65536); diff --git a/libs/main/io_devices/pican.cpp b/libs/main/io_devices/pican.cpp index 38f6ae00..b4d1f827 100644 --- a/libs/main/io_devices/pican.cpp +++ b/libs/main/io_devices/pican.cpp @@ -19,7 +19,7 @@ #include "pican.h" #include "pipropertystorage.h" #include "piincludes_p.h" -#if !defined(WINDOWS) && !defined(MAC_OS) && !defined(FREERTOS) +#if !defined(WINDOWS) && !defined(MAC_OS) && !defined(MICRO_PIP) # define PIP_CAN #endif #ifdef PIP_CAN diff --git a/libs/main/io_devices/piethernet.cpp b/libs/main/io_devices/piethernet.cpp index 7f2e797e..dd9f5b25 100644 --- a/libs/main/io_devices/piethernet.cpp +++ b/libs/main/io_devices/piethernet.cpp @@ -58,10 +58,10 @@ # include # include # include -# if !defined(ANDROID) && !defined(FREERTOS) +# if !defined(ANDROID) && !defined(LWIP) # include # endif -# ifdef FREERTOS +# ifdef LWIP # include # endif # endif @@ -260,7 +260,7 @@ void PIEthernet::construct() { setMulticastTTL(1); server_thread_.setData(this); server_thread_.setName("__S__server_thread"); -#ifdef FREERTOS +#ifdef MICRO_PIP setThreadedReadBufferSize(512); #else setThreadedReadBufferSize(65536); @@ -473,7 +473,7 @@ bool PIEthernet::joinMulticastGroup(const PIString & group) { } PIFlags params = parameters(); addr_r.set(path()); -#ifndef FREERTOS +#ifndef LWIP struct ip_mreqn mreq; #else struct ip_mreq mreq; @@ -486,13 +486,13 @@ bool PIEthernet::joinMulticastGroup(const PIString & group) { if (ci != 0) mreq.imr_ifindex = ci->index;*/ #endif if (params[PIEthernet::Broadcast]) -#ifndef FREERTOS +#ifndef LWIP mreq.imr_address.s_addr = INADDR_ANY; #else mreq.imr_interface.s_addr = INADDR_ANY; #endif else -#ifndef FREERTOS +#ifndef LWIP mreq.imr_address.s_addr = addr_r.ip(); #else mreq.imr_interface.s_addr = addr_r.ip(); @@ -520,20 +520,20 @@ bool PIEthernet::leaveMulticastGroup(const PIString & group) { } PIFlags params = parameters(); addr_r.set(path()); -#ifndef FREERTOS +#ifndef LWIP struct ip_mreqn mreq; #else struct ip_mreq mreq; #endif memset(&mreq, 0, sizeof(mreq)); if (params[PIEthernet::Broadcast]) -#ifndef FREERTOS +#ifndef LWIP mreq.imr_address.s_addr = INADDR_ANY; #else mreq.imr_interface.s_addr = INADDR_ANY; #endif else -#ifndef FREERTOS +#ifndef LWIP mreq.imr_address.s_addr = addr_r.ip(); #else mreq.imr_interface.s_addr = addr_r.ip(); @@ -1053,7 +1053,7 @@ PIEthernet::InterfaceList PIEthernet::interfaces() { if (pAdapterInfo) HeapFree(GetProcessHeap(), 0, (pAdapterInfo)); #else -#ifdef FREERTOS +#ifdef MICRO_PIP #else # ifdef ANDROID struct ifconf ifc; @@ -1165,7 +1165,7 @@ PIEthernet::InterfaceList PIEthernet::interfaces() { PIEthernet::Address PIEthernet::interfaceAddress(const PIString & interface_) { -#if defined(WINDOWS) || defined(FREERTOS) +#if defined(WINDOWS) || defined(MICRO_PIP) piCout << "[PIEthernet] Not implemented, use \"PIEthernet::allAddresses\" or \"PIEthernet::interfaces\" instead"; return Address(); #else diff --git a/libs/main/io_devices/pifile.cpp b/libs/main/io_devices/pifile.cpp index 4abd37b6..813818b1 100644 --- a/libs/main/io_devices/pifile.cpp +++ b/libs/main/io_devices/pifile.cpp @@ -711,7 +711,7 @@ PIFile::FileInfo PIFile::fileInfo(const PIString & path) { ret.time_modification = PIDateTime::fromSystemTime(PISystemTime(fs.MTIME.tv_sec, fs.MTIME.tv_nsec)); # endif #endif -#ifndef FREERTOS +#ifndef MICRO_PIP ret.perm_user = FileInfo::Permissions((mode & S_IRUSR) == S_IRUSR, (mode & S_IWUSR) == S_IWUSR, (mode & S_IXUSR) == S_IXUSR); ret.perm_group = FileInfo::Permissions((mode & S_IRGRP) == S_IRGRP, (mode & S_IWGRP) == S_IWGRP, (mode & S_IXGRP) == S_IXGRP); ret.perm_other = FileInfo::Permissions((mode & S_IROTH) == S_IROTH, (mode & S_IWOTH) == S_IWOTH, (mode & S_IXOTH) == S_IXOTH); diff --git a/libs/main/io_devices/piiodevice.cpp b/libs/main/io_devices/piiodevice.cpp index 7e1c1863..c3e2cbc3 100644 --- a/libs/main/io_devices/piiodevice.cpp +++ b/libs/main/io_devices/piiodevice.cpp @@ -155,7 +155,7 @@ bool PIIODevice::setOption(PIIODevice::DeviceOption o, bool yes) { bool stopThread(PIThread * t, bool hard) { -#ifdef FREERTOS +#ifdef MICRO_PIP t->stop(true); #else if (hard) { @@ -222,7 +222,7 @@ void PIIODevice::_init() { setOptions(0); setReopenEnabled(true); setReopenTimeout(1000); -#ifdef FREERTOS +#ifdef MICRO_PIP threaded_read_buffer_size = 512; //setThreadedReadBufferSize(512); #else @@ -276,7 +276,7 @@ void PIIODevice::terminate() { thread_started_ = false; if (!init_) return; if (isRunning()) { -#ifdef FREERTOS +#ifdef MICRO_PIP stop(true); #else stop(); diff --git a/libs/main/io_devices/piserial.cpp b/libs/main/io_devices/piserial.cpp index 33484c1b..f8264da3 100644 --- a/libs/main/io_devices/piserial.cpp +++ b/libs/main/io_devices/piserial.cpp @@ -24,7 +24,7 @@ #include "pipropertystorage.h" #include -#if defined(FREERTOS) +#if defined(MICRO_PIP) # define PISERIAL_NO_PINS #endif #if defined(PISERIAL_NO_PINS) || defined(WINDOWS) diff --git a/libs/main/io_devices/pispi.cpp b/libs/main/io_devices/pispi.cpp index 80a1e5bc..4dd441e5 100644 --- a/libs/main/io_devices/pispi.cpp +++ b/libs/main/io_devices/pispi.cpp @@ -42,7 +42,7 @@ REGISTER_DEVICE(PISPI) PISPI::PISPI(const PIString & path, uint speed, PIIODevice::DeviceMode mode) : PIIODevice(path, mode) { -#ifdef FREERTOS +#ifdef MICRO_PIP setThreadedReadBufferSize(512); #else setThreadedReadBufferSize(1024); diff --git a/libs/main/io_utils/pibasetransfer.cpp b/libs/main/io_utils/pibasetransfer.cpp index 7f18c752..323b43b8 100644 --- a/libs/main/io_utils/pibasetransfer.cpp +++ b/libs/main/io_utils/pibasetransfer.cpp @@ -37,7 +37,7 @@ PIBaseTransfer::PIBaseTransfer(): crc(standardCRC_16()), diag(false) { diag.setName("PIBaseTransfer"); diag.start(50); packets_count = 10; -#ifdef FREERTOS +#ifdef MICRO_PIP setPacketSize(512); #else setPacketSize(4096); diff --git a/libs/main/io_utils/pipacketextractor.cpp b/libs/main/io_utils/pipacketextractor.cpp index e4812c9c..0a15880b 100644 --- a/libs/main/io_utils/pipacketextractor.cpp +++ b/libs/main/io_utils/pipacketextractor.cpp @@ -94,7 +94,7 @@ void PIPacketExtractor::construct() { ret_func_header = ret_func_footer = 0; setPayloadSize(0); setTimeout(100); -#ifdef FREERTOS +#ifdef MICRO_PIP setBufferSize(512); #else setBufferSize(65536); diff --git a/libs/main/piplatform.h b/libs/main/piplatform.h index 0c86dd68..548cbe29 100644 --- a/libs/main/piplatform.h +++ b/libs/main/piplatform.h @@ -51,13 +51,16 @@ #ifdef PIP_FREERTOS # define FREERTOS #endif +#if defined(FREERTOS) || defined(PLATFORMIO) +# define MICRO_PIP +#endif #ifndef WINDOWS # ifndef QNX # ifndef FREE_BSD # ifndef MAC_OS # ifndef ANDROID # ifndef BLACKBERRY -# ifndef FREERTOS +# ifndef MICRO_PIP # define LINUX # endif # endif diff --git a/libs/main/system/pilibrary.cpp b/libs/main/system/pilibrary.cpp index 955f3c55..e8afdc1d 100644 --- a/libs/main/system/pilibrary.cpp +++ b/libs/main/system/pilibrary.cpp @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "pilibrary.h" #include "piincludes_p.h" @@ -110,4 +110,4 @@ void PILibrary::getLastError() { #endif } -#endif // PIP_FREERTOS +#endif // MICRO_PIP diff --git a/libs/main/system/pilibrary.h b/libs/main/system/pilibrary.h index 27802d8b..e5ec0845 100644 --- a/libs/main/system/pilibrary.h +++ b/libs/main/system/pilibrary.h @@ -23,7 +23,7 @@ #ifndef PILIBRARY_H #define PILIBRARY_H -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "pistring.h" @@ -50,5 +50,5 @@ private: }; -#endif // PIP_FREERTOS +#endif // MICRO_PIP #endif // PILIBRARY_H diff --git a/libs/main/system/piplugin.cpp b/libs/main/system/piplugin.cpp index ac531aaa..beef10b7 100644 --- a/libs/main/system/piplugin.cpp +++ b/libs/main/system/piplugin.cpp @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "piplugin.h" #include "pifile.h" @@ -408,4 +408,4 @@ PIString PIPluginLoader::libExtension() { } -#endif // PIP_FREERTOS +#endif // MICRO_PIP diff --git a/libs/main/system/piplugin.h b/libs/main/system/piplugin.h index 58c8d203..0b240efb 100644 --- a/libs/main/system/piplugin.h +++ b/libs/main/system/piplugin.h @@ -23,7 +23,7 @@ #ifndef PIPLUGIN_H #define PIPLUGIN_H -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "pilibrary.h" #include "pistringlist.h" @@ -212,5 +212,5 @@ private: }; -#endif // PIP_FREERTOS +#endif // MICRO_PIP #endif // PIPLUGIN_H diff --git a/libs/main/system/piprocess.cpp b/libs/main/system/piprocess.cpp index 7158ddcd..b9dfc791 100644 --- a/libs/main/system/piprocess.cpp +++ b/libs/main/system/piprocess.cpp @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "piincludes_p.h" #include "piprocess.h" @@ -290,5 +290,5 @@ PIString PIProcess::getEnvironmentVariable(const PIString & variable) { return PIString(); } -#endif // PIP_FREERTOS +#endif // MICRO_PIP diff --git a/libs/main/system/piprocess.h b/libs/main/system/piprocess.h index 3240d0c7..3d60aeff 100644 --- a/libs/main/system/piprocess.h +++ b/libs/main/system/piprocess.h @@ -23,7 +23,7 @@ #ifndef PIPROCESS_H #define PIPROCESS_H -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP #include "pithread.h" #include "pifile.h" @@ -104,5 +104,5 @@ private: }; -#endif // PIP_FREERTOS +#endif // MICRO_PIP #endif // PIPROCESS_H diff --git a/libs/main/system/pisystemmonitor.cpp b/libs/main/system/pisystemmonitor.cpp index 4e33b848..cb1647b1 100644 --- a/libs/main/system/pisystemmonitor.cpp +++ b/libs/main/system/pisystemmonitor.cpp @@ -59,7 +59,7 @@ PISystemMonitor::ThreadStatsFixed::ThreadStatsFixed() { } -#ifndef FREERTOS +#ifndef MICRO_PIP PRIVATE_DEFINITION_START(PISystemMonitor) #ifndef WINDOWS # ifdef MAC_OS @@ -83,7 +83,7 @@ PRIVATE_DEFINITION_END(PISystemMonitor) PISystemMonitor::PISystemMonitor(): PIThread() { pID_ = cycle = 0; cpu_count = PISystemInfo::instance()->processorsCount; -#ifndef FREERTOS +#ifndef MICRO_PIP #ifndef WINDOWS # ifdef QNX page_size = 4096; @@ -104,7 +104,7 @@ PISystemMonitor::~PISystemMonitor() { } -#ifndef FREERTOS +#ifndef MICRO_PIP bool PISystemMonitor::startOnProcess(int pID, int interval_ms) { stop(); pID_ = pID; @@ -134,7 +134,7 @@ bool PISystemMonitor::startOnProcess(int pID, int interval_ms) { bool PISystemMonitor::startOnSelf(int interval_ms) { -#ifndef FREERTOS +#ifndef MICRO_PIP bool ret = startOnProcess(PIProcess::currentPID(), interval_ms); cycle = -1; #else @@ -196,7 +196,7 @@ void PISystemMonitor::run() { //piCout << tbid.keys().toType(); ProcessStats tstat; tstat.ID = pID_; -#ifdef FREERTOS +#ifdef MICRO_PIP piForeach (PIThread * t, tv) if (t->isPIObject()) gatherThread(t->tid()); @@ -357,7 +357,7 @@ void PISystemMonitor::run() { void PISystemMonitor::gatherThread(llong id) { PISystemMonitor::ThreadStats ts; ts.id = id; -#ifdef FREERTOS +#ifdef MICRO_PIP ts.name = tbid.value(id, ""); #else ts.name = tbid.value(id, ""); diff --git a/libs/main/system/pisystemmonitor.h b/libs/main/system/pisystemmonitor.h index dbae9e97..a4721e69 100644 --- a/libs/main/system/pisystemmonitor.h +++ b/libs/main/system/pisystemmonitor.h @@ -79,7 +79,7 @@ public: PIString name; }; -#ifndef FREERTOS +#ifndef MICRO_PIP bool startOnProcess(int pID, int interval_ms = 1000); #endif bool startOnSelf(int interval_ms = 1000); @@ -106,7 +106,7 @@ private: PIMap tbid; mutable PIMutex stat_mutex; int pID_, page_size, cpu_count, cycle; -#ifndef FREERTOS +#ifndef MICRO_PIP PRIVATE_DECLARATION(PIP_EXPORT) #endif diff --git a/libs/main/system/pisystemtests.cpp b/libs/main/system/pisystemtests.cpp index ee1b9797..cb9bc800 100644 --- a/libs/main/system/pisystemtests.cpp +++ b/libs/main/system/pisystemtests.cpp @@ -19,7 +19,7 @@ #include "pisystemtests.h" -#ifndef PIP_FREERTOS +#ifndef MICRO_PIP # include "piconfig.h" #endif @@ -35,7 +35,7 @@ namespace PISystemTests { PISystemTests::PISystemTestReader::PISystemTestReader() { -#if !defined(WINDOWS) && !defined(FREERTOS) +#if !defined(WINDOWS) && !defined(MICRO_PIP) PIConfig conf(PIStringAscii("/etc/pip.conf"), PIIODevice::ReadOnly); time_resolution_ns = conf.getValue(PIStringAscii("time_resolution_ns"), 1).toLong(); time_elapsed_ns = conf.getValue(PIStringAscii("time_elapsed_ns"), 0).toLong(); diff --git a/platformio_pre.py b/platformio_pre.py new file mode 100644 index 00000000..c9fe7da5 --- /dev/null +++ b/platformio_pre.py @@ -0,0 +1,85 @@ +import os +import glob +import shutil +import re + +# The list of items +files = glob.glob('libs/main/*/*.h', recursive=True) +files += glob.glob('libs/main/*.h', recursive=True) + +tdir = './include/' + +if os.path.exists(tdir): + shutil.rmtree(tdir) + +os.mkdir(tdir) + +for filename in files: + shutil.copy(filename, tdir) + +with open(tdir+'pip_defs.h', 'w') as f: + f.write('// This file was generated by PlatformIO, don`t edit it!') + +with open(tdir+'pip_export.h', 'w') as f: + f.write(''' +#ifndef PIP_EXPORT_H +#define PIP_EXPORT_H + +# define PIP_EXPORT +# define PIP_NO_EXPORT + + +#ifndef PIP_DEPRECATED +# define PIP_DEPRECATED __attribute__ ((__deprecated__)) +#endif + +#ifndef PIP_DEPRECATED_EXPORT +# define PIP_DEPRECATED_EXPORT PIP_EXPORT PIP_DEPRECATED +#endif + +#ifndef PIP_DEPRECATED_NO_EXPORT +# define PIP_DEPRECATED_NO_EXPORT PIP_NO_EXPORT PIP_DEPRECATED +#endif + +#endif /* PIP_EXPORT_H */ +''') + +version_h = ''' +#ifndef PIP_VERSION_H +#define PIP_VERSION_H + + +// Project + +#define PIP_VERSION_MAJOR ${VERSION_MAJOR} +#define PIP_VERSION_MINOR ${VERSION_MINOR} +#define PIP_VERSION_REVISION ${VERSION_REVISION} +#define PIP_VERSION_BUILD 0 +#define PIP_VERSION_SUFFIX \"${VERSION_SUFFIX}\" +#define PIP_VERSION_NAME \"${VERSION}\" +#define PIP_MAKE_VERSION(major, minor, revision) ((major << 16) | (minor << 8) | revision) +#define PIP_VERSION PIP_MAKE_VERSION(PIP_VERSION_MAJOR, PIP_VERSION_MINOR, PIP_VERSION_REVISION) + +#endif // PIP_VERSION_H +''' + +with open('CMakeLists.txt') as cm: + str = cm.read() + v_major = re.findall(r'pip_MAJOR\s+(\d+)\)', str) + v_minor = re.findall(r'pip_MINOR\s+(\d+)\)', str) + v_rev = re.findall(r'pip_REVISION\s+(\d+)\)', str) + v_suffix = re.findall(r'pip_SUFFIX\s+(\w+)\)', str) + ver = '' + ver = v_major[0]+'.'+v_minor[0]+'.'+v_rev[0] + version_h.replace('${VERSION_MAJOR}', v_major[0]) + version_h.replace('${VERSION_MINOR}', v_minor[0]) + version_h.replace('${VERSION_REVISION}', v_rev[0]) + if len(v_suffix): + ver += v_suffix[0] + version_h.replace('${VERSION_SUFFIX}', v_suffix[0]) + else: + version_h.replace('${VERSION_SUFFIX}', '') + print('PIP version = '+ver) + with open(tdir+'pip_version.h', 'w') as f: + f.write(version_h) +