Hi,
i ve tried this on a mangOH Red With Legato and wp7702 :
root@swi-mdm9x28-wp:~# legato version
18.09.0-1-g8350546a_05025499e71b1dbb905fd75d6f797c3a_modified
here it is the sample source code given by Sierra to manage RPI GPIO (available here too) :
#include "legato.h"
#include "interfaces.h"
static bool _led1_on = false;
static le_timer_Ref_t _led1_BlinkTimer = NULL;
static bool _led1_blinking = false;
static bool _led2_on = false;
static le_timer_Ref_t _led2_BlinkTimer = NULL;
static bool _led2_blinking = false;
//-------------------------------------------------------------------------------------------------
/**
* LED 1 state timer handler.
*/
//-------------------------------------------------------------------------------------------------
static void ToogleLed1
(
le_timer_Ref_t timer ///< Led state timer
)
{
if (!_led1_on)
{
LE_DEBUG("turn on LED");
rpi_gpio1_Activate();
_led1_on = true;
}
else
{
LE_DEBUG("turn off LED");
rpi_gpio1_Deactivate();
_led1_on = false;
}
}
//-------------------------------------------------------------------------------------------------
/**
* LED 2 state timer handler.
*/
//-------------------------------------------------------------------------------------------------
static void ToogleLed2
(
le_timer_Ref_t timer ///< Led state timer
)
{
if (!_led2_on)
{
LE_DEBUG("turn on LED");
rpi_gpio2_Activate();
_led2_on = true;
}
else
{
LE_DEBUG("turn off LED");
rpi_gpio2_Deactivate();
_led2_on = false;
}
}
//-------------------------------------------------------------------------------------------------
/**
* Generic Push button handler -> toggle LED1
*/
//-------------------------------------------------------------------------------------------------
static void GenericPushButtonHandler
(
bool state, ///< true if the button is pressed
void *ctx ///< context pointer - not used
)
{
LE_INFO("Generic Button State change %s", state?"TRUE":"FALSE");
_led1_blinking = !_led1_blinking;
if (_led1_blinking)
{
le_timer_Start(_led1_BlinkTimer);
}
else
{
le_timer_Stop(_led1_BlinkTimer);
}
}
//-------------------------------------------------------------------------------------------------
/**
* GPIO_EXP_RPI_3 Push button handler -> toggle LED2
*/
//-------------------------------------------------------------------------------------------------
static void PushButtonHandler
(
bool state, ///< true if the button is pressed
void *ctx ///< context pointer - not used
)
{
LE_INFO("RPI_GPIO_3 Button State change %s", state?"TRUE":"FALSE");
_led2_blinking = !_led2_blinking;
if (_led2_blinking)
{
le_timer_Start(_led2_BlinkTimer);
}
else
{
le_timer_Stop(_led2_BlinkTimer);
}
}
//-------------------------------------------------------------------------------------------------
/**
* Configure GPIOs
*/
//-------------------------------------------------------------------------------------------------
static void ConfigureGpios(void)
{
// Set LED 1 GPIO to output and initially turn the LED OFF
LE_FATAL_IF(
rpi_gpio1_SetPushPullOutput(RPI_GPIO1_ACTIVE_LOW, true) != LE_OK,
"Couldn't configure LED 1 GPIO as a push pull output");
rpi_gpio1_Deactivate();
_led1_on = false;
// Set LED 2 GPIO to output and initially turn the LED OFF
LE_FATAL_IF(
rpi_gpio2_SetPushPullOutput(RPI_GPIO2_ACTIVE_LOW, true) != LE_OK,
"Couldn't configure LED 1 GPIO as a push pull output");
rpi_gpio2_Deactivate();
_led2_on = false;
// Set the Generic push-button GPIO as input
LE_FATAL_IF(
mangoh_button_SetInput(MANGOH_BUTTON_ACTIVE_LOW) != LE_OK,
"Couldn't configure push button as input");
mangoh_button_AddChangeEventHandler(MANGOH_BUTTON_EDGE_RISING, GenericPushButtonHandler, NULL, 0);
// Set the RPI_EXP_3 GPIO as input, for push button
LE_FATAL_IF(
rpi_gpio3_SetInput(RPI_GPIO3_ACTIVE_LOW) != LE_OK,
"Couldn't configure RPI_GPIO_3 as push button");
rpi_gpio3_AddChangeEventHandler(RPI_GPIO3_EDGE_RISING, PushButtonHandler, NULL, 0);
}
COMPONENT_INIT
{
_led1_BlinkTimer = le_timer_Create("Led 1 Blink");
LE_ASSERT_OK(le_timer_SetRepeat(_led1_BlinkTimer, 0));
LE_ASSERT_OK(le_timer_SetMsInterval(_led1_BlinkTimer, 1000)); //blink every second
LE_ASSERT_OK(le_timer_SetHandler(_led1_BlinkTimer, ToogleLed1));
_led2_BlinkTimer = le_timer_Create("Led 2 Blink");
LE_ASSERT_OK(le_timer_SetRepeat(_led2_BlinkTimer, 0));
LE_ASSERT_OK(le_timer_SetMsInterval(_led2_BlinkTimer, 500)); //blink every 500ms
LE_ASSERT_OK(le_timer_SetHandler(_led2_BlinkTimer, ToogleLed2));
ConfigureGpios();
}
But it gets stucked:
root@swi-mdm9x28-wp:~# sdir list
BINDINGS
<root>.sdirTool -> <root>.sdirTool
<root>.LogClient -> <root>.LogClient
<root>.LogControl -> <root>.LogControl
<root>.le_appCtrl -> <root>.le_appCtrl
<root>.le_framework -> <root>.le_framework
<root>.wdog -> <root>.wdog
<root>.le_wdog -> <root>.le_wdog
<root>.le_cfg -> <root>.le_cfg
<root>.le_cfgAdmin -> <root>.le_cfgAdmin
<root>.le_update -> <root>.le_update
<root>.le_updateCtrl -> <root>.le_updateCtrl
<root>.le_appRemove -> <root>.le_appRemove
<root>.le_instStat -> <root>.le_instStat
<root>.le_appInfo -> <root>.le_appInfo
<root>.le_appProc -> <root>.le_appProc
<root>.le_ima -> <root>.le_ima
<root>.appSmack -> <root>.appSmack
<root>.logFd -> <root>.logFd
<root>.configTreeWdog -> <root>.configTreeWdog
<root>.logDaemonWdog -> <root>.logDaemonWdog
<root>.updateDaemonWdog -> <root>.updateDaemonWdog
<root>.supervisorWdog -> <root>.supervisorWdog
<root>.le_sup_ctrl -> <root>.le_sup_ctrl
<root>.le_fwupdate -> <root>.le_fwupdate
<root>.atClientDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.atServerDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.atServerDaemon.atServer.le_atClient -> <root>.le_atClient
<root>.audioDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.audioDaemon.audio.le_pm -> <root>.le_pm
<root>.avcDaemon.appCfg.le_cfg -> <root>.le_cfg
<root>.avcDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.avcDaemon.avcDaemon.le_instStat -> <root>.le_instStat
<root>.avcDaemon.avcDaemon.le_appRemove -> <root>.le_appRemove
<root>.avcDaemon.avcDaemon.le_appCtrl -> <root>.le_appCtrl
<root>.avcDaemon.avcDaemon.le_cfg -> <root>.le_cfg
<root>.avcDaemon.avcDaemon.le_data -> <root>.le_data
<root>.avcDaemon.avcDaemon.le_ulpm -> <root>.le_ulpm
<root>.avcDaemon.avcDaemon.le_info -> <root>.le_info
<root>.avcDaemon.avcDaemon.le_ips -> <root>.le_ips
<root>.avcDaemon.avcDaemon.le_mdc -> <root>.le_mdc
<root>.avcDaemon.avcDaemon.le_mrc -> <root>.le_mrc
<root>.avcDaemon.avcDaemon.le_sim -> <root>.le_sim
<root>.avcDaemon.avcDaemon.le_sms -> <root>.le_sms
<root>.avcDaemon.avcDaemon.le_temp -> <root>.le_temp
<root>.avcDaemon.avcDaemon.le_gnss -> <root>.le_gnss
<root>.avcDaemon.avcDaemon.le_pos -> <root>.le_pos
<root>.avcDaemon.avcDaemon.le_appInfo -> <root>.le_appInfo
<root>.avcDaemon.avcDaemon.le_fwupdate -> <root>.le_fwupdate
<root>.avcDaemon.avcDaemon.le_update -> <root>.le_update
<root>.avcDaemon.avcDaemon.le_framework -> <root>.le_framework
<root>.avcDaemon.avcDaemon.le_secStore -> <root>.le_secStore
<root>.avcDaemon.avcDaemon.le_cellnet -> <root>.le_cellnet
<root>.battery.batteryComponent.le_cfg -> <root>.le_cfg
<root>.battery.batteryComponent.dhubIO -> <root>.io
<root>.cellNetService.watchdogChain.le_wdog -> <root>.le_wdog
<root>.cellNetService.cellNetService.le_sim -> <root>.le_sim
<root>.cellNetService.cellNetService.le_mrc -> <root>.le_mrc
<root>.cellNetService.cellNetService.le_secStore -> <root>.le_secStore
<root>.dcsDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.dcsDaemon.dcsDaemon.le_mdc -> <root>.le_mdc
<root>.dcsDaemon.dcsDaemon.le_mrc -> <root>.le_mrc
<root>.dcsDaemon.dcsDaemon.le_cfg -> <root>.le_cfg
<root>.dcsDaemon.dcsDaemon.le_wifiClient -> <root>.le_wifiClient
<root>.dhubToolAdmin -> <root>.admin
<root>.dhubToolQuery -> <root>.query
<root>.dhubToolIo -> <root>.io
<root>.devMode.devMode.le_pm -> <root>.le_pm
<root>.devMode.devMode.le_updateCtrl -> <root>.le_updateCtrl
<root>.devMode.devMode.le_instStat -> <root>.le_instStat
<root>.devMode.devMode.le_framework -> <root>.le_framework
<root>.dr.drTool.dataRouter -> dataRouter.dataRouter
<root>.fwupdateDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.gpioService.watchdogChain.le_wdog -> <root>.le_wdog
<root>.gpioService.sysfsGpio.le_cfg -> <root>.le_cfg
<root>.modemDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.modemDaemon.modemDaemon.le_cfg -> <root>.le_cfg
<root>.modemDaemon.modemDaemon.le_pm -> <root>.le_pm
<root>.rSimDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.portDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.portDaemon.portDaemon.le_atServer -> <root>.le_atServer
<root>.posDaemon.watchdogChain.le_wdog -> <root>.le_wdog
<root>.posDaemon.posDaemon.le_cfg -> <root>.le_cfg
<root>.powerManagerService.watchdogChain.le_wdog -> <root>.le_wdog
<root>.powerManagerService.powerMgr.le_framework -> <root>.le_framework
<root>.secStore.appCfg.le_cfg -> <root>.le_cfg
<root>.secStore.watchdogChain.le_wdog -> <root>.le_wdog
<root>.secStore.secStoreDaemon.le_appInfo -> <root>.le_appInfo
<root>.secStore.secStoreDaemon.le_update -> <root>.le_update
<root>.smsInboxService.smsInboxService.le_sim -> <root>.le_sim
<root>.smsInboxService.smsInboxService.le_sms -> <root>.le_sms
<root>.smsInboxService.smsInboxService.le_cfg -> <root>.le_cfg
<root>.cm.cm.le_cfg -> <root>.le_cfg
<root>.cm.cm.le_ulpm -> <root>.le_ulpm
<root>.cm.cm.le_mrc -> <root>.le_mrc
<root>.cm.cm.le_mdc -> <root>.le_mdc
<root>.cm.cm.le_sim -> <root>.le_sim
<root>.cm.cm.le_sms -> <root>.le_sms
<root>.cm.cm.le_info -> <root>.le_info
<root>.cm.cm.le_adc -> <root>.le_adc
<root>.cm.cm.le_temp -> <root>.le_temp
<root>.cm.cm.le_ips -> <root>.le_ips
<root>.cm.cm.le_rtc -> <root>.le_rtc
<root>.cm.cm.le_cellnet -> <root>.le_cellnet
<root>.fwupdate.fwupdate.le_fwupdate -> <root>.le_fwupdate
<root>.gnss.gnss.le_gnss -> <root>.le_gnss
<root>.gnss.gnss.le_pos -> <root>.le_pos
<root>.gnss.gnss.le_posCtrl -> <root>.le_posCtrl
<root>.kmod.moduleLoad.le_kernelModule -> <root>.le_kernelModule
<root>.pmtool.pmtool.le_ulpm -> <root>.le_ulpm
<root>.pmtool.pmtool.le_bootReason -> <root>.le_bootReason
<root>.pmtool.pmtool.le_pm -> <root>.le_pm
<root>.secstore.secstore.secStoreAdmin -> <root>.secStoreAdmin
<root>.voiceCallService.watchdogChain.le_wdog -> <root>.le_wdog
<root>.voiceCallService.voiceCallService.le_mcc -> <root>.le_mcc
<root>.voiceCallService.voiceCallService.le_audio -> <root>.le_audio
<root>.wifi.wifi.le_wifiClient -> <root>.le_wifiClient
<root>.wifi.wifi.le_wifiAp -> <root>.le_wifiAp
<root>.wifiApTest.wifiApTestComponent.le_wifiAp -> <root>.le_wifiAp
<root>.wifiClientTest.wifiClientTestComponent.le_wifiClient -> <root>.le_wifiClient
<root>.wifiWebAp.wifiWebApComponent.le_wifiAp -> <root>.le_wifiAp
<root>.mqttClient.mqttClientApiComponent.le_info -> <root>.le_info
<root>.OrangeStarterKit.smsClient.le_sms -> <root>.le_sms
<root>.OrangeStarterKit.OrangeStarterKitComponent.le_mdc -> <root>.le_mdc
<root>.OrangeStarterKit.OrangeStarterKitComponent.le_info -> <root>.le_info
<root>.OrangeStarterKit.OrangeStarterKitComponent.le_adc -> <root>.le_adc
<root>.OrangeStarterKit.OrangeStarterKitComponent.ma_led -> <root>.ma_led
<root>.OrangeStarterKit.dataProfileComponent.le_data -> <root>.le_data
<root>.OrangeStarterKit.dataProfileComponent.le_mdc -> <root>.le_mdc
<root>.OrangeStarterKit.LiveObjects.mqttClient -> <root>.mqttClient
<root>.OrangeStarterKit.LiveObjects.le_data -> <root>.le_data
dataRouter.LogClient -> <root>.LogClient
dataRouter.dataRouter.routerComponent.mqtt -> <root>.mqtt
dataRouter.dataRouter.routerComponent.le_appInfo -> <root>.le_appInfo
dataRouter.dataRouter.routerComponent.le_avdata -> <root>.le_avdata
dataRouter.dataRouter.routerComponent.le_secStore -> <root>.le_secStore
dataRouter.dataRouter.routerComponent.le_cfg -> <root>.le_cfg
dataPushTest.LogClient -> <root>.LogClient
dataPushTest.dataPushTest.avPublisherComponent.le_avdata -> <root>.le_avdata
redSensorToCloud.LogClient -> <root>.LogClient
redSensorToCloud.redSensorToCloud.sensorsComponent.le_adc -> <root>.le_adc
redSensorToCloud.redSensorToCloud.sensorsComponent.le_posCtrl -> <root>.le_posCtrl
redSensorToCloud.redSensorToCloud.sensorsComponent.le_pos -> <root>.le_pos
redSensorToCloud.redSensorToCloud.avPublisherComponent.le_avdata -> <root>.le_avdata
redSensorToCloud.redSensorToCloud.avPublisherComponent.ma_led -> <root>.ma_led
socialService.LogClient -> <root>.LogClient
socialService.socialService.social.le_cfg -> <root>.le_cfg
socialService.twitterClient.twitterClient.serviceConfig -> socialService.socialService.social.serviceConfig
socialService.twitterClient.twitterClient.twitter -> socialService.twitter
spiService.LogClient -> <root>.LogClient
spiService.spiService.watchdogChain.le_wdog -> <root>.le_wdog
helloWorld.LogClient -> <root>.LogClient
SERVICES
<root>.sdirTool (protocol ID = 'sdirTool', max message size = 268 bytes)
<root>.logFd (protocol ID = 'f871a40b4c7617a93b47f874956f1e69', max message size = 118 bytes)
<root>.logDaemonWdog (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
<root>.LogClient (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
<root>.LogControl (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
<root>.le_cfg (protocol ID = '26b40ad3a107d48e4227dff8903b9601', max message size = 1565 bytes)
<root>.le_cfgAdmin (protocol ID = '2aac298e89c905c985fd3b9437fb9f53', max message size = 1052 bytes)
<root>.configTreeWdog (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
<root>.le_update (protocol ID = '17cd65c5c26efb8f22650432980df70f', max message size = 56 bytes)
<root>.le_appRemove (protocol ID = '13c5300b39cc08587796fd4b47183f92', max message size = 67 bytes)
<root>.le_instStat (protocol ID = 'e160a983e92b4310ae8af3fbeff75a1b', max message size = 63 bytes)
<root>.le_updateCtrl (protocol ID = '2068715d5da737c096cc7146ce5f1df6', max message size = 17 bytes)
<root>.updateDaemonWdog (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
<root>.le_atClient (protocol ID = 'ef7be0a431448f583f2e7a2ec83a5680', max message size = 4119 bytes)
<root>.le_atServer (protocol ID = '2527056ddcf5218c3a18f8b922a25fd2', max message size = 4123 bytes)
<root>.ma_led (protocol ID = '91c870ebd3551834d9731e5d0681a038', max message size = 16 bytes)
<root>.le_port (protocol ID = 'c7135da061a6a38d810159fff5799177', max message size = 70 bytes)
<root>.le_rsim (protocol ID = 'b09e1d24fc5dc8036c1bf572dbd40b21', max message size = 300 bytes)
<root>.le_sup_ctrl (protocol ID = 'bb17ec49ba32b1f1cfa05c1fa0000719', max message size = 68 bytes)
<root>.le_appCtrl (protocol ID = 'bbc8a1041b89cad83df1e4bfb1c9a067', max message size = 541 bytes)
<root>.le_framework (protocol ID = '28525bdc36d66247ae720424d0b28b51', max message size = 17 bytes)
<root>.wdog (protocol ID = '80408175972a85f9cd0abf02df19f2f3', max message size = 16 bytes)
<root>.supervisorWdog (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
<root>.le_appInfo (protocol ID = '092c2f7994c22cecc1e5a2608e1595b0', max message size = 118 bytes)
<root>.le_appProc (protocol ID = '3a750db42e253ea2307d75519c48afeb', max message size = 633 bytes)
<root>.le_ima (protocol ID = '32b128a43637f60e028aba17f6513daa', max message size = 531 bytes)
<root>.le_kernelModule (protocol ID = 'b9a021649e1b6d35ccdd0293014c964b', max message size = 80 bytes)
<root>.le_pm (protocol ID = '39f21a4932ef87d302a8f31dfe5a0af7', max message size = 55 bytes)
<root>.le_ulpm (protocol ID = 'fdb586a476e5e0e19b60614aa1ea5d7a', max message size = 40 bytes)
<root>.le_bootReason (protocol ID = '2d79668511adea4d675f5d77b9f2d3ea', max message size = 17 bytes)
<root>.io (protocol ID = '2521df9c34619280d5712f58693a0ac8', max message size = 238 bytes)
<root>.admin (protocol ID = 'e825b12f3c6c38e778065318ec4bb76c', max message size = 234 bytes)
<root>.query (protocol ID = 'ce058d01527d4eb46f3b3fff76784fa6', max message size = 246 bytes)
<root>.le_wdog (protocol ID = '572ba176b790548eed89b7ba6f9f4b14', max message size = 24 bytes)
<root>.le_audio (protocol ID = '6a8550b129317ef436c4894129509c7c', max message size = 132 bytes)
<root>.ma_battery (protocol ID = '438130cada0d5ac2f4a3245f58f5ba31', max message size = 152 bytes)
<root>.ma_adminbattery (protocol ID = 'c914c29c3c0f31fc2b8641c409866acb', max message size = 152 bytes)
<root>.le_wifiClient (protocol ID = '49eb962b16889a72c83872700e06f2da', max message size = 223 bytes)
<root>.le_wifiAp (protocol ID = '461e6b8f546beb192a8645fb0d26e89d', max message size = 94 bytes)
<root>.le_fwupdate (protocol ID = 'a8f730857c018907842f8ee02858e26f', max message size = 276 bytes)
<root>.le_dualsys (protocol ID = '69539775d6f1358ade33034c2fa222c4', max message size = 20 bytes)
<root>.le_flash (protocol ID = 'a36a81bca852297786086f08a8884cda', max message size = 262172 bytes)
<root>.le_gnss (protocol ID = 'ac786c9bdfedf53fb1ab99476841610f', max message size = 2023 bytes)
<root>.le_pos (protocol ID = 'c9b4a5b877bfe3915d5029d8393d9566', max message size = 36 bytes)
<root>.le_posCtrl (protocol ID = 'd47cc30512e69387f546399a44c565e4', max message size = 16 bytes)
<root>.le_secStore (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
<root>.secStoreGlobal (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
<root>.secStoreAdmin (protocol ID = '4995e42beb8aa21c2fabf4414840024d', max message size = 8727 bytes)
<root>.le_gpioPin1 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin2 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin3 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin4 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin5 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin7 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin8 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin9 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin10 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin11 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin12 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin14 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin15 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin16 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin17 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin18 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin19 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin20 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin21 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin22 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin23 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin24 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin25 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin26 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin27 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin28 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin29 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin30 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin31 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin32 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin33 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin34 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin35 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin36 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin37 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin38 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin39 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin40 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin41 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin42 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin43 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin44 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin45 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_gpioPin46 (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
<root>.le_info (protocol ID = '975257ab76b4bd700b883f96a47b6508', max message size = 276 bytes)
<root>.le_sms (protocol ID = '6e36b32bb82b37b44288335e8dec164e', max message size = 205 bytes)
<root>.le_mrc (protocol ID = '9050243ec820d5521bcc635c52691835', max message size = 124 bytes)
<root>.le_sim (protocol ID = 'a0eebdf2681bff48efc6d76ad002fd10', max message size = 540 bytes)
<root>.le_mdc (protocol ID = '5110946da2c3c40cf6a28792bb0cf4ef', max message size = 196 bytes)
<root>.le_mcc (protocol ID = 'bf43202a0369b12bb827e1bc4724bb41', max message size = 41 bytes)
<root>.le_ecall (protocol ID = '9ca2a687836cbb0fe7a26c7519fc2637', max message size = 164 bytes)
<root>.le_ips (protocol ID = '90ad953c761aa71f85c44f94ee91aff1', max message size = 24 bytes)
<root>.le_temp (protocol ID = '01650568439a3a9c47468069df5a7783', max message size = 128 bytes)
<root>.le_antenna (protocol ID = 'c6ad7def5425943d0e3b97ad84593ed5', max message size = 24 bytes)
<root>.le_riPin (protocol ID = 'aafbc3c57eec1350fdae5eb6fe083e5a', max message size = 17 bytes)
<root>.le_adc (protocol ID = 'cca082d3d4d6b9c7c11466ab2ea74e4f', max message size = 54 bytes)
<root>.le_rtc (protocol ID = '88750cf71cdf94a8a7d68de367465558', max message size = 24 bytes)
<root>.le_mdmCfg (protocol ID = 'fcf3b5cece06794472fb938f2c621c50', max message size = 16 bytes)
<root>.le_lpt (protocol ID = 'ddfabab9b938cdcb7564dbd7632f76bc', max message size = 24 bytes)
<root>.mqttClient (protocol ID = 'cfa0257f5f505e5a5cb045d0e9846322', max message size = 1204 bytes)
<root>.le_cellnet (protocol ID = 'd635d930065e3c3f1e7f12c3b1ec3c41', max message size = 32 bytes)
<root>.le_data (protocol ID = '301e0f957699e656d25d93021f0f5a77', max message size = 117 bytes)
<root>.le_avc (protocol ID = '7a818d1ee00573303dc3b4f87c43e029', max message size = 541 bytes)
<root>.le_avdata (protocol ID = 'd042ee9f795ba3ff64aacf91d970b8fc', max message size = 802 bytes)
WAITING CLIENTS
[pid 9861] <root>.ioRaspi.ioRaspiComponent.mangoh_button UNBOUND (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd')
The rest of the story in the second post