updated newtmgr tutorial with oicmgr configuration options
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/commit/bbba187a Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/tree/bbba187a Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/diff/bbba187a Branch: refs/heads/asf-site Commit: bbba187aac2caf9d87dab9a17105880711829c25 Parents: b435bea Author: aditihilbert <[email protected]> Authored: Fri Jan 27 10:49:00 2017 -0800 Committer: aditihilbert <[email protected]> Committed: Fri Jan 27 10:49:00 2017 -0800 ---------------------------------------------------------------------- develop/mkdocs/search_index.json | 103 +-- .../devmgmt/customize_newtmgr/index.html | 669 +++++++++++++++++++ develop/os/modules/devmgmt/newtmgr/index.html | 8 + develop/os/modules/devmgmt/oicmgr/index.html | 67 +- develop/os/modules/imgmgr/imgmgr/index.html | 4 +- .../imgmgr/imgmgr_module_init/index.html | 19 +- develop/os/tutorials/STM32F303/index.html | 2 +- develop/os/tutorials/add_newtmgr/index.html | 244 ++++--- develop/os/tutorials/add_shell/index.html | 4 +- develop/os/tutorials/air_quality_ble/index.html | 2 +- .../os/tutorials/air_quality_sensor/index.html | 2 +- develop/os/tutorials/arduino_zero/index.html | 2 +- develop/os/tutorials/blehci_project/index.html | 2 +- .../os/tutorials/bleprph/bleprph-adv/index.html | 2 +- .../os/tutorials/bleprph/bleprph-app/index.html | 2 +- .../bleprph/bleprph-chr-access/index.html | 2 +- .../bleprph/bleprph-gap-event/index.html | 2 +- .../tutorials/bleprph/bleprph-intro/index.html | 2 +- .../bleprph/bleprph-svc-reg/index.html | 2 +- develop/os/tutorials/bletiny_project/index.html | 2 +- develop/os/tutorials/blinky_console/index.html | 2 +- develop/os/tutorials/blinky_primo/index.html | 2 +- .../os/tutorials/blinky_sram_olimex/index.html | 2 +- develop/os/tutorials/event_queue/index.html | 2 +- develop/os/tutorials/ibeacon/index.html | 2 +- develop/os/tutorials/nRF52/index.html | 2 +- develop/os/tutorials/olimex/index.html | 2 +- develop/os/tutorials/pin-wheel-mods/index.html | 2 +- develop/os/tutorials/project-slinky/index.html | 2 +- .../tutorials/project-target-slinky/index.html | 4 +- develop/os/tutorials/repo/add_repos/index.html | 2 +- .../os/tutorials/repo/create_repo/index.html | 2 +- .../os/tutorials/repo/upgrade_repo/index.html | 2 +- develop/os/tutorials/tasks_lesson/index.html | 2 +- develop/os/tutorials/tutorials/index.html | 2 +- develop/os/tutorials/unit_test/index.html | 2 +- .../os/tutorials/wi-fi_on_arduino/index.html | 2 +- develop/sitemap.xml | 24 +- latest/mkdocs/search_index.json | 103 +-- .../devmgmt/customize_newtmgr/index.html | 669 +++++++++++++++++++ latest/os/modules/devmgmt/newtmgr/index.html | 8 + latest/os/modules/devmgmt/oicmgr/index.html | 67 +- latest/os/modules/imgmgr/imgmgr/index.html | 4 +- .../imgmgr/imgmgr_module_init/index.html | 19 +- latest/os/tutorials/STM32F303/index.html | 2 +- latest/os/tutorials/add_newtmgr/index.html | 244 ++++--- latest/os/tutorials/add_shell/index.html | 4 +- latest/os/tutorials/air_quality_ble/index.html | 2 +- .../os/tutorials/air_quality_sensor/index.html | 2 +- latest/os/tutorials/arduino_zero/index.html | 2 +- latest/os/tutorials/blehci_project/index.html | 2 +- .../os/tutorials/bleprph/bleprph-adv/index.html | 2 +- .../os/tutorials/bleprph/bleprph-app/index.html | 2 +- .../bleprph/bleprph-chr-access/index.html | 2 +- .../bleprph/bleprph-gap-event/index.html | 2 +- .../tutorials/bleprph/bleprph-intro/index.html | 2 +- .../bleprph/bleprph-svc-reg/index.html | 2 +- latest/os/tutorials/bletiny_project/index.html | 2 +- latest/os/tutorials/blinky_console/index.html | 2 +- latest/os/tutorials/blinky_primo/index.html | 2 +- .../os/tutorials/blinky_sram_olimex/index.html | 2 +- latest/os/tutorials/event_queue/index.html | 2 +- latest/os/tutorials/ibeacon/index.html | 2 +- latest/os/tutorials/nRF52/index.html | 2 +- latest/os/tutorials/olimex/index.html | 2 +- latest/os/tutorials/pin-wheel-mods/index.html | 2 +- latest/os/tutorials/project-slinky/index.html | 2 +- .../tutorials/project-target-slinky/index.html | 4 +- latest/os/tutorials/repo/add_repos/index.html | 2 +- latest/os/tutorials/repo/create_repo/index.html | 2 +- .../os/tutorials/repo/upgrade_repo/index.html | 2 +- latest/os/tutorials/tasks_lesson/index.html | 2 +- latest/os/tutorials/tutorials/index.html | 2 +- latest/os/tutorials/unit_test/index.html | 2 +- latest/os/tutorials/wi-fi_on_arduino/index.html | 2 +- latest/sitemap.xml | 24 +- sitemap.xml | 26 +- v0_9_0/sitemap.xml | 26 +- 78 files changed, 1934 insertions(+), 522 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/mkdocs/search_index.json ---------------------------------------------------------------------- diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json index e28a9d0..06a549a 100644 --- a/develop/mkdocs/search_index.json +++ b/develop/mkdocs/search_index.json @@ -1497,53 +1497,78 @@ }, { "location": "/os/tutorials/add_newtmgr/", - "text": "Enabling Newt Manager (newtmgr) in a project\n\n\n\n\nThis tutorial explains how to add the newtmgr task to a project so that you can interact with your project over newtmgr.\n\n\n\n\nPre-Requisites\n\n\n\n\nEnsure you have installed \nnewt\n and that the \nnewt command is in your system path. \n\n\nEnsure that you have installed the newtmgr tool \nnewtmgr\n\n\nYou must have Internet connectivity to fetch remote Mynewt components.\n\n\nYou must \ninstall the compiler tools\n to \nsupport native compiling to build the project this tutorial creates. \n\n\nYou must install the \nSegger JLINK package\n to load your project on the board.\n\n\nCable to establish a serial USB connection between the board and the laptop\n\n\n\n\n\n\nUse an existing project\n\n\nSince all we're doing is adding newtmgr capability to a project, we assume that you have worked through at least some of the other tutorials, and have an existing project.\nFor this example, we'll be modifying t he \nble_tiny\n project to enable newtmgr connectivity. We'll be calling our app myble as in that project as well. \nFeel free to use whatever project you'd like though.\n\n\nThe first thing you'll need to add is a new dependency for your app. In the repo for the bletiny app you'll need to add the following line to the pkg.yml file:\n\n\n - libs/newtmgr\n\n\n\n\n\nNow the application will know to pull in the newtmgr code.\n\n\n\n\nModify the source\n\n\nFirst, you'll need to include the newtmgr header file:\n\n\n#include \nnewtmgr/newtmgr.h\n\n\n\n\n\n\nNext, you'll need to declare a task for the newtmgr:\n\n\n#define NEWTMGR_TASK_PRIO (4)\n#define NEWTMGR_TASK_STACK_SIZE (OS_STACK_ALIGN(896))\nos_stack_t newtmgr_stack[NEWTMGR_TASK_STACK_SIZE];\n\n\n\n\n\nNext you'll scroll down (way down) to the \nmain()\n function and find the lines:\n\n\nrc = console_init(shell_console_rx_cb);\nassert(rc == 0);\n\n\n\n\n\nAfter those lines, add:\n\n\nnmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stac k, NEWTMGR_TASK_STACK_SIZE);\n\n\n\n\n\nBuild targets\n\n\nThen build the two targets.\n\n\n$ newt build nrf52_boot\n\nsnip\n\nApp successfully built: ./bin/nrf52_boot/apps/boot/boot.elf\n$ newt build myble\nCompiling hci_common.c\nCompiling util.c\nArchiving nimble.a\nCompiling os.c\n\nsnip\n\n\n\n\n\n\n\n\nCreate the app image\n\n\nGenerate a signed application image for the \nmyble\n target. The version number is arbitrary.\n\n\n$ newt create-image myble 1.0.0\nApp image succesfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img\nBuild manifest: ./bin/makerbeacon/apps/bletiny/manifest.json\n\n\n\n\n\n\n\nLoad the image\n\n\nMake sure the USB connector is in place and the power LED on the board is lit. Use the Power ON/OFF switch to reset the board after loading the image.\n\n\n$ newt load nrf52_boot\n$ newt load myble\n\n\n\n\n\n\n\nSet up newtmgr connection\n\n\nNewtmgr requires a connection profile in order to connect to your board. If you haven't yet, follow the \ninstr uctions\n for setting up your connection profile.\n\n\n\n\nConnecting with your app\n\n\nOnce you have a connection profile set up, you can connect to your device with \nnewtmgr -c myconn \ncommand\n to run commands agains your app. \n\n\nTo test and make sure that newtmgr is working, try the echo command:\n\n\n# newtmgr -c myconn echo hello\n{\nr\n: \nhello\n}\n\n\n\n\n\nNewtmgr wraped the response in valid JSON notation. Now let's look at some BLE stats using newtmgr:\n\n\nnewtmgr -c myconn stat ble_att\nReturn Code = 0\nStats Name: ble_att\n prep_write_req_tx: 0\n indicate_req_tx: 0\n write_rsp_tx: 0\n find_info_req_tx: 0\n read_rsp_rx: 0\n read_group_type_rsp_tx: 0\n indicate_req_rx: 0\n find_type_value_rsp_tx: 0\n read_mult_rsp_tx: 0\n exec_write_req_rx: 0\n exec_write_rsp_tx: 0\n error_rsp_tx: 0\n find_type_value_rsp_rx: 0\n read_type_req_tx: 0\n read_type_rsp_rx: 0\n read_rsp_tx: 0\n read_blob_req_tx: 0\n mtu_req_tx: 0\n read_req_tx: 0\n read_blob_rsp_tx: 0\n read_mult_req_rx: 0\n write_req_tx: 0\n prep_write_rsp_tx: 0\n indicate_rsp_rx: 0\n write_cmd_rx: 0\n exec_write_rsp_rx: 0\n find_info_req_rx: 0\n mtu_rsp_rx: 0\n prep_write_req_rx: 0\n notify_req_rx: 0\n read_group_type_rsp_rx: 0\n prep_write_rsp_rx: 0\n indicate_rsp_tx: 0\n find_info_rsp_tx: 0\n read_blob_req_rx: 0\n read_group_type_req_rx: 0\n write_cmd_tx: 0\n mtu_req_rx: 0\n read_mult_rsp_rx: 0\n write_rsp_rx: 0\n write_req_rx: 0\n read_type_rsp_tx: 0\n read_mult_req_tx: 0\n error_rsp_rx: 0\n find_info_rsp_rx: 0\n find_type_value_req_tx: 0\n read_req_rx: 0\n read_type_req_rx: 0\n notify_req_tx: 0\n mtu_rsp_tx: 0\n find_type_value_req_rx: 0\n read_blob_rsp_rx: 0\n read_group_type_req_tx: 0\n exec_write_req_tx: 0\n\n\n\n\n\nYour application is now able to communicate via newtmgr!", - "title": "Enable newtmgr in any app" + "text": "Enabling Newt Manager in Your Application\n\n\n\nIn order for your application to communicate with the newtmgr tool and process Newt Manager commands, you must \nenable Newt Manager device management and the support to process Newt Manager commands \nin your application. This tutorial explains how to add the support to your application.\n\n\nThis tutorial assumes that you have read the \nDevice Management with Newt Manager\n\nguide and are familiar with the \nnewtmgr\n and \noicmgr\n frameworks and all the options that are available \nto customize your application.\n\n\nThis tutorial shows you how to configure your application to:\n\n\n\n\nUse the newtmgr framework.\n\n\nUse serial transport to communicate with the newtmgr tool.\n\n\nSupport all Newt Manager commands.\n\n\n\n\nSee \nOther Configuration Options\n on how to customize your application.\n\n\n\n\nPrerequisites\n\n\nEnsure that you have met the following prerequisites before continuing with this tuto rial:\n\n\n\n\nInstalled the \nnewt tool\n. \n\n\nInstalled the \nnewtmgr tool\n.\n\n\nHave Internet connectivity to fetch remote Mynewt components.\n\n\nInstalled the \ncompiler tools\n to \nsupport native compiling to build the project this tutorial creates. \n\n\nHave a cable to establish a serial USB connection between the board and the laptop.\n\n\n\n\n\n\nUse an Existing Project\n\n\nWe assume that you have worked through at least some of the other tutorials and have an existing project.\nIn this example, we modify the \nble_tiny\n project to enable Newt Manager support. \nWe call our application \nmyble\n. You can create the application using any name you choose. \n\n\nModify Package Dependencies and Configurations\n\n\nAdd the following packages to the \npkg.deps\n parameter in your target or application \npkg.yml\n file:\n\n\npkg.deps:\n - mgmt/newtmgr\n - mgmt/newtmgr/transport/nmgr_shell\n - mgmt/imgmgr\n - sys/log/full\n - sys/stats/full\n - sys/confi g\n - test/crash_test\n - test/runtest\n\n\n\n\n\nEach package provides the following Newt Manager functionality:\n\n\n\n\nmgmt/newtmgr\n: Supports the newtmgr framework and the \nNewt Manager \necho\n, \ntaskstats\n \nmpstats\n, \ndatetime\n, and \nreset\n commands.\n\n\nmgmt/newtmgr/transport/nmgr_shell\n: Supports serial transport.\n\n\nmgmt/imgmgr\n: Supports the \nnewtmgr image\n command \n\n\nsys/log/full\n : Supports the \nnewtmgr log\n command.\n\n\nsys/stats/full\n: Supports the \nnewtmgr stat\n command. \n\n\nsys/config\n: Supports the \nnewtmgr config\n command. \n\n\ntest/crash_test\n: Supports the \nnewtmgr crash\n command. \n\n\ntest/runtest\n: Supports the \nnewt run\n command.\n\n\n\n\nAdd the following configuration setting values to the \nsyscfg.vals\n parameter in the target or \napplication \nsyscfg.yml\n file:\n\n\nsyscfg.vals:\n LOG_NEWTMGR: 1\n STATS_NEWTMGR: 1\n CONFIG_NEWTMGR: 1\n CRASH_TEST_NEWTMGR: 1\n RUNTEST_NEWTMGR: 1\n SHELL_TAS K: 1\n\n\n\n\n\nThe first five configuration settings enable support for the Newt Manager \nlog\n, \nstats\n, \nconfig\n, \ncrash\n, \nand \nrun\n commands. The \nSHELL_TASK\n setting enables the shell for serial transport.\n\n\nNote that you may need to override additional configuration settings that are specific to each package to customize the \npackage functionality.\n\n\n\n\nModify the Source\n\n\nYour application must designate an event queue that the \nmgmt\n package uses to receive request events from \nthe newtmgr tool. It must also initialize a task and implement the task handler to\ndispatch events from this queue. The \nmgmt\n package executes and processes newtmgr \nrequest events in the context of this task. Your application, however, does \nnot need to create a dedicated event queue and task for this purpose and can use its default \nevent queue. This example uses the application's default event queue. \n\n\nThe \nmgmt\n package exports the \nvoid mgmt_evq_set(st ruct os_eventq *evq)\n function that an application must call \nto designate the event queue. Modify \nmain.c\n to add this call as follows:\n\n\nAdd the \nmgmt/mgmt.h\n header file: \n\n\n#include \nmgmt/mgmt.h\n\n\n\n\n\n\nAdd the call to designate the event queue. In the \nmain()\n function,\n\nscroll down to the \nos_eventq_dflt_set(\nble_tiny_evq)\n function call and add the \nfollowing statement below it:\n\n\nmgmt_eventq_set(\nble_tiny_evq)\n\n\n\n\n\nThe \nmgmt_eventq_set()\n function must be called after your application has initialized the event queue and task.\n\n\nBuild the Targets\n\n\nBuild the two targets as follows:\n\n\n$ newt build nrf52_boot\n\nsnip\n\nApp successfully built: ./bin/nrf52_boot/apps/boot/boot.elf\n$ newt build myble\nCompiling hci_common.c\nCompiling util.c\nArchiving nimble.a\nCompiling os.c\n\nsnip\n\n\n\n\n\n\n\n\nCreate the Application Image\n\n\nGenerate a signed application image for the \nmyble\n target. You can use any version number you cho ose.\n\n\n$ newt create-image myble 1.0.0\nApp image successfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img\nBuild manifest: ./bin/makerbeacon/apps/bletiny/manifest.json\n\n\n\n\n\n\n\nLoad the Image\n\n\nEnsure the USB connector is in place and the power LED on the board is lit. Turn the power switch on your board off, \nthen back on to reset the board after loading the image.\n\n\n$ newt load nrf52_boot\n$ newt load myble\n\n\n\n\n\nSet Up a Connection Profile\n\n\nThe newtmgr tool requires a connection profile in order to connect to your board. If you have not done so, \nfollow the \ninstructions\n for setting up your connection profile.\n\n\n\n\nConnecting with Your Application\n\n\nOnce you have a connection profile set up, you can connect to your device with \nnewtmgr -c myconn \ncommand\n to run commands in your application. \n\n\nIssue the \necho\n command to ensure that your application is communicating with the newtmgr tool:\n\n\n# newtmgr -c myconn echo hello\ nhello\n\n\n\n\n\nTest your application to ensure that it can process a Newt Manager command that is supported by a different package.\nIssue the \nstat\n command to see the BLE stats. \n\n\nnewtmgr -c myconn stat ble_att\nReturn Code = 0\nStats Name: ble_att\n prep_write_req_tx: 0\n indicate_req_tx: 0\n write_rsp_tx: 0\n find_info_req_tx: 0\n read_rsp_rx: 0\n read_group_type_rsp_tx: 0\n indicate_req_rx: 0\n find_type_value_rsp_tx: 0\n\n ...\n\n read_req_rx: 0\n read_type_req_rx: 0\n notify_req_tx: 0\n mtu_rsp_tx: 0\n find_type_value_req_rx: 0\n read_blob_rsp_rx: 0\n read_group_type_req_tx: 0\n exec_write_req_tx: 0\n\n\n\n\n\nYour application is now able to communicate with the newtmgr tool.\n\n\nOther Configuration Options\n\n\nThis section explains how to customize your application to use other Newt Manager protocol options.\n\n\nNewtmgr Framework Transport Protocol Options\n\n\nThe newtmgr framework currently supports BLE and serial transport protocols. \nTo configure the transport protocols that are supported, modify the \npkg.yml\n \nand \nsyscfg.yml\n files as follows:\n\n\n\n\nAdd the \nmgmt/newtmgr/transport/ble\n package to \npkg.deps\n parameter to enable BLE transport.\n\n\nAdd the \nmgmt/newtmgr/transport/nmgr_shell\n package to \nthe \npkg.deps\n parameter, and add \nSHELL_TASK: 1\n to the \nsyscfg.vals\n parameter to enable serial transport.\n\n\n\n\n\n\nOicmgr Framework Options\n\n\nTo use the oicmgr framework instead of the newtmgr framework, modify the \npkg.yml\n and \nsyscfg.yml\n files \nas follows:\n\n\n\n\nAdd the \nmgmt/oicmgr\n package (instead of the \nmgmt/newtmgr\n and \nmgmt/newtmgr/transport\n packages \nas described previously) to the \npkg.deps\n parameter.\n\n\nAdd \nOC_SERVER: 1\n to the \nsyscfg.vals\n parameter.\n\n\n\n\nOicmgr supports the IP, serial, and BLE transport protocols. To configure the transport protocols that are supported, \nset the configuration setting values in the \nsyscfg.vals\n para meter as follows:\n\n\n\n\nAdd \nOC_TRANSPORT_IP: 1\n to enable IP transport. \n\n\nAdd \nOC_TRANSPORT_GATT: 1\n to enable BLE transport.\n\n\nAdd \nOC_TRANSPORT_SERIAL: 1\n and \nSHELL_TASK: 1\n to enable serial transport.\n\n\n\n\n\n\nCustomize the Newt Manager Commands that Your Application Supports\n\n\nWe recommend that you only enable support for the Newt Manager commands that your application uses \nto reduce your application code size. To configure the commands that are supported, set the configuration \nsetting values in the \nsyscfg.vals\n parameter as follows:\n\n\n\n\nAdd \nLOG_NEWTMGR: 1\n to enable support for the \nnewtmgr log\n command.\n\n\nAdd \nSTATS_NEWTMGR: 1\n to enable support for the \nnewtmgr stat\n command.\n\n\nAdd \nCONFIG_NEWTMGR: 1\n to enable support for the \nnewtmgr config\n command.\n\n\nAdd \nCRASH_TEST_NEWTMGR: 1\n to enable support for the \nnewtmgr crash\n command.\n\n\nAdd \nRUNTEST_NEWTMGR: 1\n to enable support for the \nnewtmgr crash\n c ommand.\n\n\n\n\nNotes: \n\n\n\n\nWhen you enable Newt Manager support, using either the newtmgr or oicmgr framework, your application automatically \nsupports the Newt Manager \necho\n, \ntaskstats\n, \nmpstats\n, \ndatetime\n, and \nreset\n commands. These \ncommands cannot be configured individually.\n\n\nThe \nmgmt/imgmgr\n package does not provide a configuration setting to enable or disable support \nfor the \nnewtmgr image\n command. Do not specify the package in the \npkg.deps\n parameter if \nyour device has limited flash memory and cannot support Over-The-Air (OTA) firmware upgrades.", + "title": "Enable Newt Manager in any app" }, { - "location": "/os/tutorials/add_newtmgr/#enabling-newt-manager-newtmgr-in-a-project", - "text": "This tutorial explains how to add the newtmgr task to a project so that you can interact with your project over newtmgr.", - "title": "Enabling Newt Manager (newtmgr) in a project" + "location": "/os/tutorials/add_newtmgr/#enabling-newt-manager-in-your-application", + "text": "In order for your application to communicate with the newtmgr tool and process Newt Manager commands, you must \nenable Newt Manager device management and the support to process Newt Manager commands \nin your application. This tutorial explains how to add the support to your application. This tutorial assumes that you have read the Device Management with Newt Manager \nguide and are familiar with the newtmgr and oicmgr frameworks and all the options that are available \nto customize your application. This tutorial shows you how to configure your application to: Use the newtmgr framework. Use serial transport to communicate with the newtmgr tool. Support all Newt Manager commands. See Other Configuration Options on how to customize your application.", + "title": "Enabling Newt Manager in Your Application" }, { - "location": "/os/tutorials/add_newtmgr/#pre-requisites", - "text": "Ensure you have installed newt and that the \nnewt command is in your system path. Ensure that you have installed the newtmgr tool newtmgr You must have Internet connectivity to fetch remote Mynewt components. You must install the compiler tools to \nsupport native compiling to build the project this tutorial creates. You must install the Segger JLINK package to load your project on the board. Cable to establish a serial USB connection between the board and the laptop", - "title": "Pre-Requisites" + "location": "/os/tutorials/add_newtmgr/#prerequisites", + "text": "Ensure that you have met the following prerequisites before continuing with this tutorial: Installed the newt tool . Installed the newtmgr tool . Have Internet connectivity to fetch remote Mynewt components. Installed the compiler tools to \nsupport native compiling to build the project this tutorial creates. Have a cable to establish a serial USB connection between the board and the laptop.", + "title": "Prerequisites" }, { "location": "/os/tutorials/add_newtmgr/#use-an-existing-project", - "text": "Since all we're doing is adding newtmgr capability to a project, we assume that you have worked through at least some of the other tutorials, and have an existing project.\nFor this example, we'll be modifying the ble_tiny project to enable newtmgr connectivity. We'll be calling our app myble as in that project as well. \nFeel free to use whatever project you'd like though. The first thing you'll need to add is a new dependency for your app. In the repo for the bletiny app you'll need to add the following line to the pkg.yml file: - libs/newtmgr Now the application will know to pull in the newtmgr code.", - "title": "Use an existing project" + "text": "We assume that you have worked through at least some of the other tutorials and have an existing project.\nIn this example, we modify the ble_tiny project to enable Newt Manager support. \nWe call our application myble . You can create the application using any name you choose.", + "title": "Use an Existing Project" + }, + { + "location": "/os/tutorials/add_newtmgr/#modify-package-dependencies-and-configurations", + "text": "Add the following packages to the pkg.deps parameter in your target or application pkg.yml file: pkg.deps:\n - mgmt/newtmgr\n - mgmt/newtmgr/transport/nmgr_shell\n - mgmt/imgmgr\n - sys/log/full\n - sys/stats/full\n - sys/config\n - test/crash_test\n - test/runtest Each package provides the following Newt Manager functionality: mgmt/newtmgr : Supports the newtmgr framework and the \nNewt Manager echo , taskstats mpstats , datetime , and reset commands. mgmt/newtmgr/transport/nmgr_shell : Supports serial transport. mgmt/imgmgr : Supports the newtmgr image command sys/log/full : Supports the newtmgr log command. sys/stats/full : Supports the newtmgr stat command. sys/config : Supports the newtmgr config command. test/crash_test : Supports the newtmgr crash command. test/runtest : Supports the newt run command. Add the following configuration setting values to the syscfg.vals parameter in the target or \napplication syscfg.yml file: syscfg.vals:\n LOG_NEWTMGR: 1\n STATS_NEWTMGR: 1\n CONFIG_NEWTMGR: 1\n CRASH_TEST_NEWTMGR: 1\n RUNTEST_NEWTMGR: 1\n SHELL_TASK: 1 The first five configuration settings enable support for the Newt Manager log , stats , config , crash , \nand run commands. The SHELL_TASK setting enables the shell for serial transport. Note that you may need to override additional configuration settings that are specific to each package to customize the \npackage functionality.", + "title": "Modify Package Dependencies and Configurations" }, { "location": "/os/tutorials/add_newtmgr/#modify-the-source", - "text": "First, you'll need to include the newtmgr header file: #include newtmgr/newtmgr.h Next, you'll need to declare a task for the newtmgr: #define NEWTMGR_TASK_PRIO (4)\n#define NEWTMGR_TASK_STACK_SIZE (OS_STACK_ALIGN(896))\nos_stack_t newtmgr_stack[NEWTMGR_TASK_STACK_SIZE]; Next you'll scroll down (way down) to the main() function and find the lines: rc = console_init(shell_console_rx_cb);\nassert(rc == 0); After those lines, add: nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE);", - "title": "Modify the source" + "text": "Your application must designate an event queue that the mgmt package uses to receive request events from \nthe newtmgr tool. It must also initialize a task and implement the task handler to\ndispatch events from this queue. The mgmt package executes and processes newtmgr \nrequest events in the context of this task. Your application, however, does \nnot need to create a dedicated event queue and task for this purpose and can use its default \nevent queue. This example uses the application's default event queue. The mgmt package exports the void mgmt_evq_set(struct os_eventq *evq) function that an application must call \nto designate the event queue. Modify main.c to add this call as follows: Add the mgmt/mgmt.h header file: #include mgmt/mgmt.h Add the call to designate the event queue. In the main() function, \nscroll down to the os_eventq_dflt_set( ble_tiny_evq) function call and add the \nfollowing statement below it: mgmt_eventq _set( ble_tiny_evq) The mgmt_eventq_set() function must be called after your application has initialized the event queue and task.", + "title": "Modify the Source" }, { - "location": "/os/tutorials/add_newtmgr/#build-targets", - "text": "Then build the two targets. $ newt build nrf52_boot snip \nApp successfully built: ./bin/nrf52_boot/apps/boot/boot.elf\n$ newt build myble\nCompiling hci_common.c\nCompiling util.c\nArchiving nimble.a\nCompiling os.c snip", - "title": "Build targets" + "location": "/os/tutorials/add_newtmgr/#build-the-targets", + "text": "Build the two targets as follows: $ newt build nrf52_boot snip \nApp successfully built: ./bin/nrf52_boot/apps/boot/boot.elf\n$ newt build myble\nCompiling hci_common.c\nCompiling util.c\nArchiving nimble.a\nCompiling os.c snip", + "title": "Build the Targets" }, { - "location": "/os/tutorials/add_newtmgr/#create-the-app-image", - "text": "Generate a signed application image for the myble target. The version number is arbitrary. $ newt create-image myble 1.0.0\nApp image succesfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img\nBuild manifest: ./bin/makerbeacon/apps/bletiny/manifest.json", - "title": "Create the app image" + "location": "/os/tutorials/add_newtmgr/#create-the-application-image", + "text": "Generate a signed application image for the myble target. You can use any version number you choose. $ newt create-image myble 1.0.0\nApp image successfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img\nBuild manifest: ./bin/makerbeacon/apps/bletiny/manifest.json", + "title": "Create the Application Image" }, { "location": "/os/tutorials/add_newtmgr/#load-the-image", - "text": "Make sure the USB connector is in place and the power LED on the board is lit. Use the Power ON/OFF switch to reset the board after loading the image. $ newt load nrf52_boot\n$ newt load myble", - "title": "Load the image" + "text": "Ensure the USB connector is in place and the power LED on the board is lit. Turn the power switch on your board off, \nthen back on to reset the board after loading the image. $ newt load nrf52_boot\n$ newt load myble", + "title": "Load the Image" }, { - "location": "/os/tutorials/add_newtmgr/#set-up-newtmgr-connection", - "text": "Newtmgr requires a connection profile in order to connect to your board. If you haven't yet, follow the instructions for setting up your connection profile.", - "title": "Set up newtmgr connection" + "location": "/os/tutorials/add_newtmgr/#set-up-a-connection-profile", + "text": "The newtmgr tool requires a connection profile in order to connect to your board. If you have not done so, \nfollow the instructions for setting up your connection profile.", + "title": "Set Up a Connection Profile" }, { - "location": "/os/tutorials/add_newtmgr/#connecting-with-your-app", - "text": "Once you have a connection profile set up, you can connect to your device with newtmgr -c myconn command to run commands agains your app. To test and make sure that newtmgr is working, try the echo command: # newtmgr -c myconn echo hello\n{ r : hello } Newtmgr wraped the response in valid JSON notation. Now let's look at some BLE stats using newtmgr: newtmgr -c myconn stat ble_att\nReturn Code = 0\nStats Name: ble_att\n prep_write_req_tx: 0\n indicate_req_tx: 0\n write_rsp_tx: 0\n find_info_req_tx: 0\n read_rsp_rx: 0\n read_group_type_rsp_tx: 0\n indicate_req_rx: 0\n find_type_value_rsp_tx: 0\n read_mult_rsp_tx: 0\n exec_write_req_rx: 0\n exec_write_rsp_tx: 0\n error_rsp_tx: 0\n find_type_value_rsp_rx: 0\n read_type_req_tx: 0\n read_type_rsp_rx: 0\n read_rsp_tx: 0\n read_blob_req_tx: 0\n mtu_req_tx: 0\n read_req_tx: 0\n read_blob_rsp_tx: 0\n read_mult_req_rx: 0\n write_req_tx: 0\n prep_write_rsp_tx: 0\n indicate_rsp_rx: 0\n writ e_cmd_rx: 0\n exec_write_rsp_rx: 0\n find_info_req_rx: 0\n mtu_rsp_rx: 0\n prep_write_req_rx: 0\n notify_req_rx: 0\n read_group_type_rsp_rx: 0\n prep_write_rsp_rx: 0\n indicate_rsp_tx: 0\n find_info_rsp_tx: 0\n read_blob_req_rx: 0\n read_group_type_req_rx: 0\n write_cmd_tx: 0\n mtu_req_rx: 0\n read_mult_rsp_rx: 0\n write_rsp_rx: 0\n write_req_rx: 0\n read_type_rsp_tx: 0\n read_mult_req_tx: 0\n error_rsp_rx: 0\n find_info_rsp_rx: 0\n find_type_value_req_tx: 0\n read_req_rx: 0\n read_type_req_rx: 0\n notify_req_tx: 0\n mtu_rsp_tx: 0\n find_type_value_req_rx: 0\n read_blob_rsp_rx: 0\n read_group_type_req_tx: 0\n exec_write_req_tx: 0 Your application is now able to communicate via newtmgr!", - "title": "Connecting with your app" + "location": "/os/tutorials/add_newtmgr/#connecting-with-your-application", + "text": "Once you have a connection profile set up, you can connect to your device with newtmgr -c myconn command to run commands in your application. Issue the echo command to ensure that your application is communicating with the newtmgr tool: # newtmgr -c myconn echo hello\nhello Test your application to ensure that it can process a Newt Manager command that is supported by a different package.\nIssue the stat command to see the BLE stats. newtmgr -c myconn stat ble_att\nReturn Code = 0\nStats Name: ble_att\n prep_write_req_tx: 0\n indicate_req_tx: 0\n write_rsp_tx: 0\n find_info_req_tx: 0\n read_rsp_rx: 0\n read_group_type_rsp_tx: 0\n indicate_req_rx: 0\n find_type_value_rsp_tx: 0\n\n ...\n\n read_req_rx: 0\n read_type_req_rx: 0\n notify_req_tx: 0\n mtu_rsp_tx: 0\n find_type_value_req_rx: 0\n read_blob_rsp_rx: 0\n read_group_type_req_tx: 0\n exec_write_req_tx: 0 Your application is now able to communicate with the newtmgr tool.", + "title": "Connecting with Your Application" + }, + { + "location": "/os/tutorials/add_newtmgr/#other-configuration-options", + "text": "This section explains how to customize your application to use other Newt Manager protocol options.", + "title": "Other Configuration Options" + }, + { + "location": "/os/tutorials/add_newtmgr/#newtmgr-framework-transport-protocol-options", + "text": "The newtmgr framework currently supports BLE and serial transport protocols. \nTo configure the transport protocols that are supported, modify the pkg.yml \nand syscfg.yml files as follows: Add the mgmt/newtmgr/transport/ble package to pkg.deps parameter to enable BLE transport. Add the mgmt/newtmgr/transport/nmgr_shell package to \nthe pkg.deps parameter, and add SHELL_TASK: 1 to the syscfg.vals parameter to enable serial transport.", + "title": "Newtmgr Framework Transport Protocol Options" + }, + { + "location": "/os/tutorials/add_newtmgr/#oicmgr-framework-options", + "text": "To use the oicmgr framework instead of the newtmgr framework, modify the pkg.yml and syscfg.yml files \nas follows: Add the mgmt/oicmgr package (instead of the mgmt/newtmgr and mgmt/newtmgr/transport packages \nas described previously) to the pkg.deps parameter. Add OC_SERVER: 1 to the syscfg.vals parameter. Oicmgr supports the IP, serial, and BLE transport protocols. To configure the transport protocols that are supported, \nset the configuration setting values in the syscfg.vals parameter as follows: Add OC_TRANSPORT_IP: 1 to enable IP transport. Add OC_TRANSPORT_GATT: 1 to enable BLE transport. Add OC_TRANSPORT_SERIAL: 1 and SHELL_TASK: 1 to enable serial transport.", + "title": "Oicmgr Framework Options" + }, + { + "location": "/os/tutorials/add_newtmgr/#customize-the-newt-manager-commands-that-your-application-supports", + "text": "We recommend that you only enable support for the Newt Manager commands that your application uses \nto reduce your application code size. To configure the commands that are supported, set the configuration \nsetting values in the syscfg.vals parameter as follows: Add LOG_NEWTMGR: 1 to enable support for the newtmgr log command. Add STATS_NEWTMGR: 1 to enable support for the newtmgr stat command. Add CONFIG_NEWTMGR: 1 to enable support for the newtmgr config command. Add CRASH_TEST_NEWTMGR: 1 to enable support for the newtmgr crash command. Add RUNTEST_NEWTMGR: 1 to enable support for the newtmgr crash command. Notes: When you enable Newt Manager support, using either the newtmgr or oicmgr framework, your application automatically \nsupports the Newt Manager echo , taskstats , mpstats , datetime , and reset commands. These \ncommands cannot be configured individually. The mgmt/imgmgr package does not provide a config uration setting to enable or disable support \nfor the newtmgr image command. Do not specify the package in the pkg.deps parameter if \nyour device has limited flash memory and cannot support Over-The-Air (OTA) firmware upgrades.", + "title": "Customize the Newt Manager Commands that Your Application Supports" }, { "location": "/os/tutorials/add_shell/", @@ -6892,18 +6917,23 @@ }, { "location": "/os/modules/devmgmt/oicmgr/", - "text": "Using the OIC framework\n\n\nApache Mynewt includes support for the OIC interoperability standard through the \noicmgr\n framework. Mynewt defines and exposes oicmgr as an OIC Server resource with the following identity and properties: \n\n\n\n\n\n \n\nURI\n \n\n/omgr\n\n\n\n\n\n\nResource Type\n(rt)\n\n\nx.mynewt.nmgr\n \n\n\n\nInterface\n(if)\n\n\noic.if_rw (default), oic.if.baseline\n\n\n\n\nDiscoverable\n\n\nYes\n\n\n\n\n\nThe newtmgr application tool uses CoAP (Constrained Application Protocol) requests to send commands to oicmgr.\n\nIt sends a CoAP request for \n/omgr\n as follows:\n\n\n\n\nSpecifies the newtmgr command to execute in the URI query string. \n\n\nUses a GET method for newtmgr commands that retreive information \nfrom your application, for example, the \ntaskstats\n and \nmpstats\n commands. \n\n\nUses a PUT method for newtmgr commands that send data to or modify the state of your application,\nfor example, the \necho\n or \ndatetime\n comma nds. \n\n\nSends the CBOR-encoded command request data in the CoAP message payload.\n\n\n\n\nThe \noicmgr\n framework supports transport over BLE, serial, and IP connections to the device.\n\n\nCustomize Newt Manager usage with mgmt\n\n\nThe \nmgmt\n package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the\ncommands that your application uses. The newtmgr commands are divided into management groups.\nA manager package implements the commands for a group. It implements the handlers that \nprocess the commands for the group and registers the handlers with mgmt. \nWhen newtmgr or oicmgr receives a newtmgr command, \nit looks up the handler for the command (by management group id and command id) from mgmt and calls the \nhandler to process the command. \n\n\nThe system level management groups are listed in following table:\n\n\n\n\n\nManagement Group\n\n\nnewtmgr Commands\n\n\nPackage\n\n\n\n\n\n\nMGMT_GROUP_ID_DEFAULT\n\n\necho\n \ntaskstats\n \nmpstats\n \ndatetime\n \nreset\n\n\nmgmt/newtmgr/nmgr_os\n\n\n\n\n\n\nMGMT_GROUP_ID_IMAGE\n\n\nimage\n \n\n\nmgmt/imgmgr\n\n\n\n\n\n\nMGMT_GROUP_ID_STATS\n\n\nstat\n \n\n\nsys/stats\n\n\n\n\n\n\nMGMT_GROUP_ID_CONFIG\n\n\nconfig\n\n\nsys/config\n\n\n\n\n\n\nMGMT_GROUP_ID_LOGS\n\n\nlog\n\n\nsys/log\n\n\n\n\n\n\nMGMT_GROUP_ID_CRASH\n\n\ncrash\n\n\ntest/crash_test\n\n\n\n\n\n\nMGMT_GROUP_ID_RUNTEST\n\n\nruntest\n\n\ntest/runtest\n\n\n\n\n\nBoth newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also\nuse mgmt to add user defined management group commands.", + "text": "Using the OIC Framework\n\n\nApache Mynewt includes support for the OIC interoperability standard through the \noicmgr\n framework. Mynewt defines and exposes oicmgr as an OIC Server resource with the following identity and properties: \n\n\n\n\n\n \n\nURI\n \n\n/omgr\n\n\n\n\n\n\nResource Type\n(rt)\n\n\nx.mynewt.nmgr\n \n\n\n\nInterface\n(if)\n\n\noic.if_rw (default), oic.if.baseline\n\n\n\n\nDiscoverable\n\n\nYes\n\n\n\n\n\nThe newtmgr application tool uses CoAP (Constrained Application Protocol) requests to send commands to oicmgr.\n\nIt sends a CoAP request for \n/omgr\n as follows:\n\n\n\n\nSpecifies the newtmgr command to execute in the URI query string. \n\n\nUses a GET method for newtmgr commands that retreive information \nfrom your application, for example, the \ntaskstats\n and \nmpstats\n commands. \n\n\nUses a PUT method for newtmgr commands that send data to or modify the state of your application,\nfor example, the \necho\n or \ndatetime\n comma nds. \n\n\nSends the CBOR-encoded command request data in the CoAP message payload.\n\n\n\n\nThe \noicmgr\n framework supports transport over BLE, serial, and IP connections to the device.", "title": "Using Newt Manager in OIC framework" }, { "location": "/os/modules/devmgmt/oicmgr/#using-the-oic-framework", "text": "Apache Mynewt includes support for the OIC interoperability standard through the oicmgr framework. Mynewt defines and exposes oicmgr as an OIC Server resource with the following identity and properties: URI /omgr Resource Type (rt) x.mynewt.nmgr Interface (if) oic.if_rw (default), oic.if.baseline Discoverable Yes \nThe newtmgr application tool uses CoAP (Constrained Application Protocol) requests to send commands to oicmgr. \nIt sends a CoAP request for /omgr as follows: Specifies the newtmgr command to execute in the URI query string. Uses a GET method for newtmgr commands that retreive information \nfrom your application, for example, the taskstats and mpstats commands. Uses a PUT method for newtmgr commands that send data to or modify the state of your application,\nfor example, the echo or datetime commands. Sends the CBOR-encoded command request data in the CoAP message payload. The oicmgr framework supports tran sport over BLE, serial, and IP connections to the device.", - "title": "Using the OIC framework" + "title": "Using the OIC Framework" }, { - "location": "/os/modules/devmgmt/oicmgr/#customize-newt-manager-usage-with-mgmt", - "text": "The mgmt package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the\ncommands that your application uses. The newtmgr commands are divided into management groups.\nA manager package implements the commands for a group. It implements the handlers that \nprocess the commands for the group and registers the handlers with mgmt. \nWhen newtmgr or oicmgr receives a newtmgr command, \nit looks up the handler for the command (by management group id and command id) from mgmt and calls the \nhandler to process the command. The system level management groups are listed in following table: Management Group newtmgr Commands Package MGMT_GROUP_ID_DEFAULT echo taskstats mpstats datetime reset mgmt/newtmgr/nmgr_os MGMT_GROUP_ID_IMAGE image mgmt/imgmgr MGMT_GROUP_ID_STATS stat sys/stats MGMT_GROUP_ID_CONFIG config sys/config MGMT_GROUP_ID_LOGS log sys/log MGMT_GROUP_ID_CRASH c rash test/crash_test MGMT_GROUP_ID_RUNTEST runtest test/runtest \nBoth newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also\nuse mgmt to add user defined management group commands.", - "title": "Customize Newt Manager usage with mgmt" + "location": "/os/modules/devmgmt/customize_newtmgr/", + "text": "Customizing Newt Manager Usage with mgmt\n\n\nThe \nmgmt\n package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the\ncommands that your application uses. The newtmgr commands are divided into management groups.\nA manager package implements the commands for a group. It implements the handlers that \nprocess the commands for the group and registers the handlers with mgmt. \nWhen newtmgr or oicmgr receives a newtmgr command, \nit looks up the handler for the command (by management group id and command id) from mgmt and calls the \nhandler to process the command. \n\n\nThe system level management groups are listed in following table:\n\n\n\n\n\nManagement Group\n\n\nnewtmgr Commands\n\n\nPackage\n\n\n\n\n\n\nMGMT_GROUP_ID_DEFAULT\n\n\necho\n \ntaskstats\n \nmpstats\n \ndatetime\n \nreset\n\n\nmgmt/newtmgr/nmgr_os\n\n\n\n\n\n\nMGMT_GROUP_ID_IMAGE\n\n\nimage\n \n\n\nmgmt/imgmgr\n\n\n\n\n\n\nMGMT_GROUP_ID_STATS\ n\n\nstat\n \n\n\nsys/stats\n\n\n\n\n\n\nMGMT_GROUP_ID_CONFIG\n\n\nconfig\n\n\nsys/config\n\n\n\n\n\n\nMGMT_GROUP_ID_LOGS\n\n\nlog\n\n\nsys/log\n\n\n\n\n\n\nMGMT_GROUP_ID_CRASH\n\n\ncrash\n\n\ntest/crash_test\n\n\n\n\n\n\nMGMT_GROUP_ID_RUNTEST\n\n\nrun\n\n\ntest/runtest\n\n\n\n\n\nBoth newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also\nuse mgmt to add user defined management group commands.", + "title": "Customizing Newt Manager Usage with mgmt" + }, + { + "location": "/os/modules/devmgmt/customize_newtmgr/#customizing-newt-manager-usage-with-mgmt", + "text": "The mgmt package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the\ncommands that your application uses. The newtmgr commands are divided into management groups.\nA manager package implements the commands for a group. It implements the handlers that \nprocess the commands for the group and registers the handlers with mgmt. \nWhen newtmgr or oicmgr receives a newtmgr command, \nit looks up the handler for the command (by management group id and command id) from mgmt and calls the \nhandler to process the command. The system level management groups are listed in following table: Management Group newtmgr Commands Package MGMT_GROUP_ID_DEFAULT echo taskstats mpstats datetime reset mgmt/newtmgr/nmgr_os MGMT_GROUP_ID_IMAGE image mgmt/imgmgr MGMT_GROUP_ID_STATS stat sys/stats MGMT_GROUP_ID_CONFIG config sys/config MGMT_GROUP_ID_LOGS log sys/log MGMT_GROUP_ID_CRASH c rash test/crash_test MGMT_GROUP_ID_RUNTEST run test/runtest \nBoth newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also\nuse mgmt to add user defined management group commands.", + "title": "Customizing Newt Manager Usage with mgmt" }, { "location": "/os/modules/imgmgr/imgmgr/", @@ -6932,12 +6962,12 @@ }, { "location": "/os/modules/imgmgr/imgmgr_module_init/", - "text": "imgmgr_module_init \n\n\n int\n imgmgr_module_init(void)\n\n\n\n\n\nRegisters image manager commands with newtmgr. This function should be called while initializing the project, preferably after newtmgr itself has been initialized.\n\n\nArguments\n\n\nN/A\n\n\nReturned values\n\n\nList any values returned.\nError codes?\n\n\nNotes\n\n\nExample\n\n\nint main(int argc, char **argv)\n{\n ...\n\n nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE);\n imgmgr_module_init();\n\n ...\n}", + "text": "imgmgr_module_init \n\n\n void \n imgmgr_module_init(void)\n\n\n\n\n\nRegisters the image manager commands with the \nmgmt\n package. \nsysinit()\n automatically calls this function during\nsystem initialization.\n\n\nArguments\n\n\nN/A\n\n\nReturned values\n\n\nN/A\n\n\nNotes", "title": "imgmgr_module_init" }, { "location": "/os/modules/imgmgr/imgmgr_module_init/#imgmgr_module_init", - "text": "int\n imgmgr_module_init(void) Registers image manager commands with newtmgr. This function should be called while initializing the project, preferably after newtmgr itself has been initialized.", + "text": "void \n imgmgr_module_init(void) Registers the image manager commands with the mgmt package. sysinit() automatically calls this function during\nsystem initialization.", "title": " imgmgr_module_init " }, { @@ -6947,7 +6977,7 @@ }, { "location": "/os/modules/imgmgr/imgmgr_module_init/#returned-values", - "text": "List any values returned.\nError codes?", + "text": "N/A", "title": "Returned values" }, { @@ -6956,11 +6986,6 @@ "title": "Notes" }, { - "location": "/os/modules/imgmgr/imgmgr_module_init/#example", - "text": "int main(int argc, char **argv)\n{\n ...\n\n nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE);\n imgmgr_module_init();\n\n ...\n}", - "title": "Example" - }, - { "location": "/os/modules/imgmgr/imgr_ver_parse/", "text": "imgr_ver_parse \n\n\n int\n imgr_ver_parse(char *src, struct image_version *ver)\n\n\n\n\n\nParses character string containing image version number \nsrc\n and writes that to \nver\n. Version number string should be in format \n.\n.\n.\n. Major and minor numbers should be within range 0-255, revision between 0-65535 and build_number 0-4294967295.\n\n\nArguments\n\n\n\n\n\n\n\n\nArguments\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nsrc\n\n\nPointer to C string that contains version number being parsed\n\n\n\n\n\n\nver\n\n\nImage version number structure containing the returned value\n\n\n\n\n\n\n\n\nReturned values\n\n\n0 on success and \n0 if version number string could not be parsed.\n\n\nNotes\n\n\nNumbers within the string are separated by \n.\n. The first number is the major number, and must be provided. Rest of the numbers (minor etc.) are optional.\n\n\nExample\n\n\nint main(int argc, char **argv)\n{\n struct image_version hdr_ver;\n int rc;\n ... \n\n rc = imgr_ver_parse(argv[3], \nhdr_ver);\n if (rc != 0) {\n print_usage(stderr);\n return 1;\n }\n ...\n}", "title": "imgr_ver_parse" http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/modules/devmgmt/customize_newtmgr/index.html ---------------------------------------------------------------------- diff --git a/develop/os/modules/devmgmt/customize_newtmgr/index.html b/develop/os/modules/devmgmt/customize_newtmgr/index.html new file mode 100644 index 0000000..e88107e --- /dev/null +++ b/develop/os/modules/devmgmt/customize_newtmgr/index.html @@ -0,0 +1,669 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + + <!-- This is broken by doc revisioning. + <link rel="canonical" href="http://mynewt.apache.org/os/modules/devmgmt/customize_newtmgr/"> --> + <link rel="shortcut icon" href="../../../../img/favicon.ico"> + + <title>Customizing Newt Manager Usage with mgmt - Apache Mynewt</title> + + <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet"> + <link rel="stylesheet" href="../../../../css/highlight.css"> + <link href="../../../../css/base.css" rel="stylesheet"> + <link href="../../../../css/custom.css" rel="stylesheet"> + <link href="../../../../css/v2.css" rel="stylesheet"> + <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"> + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> + <link href="../../../../extra.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-72162311-1', 'auto'); + ga('send', 'pageview'); + </script> + + </head> + + + <body class="Customizing Newt Manager Usage with mgmt"> + + + <div class="container"> + <div class="row v2-main-banner"> + <a class="logo-cell" href="/"> + <img class="logo" src="/img/logo.png"> + </a> + <div class="tagline-cell"> + <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4> + </div> + <div class="news-cell"> + <div class="well"> + <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.0.0-b1</a> released (Dec 13, 2016) + </div> + </div> + </div> +</div> + + + + + + + + +<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation"> + <div class="container"> + <!-- Collapsed navigation --> + <div class="navbar-header"> + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + <!-- Main navigation --> + <ul class="nav navbar-nav navbar-right"> + <li + class="" +> + <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a> + </li> + <li + class="important" +> + <a href="/quick-start/">Quick Start</a> + </li> + <li + class="" +> + <a href="/about/">About</a> + </li> + <li + class="" +> + <a href="/talks/">Talks</a> + </li> + <li + class="active" +> + <a href="/latest/os/introduction">Documentation</a> + </li> + <li + class="" +> + <a href="/download/">Download</a> + </li> + <li + class="" +> + <a href="/community/">Community</a> + </li> + <li + class="" +> + <a href="/events/">Events</a> + </li> + </ul> + + <!-- Search, Navigation and Repo links --> + <ul class="nav navbar-nav navbar-right"> + + </ul> + </div> + </div> +</nav> + + + + <div class="container"> + + <div class="row"> + <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary"> + <div class="top"> + <div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get"> + <div class="form-group"> + <input type="text" name="q" class="form-control" placeholder="Search documentation" /> + </div> + </form> + </div> + </div> + <ul class="toc-nav"> + <li class="doc-version"> +<select class="form-control" onchange="if (this.value) window.location.href=this.value"> + + <option + value="/develop/os/introduction" + selected="selected" + > + Version: develop (latest) + </option> + + <option + value="/v0_9_0/os/introduction" + + > + Version: 0.9.0 + </option> + +</select> +</li> + + + + + + + + + + + + + + + + + + + + + + <li ><a href="../../../introduction/">Mynewt Documentation</a> + + + <ul> + + + + + + + + <li ><a href="../../../get_started/get_started/">Basic Setup</a> + + + </li> + + + + + + <li > + <a href="../../../get_started/vocabulary/">Concepts</a> + </li> + + + + + + + + <li ><a href="../../../tutorials/tutorials/">Tutorials</a> + + + </li> + + + + + + + + <li ><a href="../../../os_user_guide/">OS User Guide</a> + + + <ul> + + + + + + + + <li ><a href="../../../core_os/mynewt_os/">OS Core</a> + + + </li> + + + + + + + + <li ><a href="../../../core_os/porting/port_os/">Porting to your Platform</a> + + + </li> + + + + + + + + <li ><a href="../../console/console/">Console</a> + + + </li> + + + + + + + + <li ><a href="../../shell/shell/">Shell</a> + + + </li> + + + + + + + + <li ><a href="../../split/split/">Split Images</a> + + + </li> + + + + + + + + <li ><a href="../../bootloader/bootloader/">Bootloader</a> + + + </li> + + + + + + + + <li><a href=" + + + ../../fs/fs/fs/ + +">File System</a> + + + </li> + + + + + + + + <li ><a href="../../hal/hal/">Hardware Abstraction Layer</a> + + + </li> + + + + + + + + <li ><a href="../../drivers/driver/">Drivers</a> + + + </li> + + + + + + + + <li ><a href="../../testutil/testutil/">Test Utilities</a> + + + </li> + + + + + + + + <li ><a href="../newtmgr/">Device Management with Newt Manager</a> + + + <ul> + + + + + + <li > + <a href="../oicmgr/">Using Newt Manager in OIC framework</a> + </li> + + + + + + <li class="active"> + <a href="./">Customizing Newt Manager Usage with mgmt</a> + </li> + + + + </ul> + + </li> + + + + + + + + <li ><a href="../../imgmgr/imgmgr/">Image Manager</a> + + + </li> + + + + + + <li > + <a href="../../baselibc/">Baselibc library</a> + </li> + + + + + + + + <li ><a href="../../elua/elua/">Embedded Lua</a> + + + </li> + + + + + + + + <li ><a href="../../json/json/">JSON</a> + + + </li> + + + + + + + + <li ><a href="../../fcb/fcb/">Flash Circular Buffer</a> + + + </li> + + + + + + + + <li ><a href="../../stats/stats/">Stats</a> + + + </li> + + + + + + + + <li ><a href="../../logs/logs/">Logs</a> + + + </li> + + + + + + + + <li ><a href="../../sysinitconfig/sysinitconfig/">System Configuration And Initialization</a> + + + </li> + + + + </ul> + + </li> + + + + + + + + <li><a href=" + ../../../../network/ble/ble_intro/ +">BLE User Guide</a> + + + </li> + + + + + + + + <li ><a href="../../../../newt/newt_intro/">Newt Tool Guide</a> + + + </li> + + + + + + + + <li ><a href="../../../../newtmgr/overview/">Newt Manager Guide</a> + + + </li> + + + + </ul> + + </li> + + + + + + + + <li><a href=" + ../../../../faq/how_to_edit_docs/ +">Appendix</a> + + + </li> + + + + </ul> +</div></div> + + <div class="col-md-9" role="main"> + <div class="doc-header"> + <div role="navigation" aria-label="breadcrumbs navigation"> + <ul class="wy-breadcrumbs pull-right"> + <li><a href="/develop/os/introduction">Docs</a></li> + + + + <li>» <a href="../../../os_user_guide/">OS User Guide</a></li> + + + + <li>» <a href="../newtmgr/">Device Management with Newt Manager</a></li> + + + + <li>» Customizing Newt Manager Usage with mgmt</li> + + + + </ul> +</div> + </div> + + <h2 id="customizing-newt-manager-usage-with-mgmt">Customizing Newt Manager Usage with mgmt</h2> +<p>The <strong>mgmt</strong> package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the +commands that your application uses. The newtmgr commands are divided into management groups. +A manager package implements the commands for a group. It implements the handlers that +process the commands for the group and registers the handlers with mgmt. +When newtmgr or oicmgr receives a newtmgr command, +it looks up the handler for the command (by management group id and command id) from mgmt and calls the +handler to process the command. </p> +<p>The system level management groups are listed in following table: +<table style="width:90%" align="center"> +<tt> +<td>Management Group</td> +<td>newtmgr Commands</td> +<td>Package</td> +</tt> +<tr> +<td>MGMT_GROUP_ID_DEFAULT</td> +<td><code>echo</code> <code>taskstats</code> <code>mpstats</code> <code>datetime</code> <code>reset</code></td> +<td>mgmt/newtmgr/nmgr_os</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_IMAGE</td> +<td><code>image</code> </td> +<td>mgmt/imgmgr</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_STATS</td> +<td><code>stat</code> </td> +<td>sys/stats</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_CONFIG</td> +<td><code>config</code></td> +<td>sys/config</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_LOGS</td> +<td><code>log</code></td> +<td>sys/log</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_CRASH</td> +<td><code>crash</code></td> +<td>test/crash_test</td> +</tr> +<tr> +<td>MGMT_GROUP_ID_RUNTEST</td> +<td><code>run</code></td> +<td>test/runtest</td> +</tr> +</table> +Both newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also +use mgmt to add user defined management group commands. </p> + + <div class="row"> + + + + +<ul class="nav nav-pills" style="margin-bottom: 10px"> + <li> + + <a href=../oicmgr/> + <span class="fa fa-arrow-left"></span> + Previous: Using Newt Manager in OIC framework + </a> + + </li> + <li class="pull-right"> + + <a href=../../imgmgr/imgmgr/> + Next: Image Manager + <span class="fa fa-arrow-right"></span> + </a> + + </li> +</ul> + </div> + <footer class="row"> + <div class="col-xs-12"> + + <p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p> + + </div> + <div class="col-xs-12"> + <div class="logos"> + <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache"> + <small class="footnote"> + MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. + </small> + <img src="/img/egg-logo2.png" alt="Apache Incubator" title="Apache Incubator"> + </div> + </div> +</footer> + </div> + </div> + + + </div> + + <script src="../../../../js/jquery-1.10.2.min.js"></script> + <script src="../../../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../../../js/highlight.pack.js"></script> + <script src="../../../../js/base.js"></script> + <script src="../../../../js/custom.js"></script> + + </body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/modules/devmgmt/newtmgr/index.html ---------------------------------------------------------------------- diff --git a/develop/os/modules/devmgmt/newtmgr/index.html b/develop/os/modules/devmgmt/newtmgr/index.html index ecd1991..b464e2d 100644 --- a/develop/os/modules/devmgmt/newtmgr/index.html +++ b/develop/os/modules/devmgmt/newtmgr/index.html @@ -373,6 +373,14 @@ + + + <li > + <a href="../customize_newtmgr/">Customizing Newt Manager Usage with mgmt</a> + </li> + + + </ul> </li> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/modules/devmgmt/oicmgr/index.html ---------------------------------------------------------------------- diff --git a/develop/os/modules/devmgmt/oicmgr/index.html b/develop/os/modules/devmgmt/oicmgr/index.html index f80e4d6..151b3a2 100644 --- a/develop/os/modules/devmgmt/oicmgr/index.html +++ b/develop/os/modules/devmgmt/oicmgr/index.html @@ -373,6 +373,14 @@ + + + <li > + <a href="../customize_newtmgr/">Customizing Newt Manager Usage with mgmt</a> + </li> + + + </ul> </li> @@ -551,7 +559,7 @@ </div> </div> - <h2 id="using-the-oic-framework">Using the OIC framework</h2> + <h2 id="using-the-oic-framework">Using the OIC Framework</h2> <p>Apache Mynewt includes support for the OIC interoperability standard through the <code>oicmgr</code> framework. Mynewt defines and exposes oicmgr as an OIC Server resource with the following identity and properties: <br> <table style="width:50%" align="center"> @@ -581,59 +589,6 @@ for example, the <code>echo</code> or <code>datetime</code> commands. </li> <li>Sends the CBOR-encoded command request data in the CoAP message payload.</li> </ul> <p>The <code>oicmgr</code> framework supports transport over BLE, serial, and IP connections to the device.</p> -<h3 id="customize-newt-manager-usage-with-mgmt">Customize Newt Manager usage with mgmt</h3> -<p>The <strong>mgmt</strong> package enables you to customize Newt Manager (in either the newtmgr or oicmgr framerwork) to only process the -commands that your application uses. The newtmgr commands are divided into management groups. -A manager package implements the commands for a group. It implements the handlers that -process the commands for the group and registers the handlers with mgmt. -When newtmgr or oicmgr receives a newtmgr command, -it looks up the handler for the command (by management group id and command id) from mgmt and calls the -handler to process the command. </p> -<p>The system level management groups are listed in following table: -<table style="width:90%" align="center"> -<tt> -<td>Management Group</td> -<td>newtmgr Commands</td> -<td>Package</td> -</tt> -<tr> -<td>MGMT_GROUP_ID_DEFAULT</td> -<td><code>echo</code> <code>taskstats</code> <code>mpstats</code> <code>datetime</code> <code>reset</code></td> -<td>mgmt/newtmgr/nmgr_os</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_IMAGE</td> -<td><code>image</code> </td> -<td>mgmt/imgmgr</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_STATS</td> -<td><code>stat</code> </td> -<td>sys/stats</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_CONFIG</td> -<td><code>config</code></td> -<td>sys/config</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_LOGS</td> -<td><code>log</code></td> -<td>sys/log</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_CRASH</td> -<td><code>crash</code></td> -<td>test/crash_test</td> -</tr> -<tr> -<td>MGMT_GROUP_ID_RUNTEST</td> -<td><code>runtest</code></td> -<td>test/runtest</td> -</tr> -</table> -Both newtmgr and ocimgr process the MGMT_GROUP_ID_DEFAULT commands by default. You can also -use mgmt to add user defined management group commands. </p> <div class="row"> @@ -651,8 +606,8 @@ use mgmt to add user defined management group commands. </p> </li> <li class="pull-right"> - <a href=../../imgmgr/imgmgr/> - Next: Image Manager + <a href=../customize_newtmgr/> + Next: Customizing Newt Manager Usage with mgmt <span class="fa fa-arrow-right"></span> </a> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/modules/imgmgr/imgmgr/index.html ---------------------------------------------------------------------- diff --git a/develop/os/modules/imgmgr/imgmgr/index.html b/develop/os/modules/imgmgr/imgmgr/index.html index fe7fcd4..ce39df4 100644 --- a/develop/os/modules/imgmgr/imgmgr/index.html +++ b/develop/os/modules/imgmgr/imgmgr/index.html @@ -598,9 +598,9 @@ <ul class="nav nav-pills" style="margin-bottom: 10px"> <li> - <a href=../../devmgmt/oicmgr/> + <a href=../../devmgmt/customize_newtmgr/> <span class="fa fa-arrow-left"></span> - Previous: Using Newt Manager in OIC framework + Previous: Customizing Newt Manager Usage with mgmt </a> </li> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/modules/imgmgr/imgmgr_module_init/index.html ---------------------------------------------------------------------- diff --git a/develop/os/modules/imgmgr/imgmgr_module_init/index.html b/develop/os/modules/imgmgr/imgmgr_module_init/index.html index 70a747e..eba4234 100644 --- a/develop/os/modules/imgmgr/imgmgr_module_init/index.html +++ b/develop/os/modules/imgmgr/imgmgr_module_init/index.html @@ -585,29 +585,18 @@ </div> <h2 id="imgmgr_module_init"><font color="#F2853F" style="font-size:24pt"> imgmgr_module_init </font></h2> -<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> int +<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> void imgmgr_module_init(void) </pre></div> -<p>Registers image manager commands with newtmgr. This function should be called while initializing the project, preferably after newtmgr itself has been initialized.</p> +<p>Registers the image manager commands with the <code>mgmt</code> package. <code>sysinit()</code> automatically calls this function during +system initialization.</p> <h4 id="arguments">Arguments</h4> <p>N/A</p> <h4 id="returned-values">Returned values</h4> -<p>List any values returned. -Error codes?</p> +<p>N/A</p> <h4 id="notes">Notes</h4> -<h4 id="example">Example</h4> -<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">int main(int argc, char **argv) -{ - ... - - nmgr_task_init(NEWTMGR_TASK_PRIO, newtmgr_stack, NEWTMGR_TASK_STACK_SIZE); - imgmgr_module_init(); - - ... -} -</pre></div> <div class="row"> http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/bbba187a/develop/os/tutorials/STM32F303/index.html ---------------------------------------------------------------------- diff --git a/develop/os/tutorials/STM32F303/index.html b/develop/os/tutorials/STM32F303/index.html index 7059d63..d7d4b33 100644 --- a/develop/os/tutorials/STM32F303/index.html +++ b/develop/os/tutorials/STM32F303/index.html @@ -390,7 +390,7 @@ <li > - <a href="../add_newtmgr/">Enable newtmgr in any app</a> + <a href="../add_newtmgr/">Enable Newt Manager in any app</a> </li>
