Top Level Namespace
Defined Under Namespace
Modules: Iot
Constant Summary collapse
- Iot_dir =
"iot"- IOT_HELP =
"Example usage:\n iot install\n iot uninstall\n iot new app_path\n iot generate\n\nTroubleshooting:\n iot doctor\n iot version\n"- StroboPath =
File. "/usr/local/strobo"
- ArmGccLink =
"https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-mac.tar.bz2"- ArmGccTarPath =
File. "#{StroboPath}/#{ File.basename ArmGccLink }"
- ArmGccPath =
"#{StroboPath}/gcc-arm-none-eabi-4_9-2014q4"- Mbed_Dev_Url =
"http://developer.mbed.org/"- Mbed_Ble_Api_Link =
"#{Mbed_Dev_Url}teams/Bluetooth-Low-Energy/code/BLE_API/archive/fb2a891a0d98.zip"- Mbed_Nrf51822_Link =
"#{Mbed_Dev_Url}teams/Nordic-Semiconductor/code/nRF51822/archive/17fe69405098.zip"- Mbed_Mbed_Link =
"#{Mbed_Dev_Url}users/mbed_official/code/mbed/archive/4fc01daae5a5.zip"- Template_main =
"#include \"mbed.h\"\n#include \"STService.h\"\n#include \"STBLEDevice.h\"\n\nSTBLEDevice ble;\n\n/**\n * BLE callback\n */\nvoid onConnectionCallback(Gap::Handle_t handle, Gap::addr_type_t peerAddrType, const Gap::address_t peerAddr, const Gap::ConnectionParams_t *params)\n{\n}\n\nvoid disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)\n{\n ble.startAdvertising();\n}\n\nvoid onDataWritten(const GattCharacteristicWriteCBParams *params)\n{\n}\n\n/**\n * main function\n */\nint main(void) {\n\n ble.setup(); // custom method of STBLEDevice class\n ble.setAdPacket(); // custom method of STBLEDevice class\n uint8_t serviceCount = sizeof(GattServices) / sizeof(GattService *);\n ble.addServices( GattServices, serviceCount ); // custom method of STBLEDevice class\n\n // set up callback\n ble.onConnection( onConnectionCallback );\n ble.onDisconnection( disconnectionCallback );\n ble.onDataWritten( onDataWritten );\n\n ble.startAdvertising();\n\n while (true) {\n /*\n * write some code\n */\n }\n}\n"- Template_bleyaml =
"deviceinfo:\n name: TEMP\n shortname: TEMP\n adpacket:\n type: 1\n flags: 1\n localname: 1\n txpower: 127\n interval: 160\n"- Template_makefile =
"\n# This file was automagically generated by mbed.org. For more information,\n# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded\n\nPROJECT = TEMP\nOBJECTS += ./main.o\n\nGCC_BIN = /usr/local/strobo/gcc-arm-none-eabi-4_9-2014q4/bin/\nOBJECTS += \\\\\n/usr/local/strobo/BLE_API/common/UUID.o\\\\\n/usr/local/strobo/BLE_API/common/GapAdvertisingData.o\\\\\n/usr/local/strobo/BLE_API/common/BLEDevice.o\\\\\n/usr/local/strobo/BLE_API/common/GapAdvertisingParams.o\\\\\n/usr/local/strobo/BLE_API/common/GattService.o\\\\\n/usr/local/strobo/BLE_API/services/UARTService.o\\\\\n/usr/local/strobo/BLE_API/services/DFUService.o\\\\\n/usr/local/strobo/nRF51822/nRF51Gap.o\\\\\n/usr/local/strobo/nRF51822/nRF51GattServer.o\\\\\n/usr/local/strobo/nRF51822/nRF51822n.o\\\\\n/usr/local/strobo/nRF51822/btle/btle_advertising.o\\\\\n/usr/local/strobo/nRF51822/btle/btle_gap.o\\\\\n/usr/local/strobo/nRF51822/btle/btle.o\\\\\n/usr/local/strobo/nRF51822/btle/custom/custom_helper.o\\\\\n/usr/local/strobo/nRF51822/nordic/softdevice_handler.o\\\\\n/usr/local/strobo/nRF51822/nordic/app_common/pstorage.o\\\\\n/usr/local/strobo/nRF51822/nordic/app_common/crc16.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_advdata.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_advdata_parser.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_error_log.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_debug_assert_handler.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_conn_params.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_bondmngr.o\\\\\n/usr/local/strobo/nRF51822/nordic/ble/ble_services/ble_srv_common.o\\\\\n/usr/local/strobo/nRF51822/nordic/bootloader_dfu/bootloader_util_arm.o\\\\\n/usr/local/strobo/nRF51822/nordic/bootloader_dfu/dfu_app_handler.o\\\\\n/usr/local/strobo/nRF51822/nordic/app_common/hci_mem_pool.o\\\\\n/usr/local/strobo/nRF51822/nordic/app_common/app_scheduler.o\\\\\n/usr/local/strobo/nRF51822/nordic/app_common/app_gpiote.o\\\\\n\nSYS_OBJECTS = \\\\\n/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/startup_NRF51822.o\\\\\n/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/cmsis_nvic.o\\\\\n/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/board.o\\\\\n/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/system_nrf51822.o\\\\\n/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/retarget.o\n\nINCLUDE_PATHS =\\\\\n-I.\\\\\n-I/usr/local/strobo/mbed\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nrf-sdk\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nrf-sdk/sd_common\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/nrf-sdk/app_common\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_7_1_0\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_7_1_0/s110_nrf51822_7.1.0_API\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_7_1_0/s110_nrf51822_7.1.0_API/include\\\\\n-I/usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/TARGET_HRM1017\\\\\n-I/usr/local/strobo/BLE_API\\\\\n-I/usr/local/strobo/BLE_API/common\\\\\n-I/usr/local/strobo/BLE_API/services\\\\\n-I/usr/local/strobo/BLE_API/public\\\\\n-I/usr/local/strobo/nRF51822\\\\\n-I/usr/local/strobo/nRF51822/btle\\\\\n-I/usr/local/strobo/nRF51822/btle/custom\\\\\n-I/usr/local/strobo/nRF51822/common\\\\\n-I/usr/local/strobo/nRF51822/nordic\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/s110\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/sd_common\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/bootloader_dfu\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/app_common\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/ble\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/ble/ble_services\\\\\n-I/usr/local/strobo/nRF51822/nordic/nrf-sdk/ble/device_manager\\\\\n-I/usr/local/strobo/nRF51822/nordic/bootloader_dfu\\\\\n-I/usr/local/strobo/nRF51822/nordic/app_common\\\\\n-I/usr/local/strobo/nRF51822/nordic/ble\\\\\n-I/usr/local/strobo/nRF51822/nordic/ble/ble_services\\\\\n-I./iot\n\nLIBRARY_PATHS = -L/usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM \nLIBRARIES = -lmbed \nLINKER_SCRIPT = /usr/local/strobo/mbed/TARGET_HRM1017/TOOLCHAIN_GCC_ARM/NRF51822.ld\nSOFTDEVICE = /usr/local/strobo/mbed/TARGET_HRM1017/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_7_1_0/s110_nrf51822_7.1.0_softdevice.hex\n\n###############################################################################\nAS = $(GCC_BIN)arm-none-eabi-as\nCC = $(GCC_BIN)arm-none-eabi-gcc\nCPP = $(GCC_BIN)arm-none-eabi-g++\nLD = $(GCC_BIN)arm-none-eabi-gcc\nOBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy\nOBJDUMP = $(GCC_BIN)arm-none-eabi-objdump\nSIZE = $(GCC_BIN)arm-none-eabi-size\n\nCPU = -mcpu=cortex-m0 -mthumb\nCC_FLAGS = $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer\nCC_FLAGS += -MMD -MP\nCC_SYMBOLS = -DTARGET_HRM1017 -DTARGET_M0 -DTARGET_CORTEX_M -DTARGET_NORDIC -DTARGET_MCU_NRF51822 -DTARGET_MCU_NORDIC_16K -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M0 -DARM_MATH_CM0 -DMBED_BUILD_TIMESTAMP=1418113723.35 -D__MBED__=1 -DTARGET_NRF51822 \n\nLD_FLAGS = $(CPU) -Wl,--gc-sections -Wl,--wrap=main --specs=nano.specs -u _printf_float -u _scanf_float\nLD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref\nLD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys\n\nifeq ($(DEBUG), 1)\n CC_FLAGS += -DDEBUG -O0\nelse\n CC_FLAGS += -DNDEBUG -Os\nendif\n\nall: $(PROJECT).bin copy\n\nclean:\n rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS) $(DEPS) combined.hex\n\n.s.o:\n $(AS) $(CPU) -o $@ $<\n\n.c.o:\n $(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<\n\n.cpp.o:\n $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $<\n\n\n$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)\n $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)\n $(SIZE) $@\n\n$(PROJECT).bin: $(PROJECT).elf\n @$(OBJCOPY) -O binary $< $@\n\n$(PROJECT).hex: $(PROJECT).elf\n @$(OBJCOPY) -O ihex $< $@\n\n$(PROJECT).lst: $(PROJECT).elf\n @$(OBJDUMP) -Sdh $< > $@\n\nlst: $(PROJECT).lst\n\nsize:\n $(SIZE) $(PROJECT).elf\n\nDEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)\n-include $(DEPS)\n\ncombined.hex: $(PROJECT).hex\n iot mkhex $(SOFTDEVICE) $(PROJECT).hex\n\ncopy: combined.hex\n sudo mount -u -w -o sync /Volumes/MBED\n cp -X combined.hex /Volumes/MBED/\n\n\n"- Yaml_path =
"ble.yml"- Template_stservice =
""- Template_stbledevice =
"\n#ifndef INCLUDED_BLEDEVICE\n#include \"BLEDevice.h\"\n#endif\n\n#ifndef INCLUDED_STDEVICEINFO\n#include \"STDeviceInfo.h\"\n#endif\n\n\nclass STBLEDevice : public BLEDevice{\npublic:\n /**\n * Initialize BLEDevice instanse\n */\n void setup() {\n this->init();\n this->setDeviceName( (const uint8_t *)COMP_NAME );\n }\n\n /**\n * Add Service array\n * @param *GattServices array of GATT service\n * @param length length of *GattServices array\n */\n void addServices(GattService *GattServices[], uint16_t length) {\n for (int i=0; i<length ; i++) {\n this->addService( *GattServices[i] );\n }\n }\n\n /**\n * Set Advertising Packet\n */\n void setAdPacket() {\n /**\n * Set PDU type\n * Types of PDU type\n * - ADV_CONNECTABLE_UNDIRECTED\n * - ADV_CONNECTABLE_DIRECTED\n * - ADV_SCANNABLE_UNDIRECTED\n * - ADV_NON_CONNECTABLE_UNDIRECTED\n */\n GapAdvertisingParams::AdvertisingType advType = GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED;\n this->setAdvertisingType( advType );\n\n /**\n * Set Flags\n * - BR/EDR not supported\n */\n this->accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);\n\n /**\n * Set Device Name.\n * Developer has to choose one from belows.\n * - SHORTENED_LOCAL_NAME\n * - COMPLETE_LOCAL_NAME\n */\n if (SHORT_FLG) {\n this->accumulateAdvertisingPayload(\n GapAdvertisingData::SHORTENED_LOCAL_NAME,\n (const uint8_t *)SHORT_NAME,\n sizeof(SHORT_NAME)\n );\n } else {\n this->accumulateAdvertisingPayload(\n GapAdvertisingData::COMPLETE_LOCAL_NAME,\n (const uint8_t *)COMP_NAME,\n sizeof(COMP_NAME)\n );\n }\n\n /**\n * Set advertising Interval\n */\n this->setAdvertisingInterval(AD_INTERVAL);\n }\n\n};\n\n\n"- Template_stdeviceinfo =
"#define COMP_NAME \"TEMP\"\n#define SHORT_NAME \"TEMP\"\n#define AD_INTERVAL 160\n"