[{"data":1,"prerenderedAt":1457},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fgateways":488,"\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fgateways-surround":1452},[4,326,444,470],{"title":5,"path":6,"stem":7,"children":8,"page":191},"Docs","\u002Fdocs","1.docs",[9,32,62,116,138,192,262,268,292],{"title":10,"path":11,"stem":12,"children":13,"icon":15},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[14,16,20,24,28],{"title":10,"path":11,"stem":12,"icon":15},"i-lucide-house",{"title":17,"path":18,"stem":19},"Register a User","\u002Fdocs\u002Fgetting-started\u002Fregister-a-user","1.docs\u002F1.getting-started\u002F2.register-a-user",{"title":21,"path":22,"stem":23},"Platform Overview","\u002Fdocs\u002Fgetting-started\u002Fplatform-overview","1.docs\u002F1.getting-started\u002F3.platform-overview",{"title":25,"path":26,"stem":27},"Create an Organisation","\u002Fdocs\u002Fgetting-started\u002Fcreate-an-organisation","1.docs\u002F1.getting-started\u002F4.create-an-organisation",{"title":29,"path":30,"stem":31},"Quickstarts","\u002Fdocs\u002Fgetting-started\u002Fquickstarts","1.docs\u002F1.getting-started\u002F5.quickstarts",{"title":33,"path":34,"stem":35,"children":36},"Organisation Administration","\u002Fdocs\u002Finfuse-cloud","1.docs\u002F2.infuse-cloud\u002F1.index",[37,38,42,46,50,54,58],{"title":33,"path":34,"stem":35},{"title":39,"path":40,"stem":41},"Create or Switch Organisations","\u002Fdocs\u002Finfuse-cloud\u002Fcreate-or-switch-organisations","1.docs\u002F2.infuse-cloud\u002F2.create-or-switch-organisations",{"title":43,"path":44,"stem":45},"Organisation Profile","\u002Fdocs\u002Finfuse-cloud\u002Forganisation-profile","1.docs\u002F2.infuse-cloud\u002F3.organisation-profile",{"title":47,"path":48,"stem":49},"Members and Invitations","\u002Fdocs\u002Finfuse-cloud\u002Fmembers-and-invitations","1.docs\u002F2.infuse-cloud\u002F4.members-and-invitations",{"title":51,"path":52,"stem":53},"Member Roles","\u002Fdocs\u002Finfuse-cloud\u002Fmember-roles","1.docs\u002F2.infuse-cloud\u002F5.member-roles",{"title":55,"path":56,"stem":57},"API Access","\u002Fdocs\u002Finfuse-cloud\u002Fapi-access","1.docs\u002F2.infuse-cloud\u002F6.api-access",{"title":59,"path":60,"stem":61},"Webhooks","\u002Fdocs\u002Finfuse-cloud\u002Fwebhooks","1.docs\u002F2.infuse-cloud\u002F7.webhooks",{"title":63,"path":64,"stem":65,"children":66},"Infuse-IoT Cloud","\u002Fdocs\u002Finfuse-iot-cloud","1.docs\u002F3.infuse-iot-cloud\u002F1.index",[67,68,72,76,80,84,88,92,96,100,104,108,112],{"title":63,"path":64,"stem":65},{"title":69,"path":70,"stem":71},"Provisioning","\u002Fdocs\u002Finfuse-iot-cloud\u002Fprovisioning","1.docs\u002F3.infuse-iot-cloud\u002F10.provisioning",{"title":73,"path":74,"stem":75},"Connectivity","\u002Fdocs\u002Finfuse-iot-cloud\u002Fconnectivity","1.docs\u002F3.infuse-iot-cloud\u002F11.connectivity",{"title":77,"path":78,"stem":79},"Definitions","\u002Fdocs\u002Finfuse-iot-cloud\u002Fdefinitions","1.docs\u002F3.infuse-iot-cloud\u002F12.definitions",{"title":81,"path":82,"stem":83},"Telemetry","\u002Fdocs\u002Finfuse-iot-cloud\u002Ftelemetry","1.docs\u002F3.infuse-iot-cloud\u002F13.telemetry",{"title":85,"path":86,"stem":87},"Console","\u002Fdocs\u002Finfuse-iot-cloud\u002Fconsole","1.docs\u002F3.infuse-iot-cloud\u002F2.console",{"title":89,"path":90,"stem":91},"Concepts","\u002Fdocs\u002Finfuse-iot-cloud\u002Fconcepts","1.docs\u002F3.infuse-iot-cloud\u002F3.concepts",{"title":93,"path":94,"stem":95},"Boards","\u002Fdocs\u002Finfuse-iot-cloud\u002Fboards","1.docs\u002F3.infuse-iot-cloud\u002F4.boards",{"title":97,"path":98,"stem":99},"Networks","\u002Fdocs\u002Finfuse-iot-cloud\u002Fnetworks","1.docs\u002F3.infuse-iot-cloud\u002F5.networks",{"title":101,"path":102,"stem":103},"Devices","\u002Fdocs\u002Finfuse-iot-cloud\u002Fdevices","1.docs\u002F3.infuse-iot-cloud\u002F6.devices",{"title":105,"path":106,"stem":107},"Device Configuration","\u002Fdocs\u002Finfuse-iot-cloud\u002Fdevice-configuration","1.docs\u002F3.infuse-iot-cloud\u002F7.device-configuration",{"title":109,"path":110,"stem":111},"Applications and Releases","\u002Fdocs\u002Finfuse-iot-cloud\u002Fapplications-and-releases","1.docs\u002F3.infuse-iot-cloud\u002F8.applications-and-releases",{"title":113,"path":114,"stem":115},"Commands","\u002Fdocs\u002Finfuse-iot-cloud\u002Fcommands","1.docs\u002F3.infuse-iot-cloud\u002F9.commands",{"title":117,"path":118,"stem":119,"children":120},"Infuse-DB","\u002Fdocs\u002Finfuse-db","1.docs\u002F4.infuse-db\u002F1.index",[121,122,126,130,134],{"title":117,"path":118,"stem":119},{"title":123,"path":124,"stem":125},"Datasets","\u002Fdocs\u002Finfuse-db\u002Fdatasets","1.docs\u002F4.infuse-db\u002F2.datasets",{"title":127,"path":128,"stem":129},"Ingestion","\u002Fdocs\u002Finfuse-db\u002Fingestion","1.docs\u002F4.infuse-db\u002F3.ingestion",{"title":131,"path":132,"stem":133},"Querying","\u002Fdocs\u002Finfuse-db\u002Fquerying","1.docs\u002F4.infuse-db\u002F4.querying",{"title":135,"path":136,"stem":137},"Retention","\u002Fdocs\u002Finfuse-db\u002Fretention","1.docs\u002F4.infuse-db\u002F5.retention",{"title":139,"path":140,"stem":141,"children":142},"Embedded Tools","\u002Fdocs\u002Finfuse-iot-sdk","1.docs\u002F4.infuse-iot-sdk\u002F1.index",[143,144,148],{"title":139,"path":140,"stem":141},{"title":145,"path":146,"stem":147},"Infuse-IoT SDK","\u002Fdocs\u002Finfuse-iot-sdk\u002Fsdk-reference","1.docs\u002F4.infuse-iot-sdk\u002F2.sdk-reference",{"title":149,"path":150,"stem":151,"children":152,"page":191},"Python Tools","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools",[153,156,159,163,167,171,175,179,183,187],{"title":149,"path":154,"stem":155},"\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fpython-tools","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F01.python-tools",{"title":113,"path":157,"stem":158},"\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fcommands","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F02.commands",{"title":160,"path":161,"stem":162},"Credential Management","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fcredentials","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F03.credentials",{"title":164,"path":165,"stem":166},"Gateways","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fgateways","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F04.gateways",{"title":168,"path":169,"stem":170},"Infuse-IoT Cloud support","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fcloud","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F05.cloud",{"title":172,"path":173,"stem":174},"Provision Hardware","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fhardware-provisioning","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F06.hardware-provisioning",{"title":176,"path":177,"stem":178},"TDF Viewers","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Ftdf-viewers","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F07.tdf-viewers",{"title":180,"path":181,"stem":182},"RPC Runners","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Frpc-runner","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F08.rpc-runner",{"title":184,"path":185,"stem":186},"Over-the-Air Upgrades","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fota-upgrades","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F09.ota-upgrades",{"title":188,"path":189,"stem":190},"Bluetooth Log Viewer","\u002Fdocs\u002Finfuse-iot-sdk\u002Fpython-tools\u002Fble-log-viewer","1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F10.ble-log-viewer",false,{"title":193,"path":194,"stem":195,"children":196},"Infuse-Marketplace","\u002Fdocs\u002Fmarketplace","1.docs\u002F5.marketplace\u002F1.index",[197,198,202,206,232],{"title":193,"path":194,"stem":195},{"title":199,"path":200,"stem":201},"Infuse-Marketplace Instances","\u002Fdocs\u002Fmarketplace\u002Finstances","1.docs\u002F5.marketplace\u002F2.instances",{"title":203,"path":204,"stem":205},"Infuse-Marketplace Roles","\u002Fdocs\u002Fmarketplace\u002Froles","1.docs\u002F5.marketplace\u002F3.roles",{"title":207,"path":208,"stem":209,"children":210},"Infuse-Marketplace Developers","\u002Fdocs\u002Fmarketplace\u002Fdevelopers","1.docs\u002F5.marketplace\u002Fdevelopers\u002F1.index",[211,212,216,220,224,228],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Create an App or Algorithm","\u002Fdocs\u002Fmarketplace\u002Fdevelopers\u002Fcreate-product","1.docs\u002F5.marketplace\u002Fdevelopers\u002F2.create-product",{"title":217,"path":218,"stem":219},"Upload Assets","\u002Fdocs\u002Fmarketplace\u002Fdevelopers\u002Fupload-assets","1.docs\u002F5.marketplace\u002Fdevelopers\u002F3.upload-assets",{"title":221,"path":222,"stem":223},"Releases and Versions","\u002Fdocs\u002Fmarketplace\u002Fdevelopers\u002Freleases-and-versions","1.docs\u002F5.marketplace\u002Fdevelopers\u002F4.releases-and-versions",{"title":225,"path":226,"stem":227},"Pricing","\u002Fdocs\u002Fmarketplace\u002Fdevelopers\u002Fpricing","1.docs\u002F5.marketplace\u002Fdevelopers\u002F5.pricing",{"title":229,"path":230,"stem":231},"Publish an App or Algorithm","\u002Fdocs\u002Fmarketplace\u002Fdevelopers\u002Fpublish-product","1.docs\u002F5.marketplace\u002Fdevelopers\u002F6.publish-product",{"title":233,"path":234,"stem":235,"children":236},"Infuse-Marketplace Providers","\u002Fdocs\u002Fmarketplace\u002Fproviders","1.docs\u002F5.marketplace\u002Fproviders\u002F1.index",[237,238,242,246,250,254,258],{"title":233,"path":234,"stem":235},{"title":239,"path":240,"stem":241},"Discover Apps and Algorithms","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Fdiscover-products","1.docs\u002F5.marketplace\u002Fproviders\u002F2.discover-products",{"title":243,"path":244,"stem":245},"Create and Manage Listings","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Fcreate-listings","1.docs\u002F5.marketplace\u002Fproviders\u002F3.create-listings",{"title":247,"path":248,"stem":249},"Build a Storefront","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Fbuild-a-storefront","1.docs\u002F5.marketplace\u002Fproviders\u002F4.build-a-storefront",{"title":251,"path":252,"stem":253},"Checkout Flow","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Fcheckout-flow","1.docs\u002F5.marketplace\u002Fproviders\u002F5.checkout-flow",{"title":255,"path":256,"stem":257},"Purchases","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Fpurchases","1.docs\u002F5.marketplace\u002Fproviders\u002F6.purchases",{"title":259,"path":260,"stem":261},"Install Purchased Apps and Algorithms","\u002Fdocs\u002Fmarketplace\u002Fproviders\u002Finstall-purchased-products","1.docs\u002F5.marketplace\u002Fproviders\u002F7.install-purchased-products",{"title":263,"path":264,"stem":265,"children":266},"Infuse-Analytics","\u002Fdocs\u002Finfuse-analytics","1.docs\u002F6.infuse-analytics\u002F1.index",[267],{"title":263,"path":264,"stem":265},{"title":89,"path":269,"stem":270,"children":271},"\u002Fdocs\u002Fconcepts","1.docs\u002F7.concepts\u002F1.index",[272,273,277,281,284,288],{"title":89,"path":269,"stem":270},{"title":274,"path":275,"stem":276},"Organisations","\u002Fdocs\u002Fconcepts\u002Forganisations","1.docs\u002F7.concepts\u002F2.organisations",{"title":278,"path":279,"stem":280},"Products","\u002Fdocs\u002Fconcepts\u002Fproducts","1.docs\u002F7.concepts\u002F3.products",{"title":101,"path":282,"stem":283},"\u002Fdocs\u002Fconcepts\u002Fdevices","1.docs\u002F7.concepts\u002F5.devices",{"title":285,"path":286,"stem":287},"Entitlements","\u002Fdocs\u002Fconcepts\u002Fentitlements","1.docs\u002F7.concepts\u002F6.entitlements",{"title":289,"path":290,"stem":291},"Infuse-Marketplace Model","\u002Fdocs\u002Fconcepts\u002Fmarketplace-model","1.docs\u002F7.concepts\u002F7.marketplace-model",{"title":293,"path":294,"stem":295,"children":296},"IAM and Access","\u002Fdocs\u002Fiam-and-access","1.docs\u002F8.iam-and-access\u002F1.index",[297,298,302,306,310,314,318,322],{"title":293,"path":294,"stem":295},{"title":299,"path":300,"stem":301},"Users, Groups, and Roles","\u002Fdocs\u002Fiam-and-access\u002Fusers-groups-and-roles","1.docs\u002F8.iam-and-access\u002F2.users-groups-and-roles",{"title":303,"path":304,"stem":305},"Permissions and Resource Limits","\u002Fdocs\u002Fiam-and-access\u002Fpermissions","1.docs\u002F8.iam-and-access\u002F3.permissions",{"title":307,"path":308,"stem":309},"Service Accounts","\u002Fdocs\u002Fiam-and-access\u002Fservice-accounts","1.docs\u002F8.iam-and-access\u002F4.service-accounts",{"title":311,"path":312,"stem":313},"API Keys","\u002Fdocs\u002Fiam-and-access\u002Fapi-tokens","1.docs\u002F8.iam-and-access\u002F5.api-tokens",{"title":315,"path":316,"stem":317},"Token Exchange","\u002Fdocs\u002Fiam-and-access\u002Ftoken-exchange","1.docs\u002F8.iam-and-access\u002F6.token-exchange",{"title":319,"path":320,"stem":321},"Rotate and Revoke Credentials","\u002Fdocs\u002Fiam-and-access\u002Frotate-and-revoke-credentials","1.docs\u002F8.iam-and-access\u002F7.rotate-and-revoke-credentials",{"title":323,"path":324,"stem":325},"Troubleshooting Auth","\u002Fdocs\u002Fiam-and-access\u002Ftroubleshooting-auth","1.docs\u002F8.iam-and-access\u002F8.troubleshooting-auth",{"title":327,"path":328,"stem":329,"children":330},"Guides","\u002Fguides","2.guides\u002F1.index",[331,332,342,352,424,434],{"title":327,"path":328,"stem":329},{"title":333,"path":334,"stem":335,"children":336},"Access Guides","\u002Fguides\u002Faccess","2.guides\u002Faccess\u002F1.index",[337,338],{"title":333,"path":334,"stem":335},{"title":339,"path":340,"stem":341},"Create an API Key","\u002Fguides\u002Faccess\u002Fcreate-an-api-token","2.guides\u002Faccess\u002F2.create-an-api-token",{"title":343,"path":344,"stem":345,"children":346},"Data Guides","\u002Fguides\u002Fdata","2.guides\u002Fdata\u002F1.index",[347,348],{"title":343,"path":344,"stem":345},{"title":349,"path":350,"stem":351},"Stream IoT Data to Infuse-DB","\u002Fguides\u002Fdata\u002Fstream-iot-data-to-infuse-db","2.guides\u002Fdata\u002F2.stream-iot-data-to-infuse-db",{"title":353,"path":354,"stem":355,"children":356},"Embedded SDK Guides","\u002Fguides\u002Fembedded-iot","2.guides\u002Fembedded-iot\u002F1.index",[357,358,362,384,394],{"title":353,"path":354,"stem":355},{"title":359,"path":360,"stem":361},"Python Tools Setup & Install","\u002Fguides\u002Fembedded-iot\u002Fpython-setup-install","2.guides\u002Fembedded-iot\u002F2.python-setup-install",{"title":363,"path":364,"stem":365,"children":366},"Creating Embedded Algorithms","\u002Fguides\u002Fembedded-iot\u002Fembedded-algorithms","2.guides\u002Fembedded-iot\u002Fembedded-algorithms\u002F1.index",[367,368,372,376,380],{"title":363,"path":364,"stem":365},{"title":369,"path":370,"stem":371},"Data collection","\u002Fguides\u002Fembedded-iot\u002Fembedded-algorithms\u002Fdata-collection","2.guides\u002Fembedded-iot\u002Fembedded-algorithms\u002F2.data-collection",{"title":373,"path":374,"stem":375},"Dataset Creation","\u002Fguides\u002Fembedded-iot\u002Fembedded-algorithms\u002Fdataset-creation","2.guides\u002Fembedded-iot\u002Fembedded-algorithms\u002F3.dataset-creation",{"title":377,"path":378,"stem":379},"Training Models","\u002Fguides\u002Fembedded-iot\u002Fembedded-algorithms\u002Ftraining-models","2.guides\u002Fembedded-iot\u002Fembedded-algorithms\u002F4.training-models",{"title":381,"path":382,"stem":383},"Deploying Models","\u002Fguides\u002Fembedded-iot\u002Fembedded-algorithms\u002Fdeploy","2.guides\u002Fembedded-iot\u002Fembedded-algorithms\u002F5.deploy",{"title":385,"path":386,"stem":387,"children":388},"Hardware Guides","\u002Fguides\u002Fembedded-iot\u002Fhardware","2.guides\u002Fembedded-iot\u002Fhardware\u002F1.index",[389,390],{"title":385,"path":386,"stem":387},{"title":391,"path":392,"stem":393},"nRF54L15 Tag","\u002Fguides\u002Fembedded-iot\u002Fhardware\u002Fnrf54l15-tag","2.guides\u002Fembedded-iot\u002Fhardware\u002F2.nrf54l15-tag",{"title":395,"path":396,"stem":397,"children":398},"How To's","\u002Fguides\u002Fembedded-iot\u002Fhow-tos","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F1.index",[399,400,404,408,412,416,420],{"title":395,"path":396,"stem":397},{"title":401,"path":402,"stem":403},"Device Provisioning","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Fprovision-a-tag","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F01.provision-a-tag",{"title":405,"path":406,"stem":407},"Setup and Flash a gateway","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Fflash-a-gateway","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F02.flash-a-gateway",{"title":409,"path":410,"stem":411},"Connecting to a gateway","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Fconnect-gateway","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F03.connect-gateway",{"title":413,"path":414,"stem":415},"How to physically connect a device","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Fdevice-logs","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F03.device-logs",{"title":417,"path":418,"stem":419},"Configuring the default network","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Fconfigure-network","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F04.configure-network",{"title":421,"path":422,"stem":423},"Device's Infuse ID","\u002Fguides\u002Fembedded-iot\u002Fhow-tos\u002Ftag-infuse-id","2.guides\u002Fembedded-iot\u002Fhow-tos\u002F05.tag-infuse-id",{"title":425,"path":426,"stem":427,"children":428},"IoT Guides","\u002Fguides\u002Fiot","2.guides\u002Fiot\u002F1.index",[429,430],{"title":425,"path":426,"stem":427},{"title":431,"path":432,"stem":433},"Connect an IoT Device","\u002Fguides\u002Fiot\u002Fconnect-a-device","2.guides\u002Fiot\u002F2.connect-a-device",{"title":435,"path":436,"stem":437,"children":438},"Infuse-Marketplace Guides","\u002Fguides\u002Fmarketplace","2.guides\u002Fmarketplace\u002F1.index",[439,440],{"title":435,"path":436,"stem":437},{"title":441,"path":442,"stem":443},"Build an Infuse-Marketplace Storefront","\u002Fguides\u002Fmarketplace\u002Fbuild-a-storefront","2.guides\u002Fmarketplace\u002F2.build-a-storefront",{"title":445,"path":446,"stem":447,"children":448},"API Reference","\u002Fapi-reference","3.api-reference\u002F1.index",[449,450,454,458,462,466],{"title":445,"path":446,"stem":447},{"title":451,"path":452,"stem":453},"Admin API","\u002Fapi-reference\u002Fcloud","3.api-reference\u002F2.cloud",{"title":455,"path":456,"stem":457},"Infuse-Marketplace API","\u002Fapi-reference\u002Fmarketplace","3.api-reference\u002F3.marketplace",{"title":459,"path":460,"stem":461},"IAM API","\u002Fapi-reference\u002Fiam","3.api-reference\u002F4.iam",{"title":463,"path":464,"stem":465},"Infuse-IoT Cloud API","\u002Fapi-reference\u002Fiot","3.api-reference\u002F5.iot",{"title":467,"path":468,"stem":469},"Infuse-DB API","\u002Fapi-reference\u002Fdb","3.api-reference\u002F6.db",{"title":471,"path":472,"stem":473,"children":474},"Resources","\u002Fresources","4.resources\u002F1.index",[475,476,480,484],{"title":471,"path":472,"stem":473},{"title":477,"path":478,"stem":479},"SDKs","\u002Fresources\u002Fsdks","4.resources\u002F2.sdks",{"title":481,"path":482,"stem":483},"OpenAPI Specs","\u002Fresources\u002Fopenapi-specs","4.resources\u002F3.openapi-specs",{"title":485,"path":486,"stem":487},"Examples","\u002Fresources\u002Fexamples","4.resources\u002F4.examples",{"id":489,"title":164,"body":490,"description":1446,"extension":1447,"links":1448,"meta":1449,"navigation":751,"path":165,"seo":1450,"stem":166,"__hash__":1451},"docs\u002F1.docs\u002F4.infuse-iot-sdk\u002Fpython-tools\u002F04.gateways.md",{"type":491,"value":492,"toc":1428},"minimark",[493,497,500,553,559,562,582,587,590,600,615,626,662,671,674,682,686,696,892,902,913,916,977,981,995,999,1002,1315,1365,1373,1386,1395,1403,1412,1424],[494,495,496],"p",{},"The python gateway tools act as a bridge between local Infuse-IoT devices and other tools running on the computer.\nCurrently the gateways support interaction with devices connected directly via a serial port,\nor directly over Bluetooth.",[494,498,499],{},"Bluetooth connectivity can be provided:",[501,502,503,523],"ul",{},[504,505,506,507,522],"li",{},"Via an Infuse-IoT powered embedded device with the ",[508,509,513,518],"code",{"className":510,"language":511,"style":512},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bash","",[514,515,517],"span",{"class":516},"sBMFI","infuse",[514,519,521],{"class":520},"sfazB"," gateway"," tool. (Preferred) or",[504,524,525,526,533,534],{},"Directly via your machines native PC Bluetooth libraries with the ",[508,527,528,530],{"className":510,"language":511,"style":512},[514,529,517],{"class":516},[514,531,532],{"class":520}," native_bt"," tool\n",[535,536,537],"note",{},[494,538,539,540,546,547,552],{},"Using ",[508,541,542,544],{"className":510,"language":511,"style":512},[514,543,517],{"class":516},[514,545,532],{"class":520}," requires compatible hardware with Bluetooth 5.0 and support advertising extension capabilities.\nSee ",[548,549,551],"a",{"href":550},"#native-bluetooth","below"," for more details.",[554,555],"mermaid",{":config":556,":toolbar":557,"code":558},"config","{\"title\":\"How Python tools use gateway connections to connect to Infuse-IoT devices\"}","---%0Atoolbar%3A%0A%20%20title%3A%20How%20Python%20tools%20use%20gateway%20connections%20to%20connect%20to%20Infuse-IoT%20devices%0A---%0Aflowchart%20LR%0A%20%20%20%20Tool%5B%22Python%20tool%3Cbr%2F%3E(RPC%20runner%2C%20OTA%20upgrade%2C%20etc.)%22%5D%0A%20%20%20%20Gateway%5B%22infuse%20gateway%22%5D%0A%20%20%20%20DeviceGateway%5B%22Infuse-IoT%20device%3Cbr%2F%3Erunning%20gateway_usb%22%5D%0A%20%20%20%20NativeBT%5B%22infuse%20native_bt%22%5D%0A%20%20%20%20DeviceBT%5B%22Infuse-IoT%20device%22%5D%0A%0A%20%20%20%20Tool%20%3C--%3E%7CUDP%7C%20Gateway%0A%20%20%20%20Gateway%20%3C--%3E%7CSerial%7C%20DeviceGateway%0A%20%20%20%20Gateway%20%3C--%3E%7CRTT%7C%20DeviceGateway%0A%20%20%20%20Gateway%20%3C--%3E%7CPyOCD%7C%20DeviceGateway%0A%20%20%20%20DeviceGateway%20%3C--%3E%7CBluetooth%7C%20DeviceBT%0A%20%20%20%20Tool%20%3C--%3E%7CUDP%7C%20NativeBT%0A%20%20%20%20NativeBT%20%3C--%3E%7CBluetooth%7C%20DeviceBT",[494,560,561],{},"Both tools are designed to run persistently in the background, managing connections to remote devices,\nforwarding packets out to Infuse-IoT hardware and broadcasting received data on localhost multicast UDP sockets.",[535,563,564],{},[494,565,566,567,571,572,576,577,581],{},"Gateway tools rely on an Infuse-IoT API Key and any ",[548,568,570],{"href":569},"credentials#network-keys","Custom Network Keys","\nand ",[548,573,575],{"href":574},"credentials#custom-content","definitions"," being provided through the\n",[548,578,580],{"href":579},"credentials","Credentials"," command.",[583,584,586],"h2",{"id":585},"common-functionality","Common Functionality",[494,588,589],{},"Both gateway tools have common configuration options",[591,592,594,599],"h3",{"id":593},"server-port-server-port",[508,595,596],{"className":510,"language":511,"style":512},[514,597,598],{"class":516},"--server-port",": Server Port",[494,601,602,603,607,608,614],{},"The ",[508,604,605],{"className":510,"language":511,"style":512},[514,606,598],{"class":516}," argument is used to run more than one instance of\n",[508,609,610,612],{"className":510,"language":511,"style":512},[514,611,517],{"class":516},[514,613,521],{"class":520}," concurrently on the same machine.",[616,617,618],"tip",{},[494,619,620,621,625],{},"When specifying ",[508,622,623],{"className":510,"language":511,"style":512},[514,624,598],{"class":516},", the port must be an odd number.",[627,628,630],"accordion",{"sync":629},"server-port",[631,632,634,644,647,659],"accordion-item",{"label":633},"More Details",[494,635,636,637,643],{},"The Gateway tools act as a bridge facilitating multiple other tools to access Infuse-IoT devices.\nIt does so by utilising socket communications (multicast UDP). As a result of multicast UDP behaviours,\nby default only one instance of ",[508,638,639,641],{"className":510,"language":511,"style":512},[514,640,517],{"class":516},[514,642,521],{"class":520}," can run at a time.",[554,645],{":config":556,":toolbar":557,"code":646},"---%0A%20%20%20%20toolbar%3A%0A%20%20%20%20%20%20title%3A%20How%20Python%20tools%20use%20gateway%20connections%20to%20connect%20to%20Infuse-IoT%20devices%0A%20%20%20%20---%0A%20%20%20%20flowchart%20LR%0A%20%20%20%20%20%20%20%20RpcTool%5B%22Tool%3A%20RPC%20runner%22%5D%0A%20%20%20%20%20%20%20%20OtaTool%5B%22Tool%3A%20OTA%20upgrade%22%5D%0A%20%20%20%20%20%20%20%20SyncTool%5B%22Tool%3A%20Data%20Logger%20Sync%22%5D%0A%20%20%20%20%20%20%20%20UdpPort%5B%22Multicast%20%3Cbr%3EUDP%20Port%3A%208751%3Cbr%3E(and%208752)%22%5D%0A%20%20%20%20%20%20%20%20Gateway1%5B%22infuse%20gateway%22%5D%0A%20%20%20%20%20%20%20%20Gateway2%5B%22infuse%20gateway%22%5D%0A%20%20%20%20%20%20%20%20DeviceGateway1%5B%22Device1%22%5D%0A%20%20%20%20%20%20%20%20DeviceGateway2%5B%22Device2%22%5D%0A%0A%20%20%20%20%20%20%20%20RpcTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20OtaTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20SyncTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20UdpPort%20%3C--%3E%20%7C%20Bind%20%7C%20Gateway1%0A%20%20%20%20%20%20%20%20UdpPort%20x--%20%22%60**Bind%3Cbr%3EFail**%60%22%20--x%20Gateway2%0A%20%20%20%20%20%20%20%20Gateway1%20%3C--%3E%20DeviceGateway1%0A%20%20%20%20%20%20%20%20Gateway2%20%3C--%3E%20DeviceGateway2",[494,648,602,649,653,654,658],{},[508,650,651],{"className":510,"language":511,"style":512},[514,652,598],{"class":516}," argument can be added to enable the operation multiple gateways concurrently on the same machine.\nBy providing a different server port, the gateway can run independently of other gateway scripts at the same time.\nSimilarly, additional tools can be supplied with a ",[508,655,656],{"className":510,"language":511,"style":512},[514,657,598],{"class":516}," argument to use a different gateway instance\n(instead of the default).",[554,660],{":config":556,":toolbar":557,"code":661},"---%0A%20%20%20%20toolbar%3A%0A%20%20%20%20%20%20title%3A%20How%20Python%20tools%20use%20gateway%20connections%20to%20connect%20to%20Infuse-IoT%20devices%0A%20%20%20%20---%0A%20%20%20%20flowchart%20LR%0A%20%20%20%20%20%20%20%20RpcTool%5B%22Tool%3A%20RPC%20runner%22%5D%0A%20%20%20%20%20%20%20%20RpcTool2%5B%22Tool%3A%20RPC%20runner%20(2)%22%5D%0A%20%20%20%20%20%20%20%20OtaTool%5B%22Tool%3A%20OTA%20upgrade%22%5D%0A%20%20%20%20%20%20%20%20SyncTool%5B%22Tool%3A%20Data%20Logger%20Sync%22%5D%0A%20%20%20%20%20%20%20%20UdpPort%5B%22Multicast%20%3Cbr%3EUDP%20Port%3A%208751%3Cbr%3E(and%208752)%22%5D%0A%20%20%20%20%20%20%20%20UdpPort2%5B%22Multicast%20%3Cbr%3EUDP%20Port%3A%208753%3Cbr%3E(and%208754)%22%5D%0A%20%20%20%20%20%20%20%20Gateway1%5B%22infuse%20gateway%22%5D%0A%20%20%20%20%20%20%20%20Gateway2%5B%22infuse%20gateway%22%5D%0A%20%20%20%20%20%20%20%20DeviceGateway1%5B%22Device1%22%5D%0A%20%20%20%20%20%20%20%20DeviceGateway2%5B%22Device2%22%5D%0A%0A%20%20%20%20%20%20%20%20RpcTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20RpcTool2%20%3C--%3E%20UdpPort2%0A%20%20%20%20%20%20%20%20OtaTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20SyncTool%20%3C--%3E%20UdpPort%0A%20%20%20%20%20%20%20%20UdpPort%20%3C--%3E%20%7C%20Bind%20%7C%20Gateway1%0A%20%20%20%20%20%20%20%20UdpPort2%20%3C--%3E%20%7C%20Bind%20%7C%20Gateway2%0A%20%20%20%20%20%20%20%20Gateway1%20%3C--%3E%20DeviceGateway1%0A%20%20%20%20%20%20%20%20Gateway2%20%3C--%3E%20DeviceGateway2",[591,663,665,670],{"id":664},"root-key-file",[508,666,667],{"className":510,"language":511,"style":512},[514,668,669],{"class":516},"--root",": Key File",[494,672,673],{},"In some instances, Tags utilise a Root Identity that is different from that provided by the Infuse-IoT Cloud.\nIn such instances, utilising the default Cloud for authentication will cause cryptography to fail.",[494,675,676,677,681],{},"As a result, a root identity certificate can be provided to override the default Cloud identity with\nthe ",[508,678,679],{"className":510,"language":511,"style":512},[514,680,669],{"class":516}," argument.",[583,683,685],{"id":684},"native-bluetooth","Native Bluetooth",[494,687,688,689,695],{},"Native Bluetooth support is supported through the cross platform ",[548,690,694],{"href":691,"rel":692},"https:\u002F\u002Fgithub.com\u002Fhbldh\u002Fbleak",[693],"nofollow","bleak"," package.",[697,698,700],"pre",{"className":510,"code":699,"language":511,"meta":512,"style":512},"> infuse native_bt -h\nusage: infuse native_bt [-h] [--root ROOT] [--server-port SERVER_SOCK]\n\nUse the local Bluetooth adapter for Bluetooth interaction\n\noptions:\n  -h, --help            show this help message and exit\n  --root ROOT           Root identity certificate to use instead of cloud\n  --server-port SERVER_SOCK\n                        Alternate port to use for Gateway connections (default\n                        8751)\n",[508,701,702,714,746,753,779,784,790,817,850,859,883],{"__ignoreMap":512},[514,703,706,710],{"class":704,"line":705},"line",1,[514,707,709],{"class":708},"sMK4o",">",[514,711,713],{"class":712},"sTEyZ"," infuse native_bt -h\n",[514,715,717,720,723,725,728,731,734,737,740,743],{"class":704,"line":716},2,[514,718,719],{"class":516},"usage:",[514,721,722],{"class":520}," infuse",[514,724,532],{"class":520},[514,726,727],{"class":712}," [-h] ",[514,729,730],{"class":708},"[",[514,732,733],{"class":712},"--root ROOT",[514,735,736],{"class":708},"]",[514,738,739],{"class":708}," [",[514,741,742],{"class":712},"--server-port SERVER_SOCK",[514,744,745],{"class":708},"]\n",[514,747,749],{"class":704,"line":748},3,[514,750,752],{"emptyLinePlaceholder":751},true,"\n",[514,754,756,759,762,765,768,771,774,776],{"class":704,"line":755},4,[514,757,758],{"class":516},"Use",[514,760,761],{"class":520}," the",[514,763,764],{"class":520}," local",[514,766,767],{"class":520}," Bluetooth",[514,769,770],{"class":520}," adapter",[514,772,773],{"class":520}," for",[514,775,767],{"class":520},[514,777,778],{"class":520}," interaction\n",[514,780,782],{"class":704,"line":781},5,[514,783,752],{"emptyLinePlaceholder":751},[514,785,787],{"class":704,"line":786},6,[514,788,789],{"class":516},"options:\n",[514,791,793,796,799,802,805,808,811,814],{"class":704,"line":792},7,[514,794,795],{"class":516},"  -h,",[514,797,798],{"class":520}," --help",[514,800,801],{"class":520},"            show",[514,803,804],{"class":520}," this",[514,806,807],{"class":520}," help",[514,809,810],{"class":520}," message",[514,812,813],{"class":520}," and",[514,815,816],{"class":520}," exit\n",[514,818,820,823,826,829,832,835,838,841,844,847],{"class":704,"line":819},8,[514,821,822],{"class":516},"  --root",[514,824,825],{"class":520}," ROOT",[514,827,828],{"class":520},"           Root",[514,830,831],{"class":520}," identity",[514,833,834],{"class":520}," certificate",[514,836,837],{"class":520}," to",[514,839,840],{"class":520}," use",[514,842,843],{"class":520}," instead",[514,845,846],{"class":520}," of",[514,848,849],{"class":520}," cloud\n",[514,851,853,856],{"class":704,"line":852},9,[514,854,855],{"class":516},"  --server-port",[514,857,858],{"class":520}," SERVER_SOCK\n",[514,860,862,865,868,870,872,874,877,880],{"class":704,"line":861},10,[514,863,864],{"class":516},"                        Alternate",[514,866,867],{"class":520}," port",[514,869,837],{"class":520},[514,871,840],{"class":520},[514,873,773],{"class":520},[514,875,876],{"class":520}," Gateway",[514,878,879],{"class":520}," connections",[514,881,882],{"class":712}," (default\n",[514,884,886,889],{"class":704,"line":885},11,[514,887,888],{"class":516},"                        8751",[514,890,891],{"class":712},")\n",[893,894,895],"caution",{},[494,896,897,898,901],{},"Your machine must support the required Bluetooth Hardware Requirements to use ",[508,899,900],{},"infuse native_bt",".",[903,904,905],"warning",{},[494,906,907,912],{},[508,908,909],{"className":510,"language":511,"style":512},[514,910,911],{"class":516},"native_bt"," is convenient, however uses the Operating System's managed Bluetooth APIs.\nAs a result, OS power saving policies can and will interfer with the tool's functionality.",[494,914,915],{},"Follow the instructions below to check compatibility.",[917,918,920,942,965],"tabs",{"sync":919},"OS",[921,922,925,928,937],"tabs-item",{"icon":923,"label":924},"i-simple-icons-linux","Ubuntu",[494,926,927],{},"Ensure your Bluetooth Adaptor supports Bluetooth 5.0 and advertising extensions.",[616,929,930],{},[494,931,932,933,936],{},"Some older Bluetooth hardware might be compatible, but might not work out of the box.",[934,935],"br",{},"\nUpdating Bluetooth Drivers may help.",[893,938,939],{},[494,940,941],{},"Native Bluetooth is not available when using WSL.\nUtilise the Infuse-IoT powered hardware options instead.",[921,943,946,949,952],{"icon":944,"label":945},"i-simple-icons:apple","macOS",[494,947,948],{},"All Arm Silicon\u002Faarch64 macOS devices support the Bluetooth requirements.",[494,950,951],{},"Support on Intel Mac devices will depend on hardware compatibility.\nAs a result this has not been tested or supported.",[535,953,954],{},[494,955,956,957,959,960],{},"On MacOS, ",[508,958,911],{}," currently relies on an\n",[548,961,964],{"href":962,"rel":963},"https:\u002F\u002Fbleak.readthedocs.io\u002Fen\u002Flatest\u002Fbackends\u002Fmacos.html#bleak.backends.corebluetooth.scanner.CBScannerArgs.use_bdaddr",[693],"undocumented IOBluetooth API",[921,966,969,971],{"icon":967,"label":968},"i-simple-icons-windows","Windows",[494,970,927],{},[616,972,973],{},[494,974,932,975,936],{},[934,976],{},[583,978,980],{"id":979},"embedded-devices","Embedded Devices",[494,982,983,984,990,991,994],{},"To create a bridge to a physically connected device, use the ",[508,985,986,988],{"className":510,"language":511,"style":512},[514,987,517],{"class":516},[514,989,521],{"class":520}," command.\nThis command can be used both for firmrware applications that forward data over Bluetooth (such as ",[508,992,993],{},"infuse-sdk\u002Fapps\u002Fgateway_usb",")\nor devices that only interact over the physical link, or even just to view device debug logs.",[591,996,998],{"id":997},"supported-backends","Supported backends",[494,1000,1001],{},"An appropriate physical connection interface (backend) must be provided to the tool depending on the physical connection:",[697,1003,1006],{"className":510,"code":1004,"highlights":1005,"language":511,"meta":512,"style":512},"> infuse gateway --help\nusage: infuse gateway [-h] (--serial SERIAL | --rtt RTT | --pyocd PYOCD) [--display-only] [--log [filename]]\n\nConnect to a gateway device over serial and route commands to Bluetooth devices\n\noptions:\n  -h, --help            show this help message and exit\n  --serial SERIAL       Gateway serial port\n  --rtt RTT             RTT serial port\n  --pyocd PYOCD         RTT via PyOCD\n  --display-only, -d    No networking, only display serial\n  --log [filename], -l [filename]\n                        Save serial output to file\n  --baud BAUD           Baudrate for serial port\n  --root ROOT           Root identity certificate to use instead of cloud\n  --server-port SERVER_SOCK\n                        Alternate port to use for Gateway connections (default 8751)\n",[819,852,861],[508,1007,1008,1015,1072,1076,1112,1116,1120,1138,1155,1170,1187,1210,1225,1241,1259,1282,1289],{"__ignoreMap":512},[514,1009,1010,1012],{"class":704,"line":705},[514,1011,709],{"class":708},[514,1013,1014],{"class":712}," infuse gateway --help\n",[514,1016,1017,1019,1021,1023,1026,1029,1032,1035,1038,1041,1043,1046,1049,1052,1054,1057,1059,1061,1064,1066,1069],{"class":704,"line":716},[514,1018,719],{"class":516},[514,1020,722],{"class":520},[514,1022,521],{"class":520},[514,1024,1025],{"class":712}," [-h] (",[514,1027,1028],{"class":516},"--serial",[514,1030,1031],{"class":520}," SERIAL",[514,1033,1034],{"class":708}," |",[514,1036,1037],{"class":516}," --rtt",[514,1039,1040],{"class":520}," RTT",[514,1042,1034],{"class":708},[514,1044,1045],{"class":516}," --pyocd",[514,1047,1048],{"class":520}," PYOCD",[514,1050,1051],{"class":712},") ",[514,1053,730],{"class":708},[514,1055,1056],{"class":712},"--display-only",[514,1058,736],{"class":708},[514,1060,739],{"class":708},[514,1062,1063],{"class":712},"--log ",[514,1065,730],{"class":708},[514,1067,1068],{"class":712},"filename",[514,1070,1071],{"class":708},"]]\n",[514,1073,1074],{"class":704,"line":748},[514,1075,752],{"emptyLinePlaceholder":751},[514,1077,1078,1081,1083,1086,1088,1091,1094,1097,1099,1102,1105,1107,1109],{"class":704,"line":755},[514,1079,1080],{"class":516},"Connect",[514,1082,837],{"class":520},[514,1084,1085],{"class":520}," a",[514,1087,521],{"class":520},[514,1089,1090],{"class":520}," device",[514,1092,1093],{"class":520}," over",[514,1095,1096],{"class":520}," serial",[514,1098,813],{"class":520},[514,1100,1101],{"class":520}," route",[514,1103,1104],{"class":520}," commands",[514,1106,837],{"class":520},[514,1108,767],{"class":520},[514,1110,1111],{"class":520}," devices\n",[514,1113,1114],{"class":704,"line":781},[514,1115,752],{"emptyLinePlaceholder":751},[514,1117,1118],{"class":704,"line":786},[514,1119,789],{"class":516},[514,1121,1122,1124,1126,1128,1130,1132,1134,1136],{"class":704,"line":792},[514,1123,795],{"class":516},[514,1125,798],{"class":520},[514,1127,801],{"class":520},[514,1129,804],{"class":520},[514,1131,807],{"class":520},[514,1133,810],{"class":520},[514,1135,813],{"class":520},[514,1137,816],{"class":520},[514,1139,1142,1145,1147,1150,1152],{"class":1140,"line":819},[704,1141],"highlight",[514,1143,1144],{"class":516},"  --serial",[514,1146,1031],{"class":520},[514,1148,1149],{"class":520},"       Gateway",[514,1151,1096],{"class":520},[514,1153,1154],{"class":520}," port\n",[514,1156,1158,1161,1163,1166,1168],{"class":1157,"line":852},[704,1141],[514,1159,1160],{"class":516},"  --rtt",[514,1162,1040],{"class":520},[514,1164,1165],{"class":520},"             RTT",[514,1167,1096],{"class":520},[514,1169,1154],{"class":520},[514,1171,1173,1176,1178,1181,1184],{"class":1172,"line":861},[704,1141],[514,1174,1175],{"class":516},"  --pyocd",[514,1177,1048],{"class":520},[514,1179,1180],{"class":520},"         RTT",[514,1182,1183],{"class":520}," via",[514,1185,1186],{"class":520}," PyOCD\n",[514,1188,1189,1192,1195,1198,1201,1204,1207],{"class":704,"line":885},[514,1190,1191],{"class":516},"  --display-only,",[514,1193,1194],{"class":520}," -d",[514,1196,1197],{"class":520},"    No",[514,1199,1200],{"class":520}," networking,",[514,1202,1203],{"class":520}," only",[514,1205,1206],{"class":520}," display",[514,1208,1209],{"class":520}," serial\n",[514,1211,1213,1216,1219,1221,1223],{"class":704,"line":1212},12,[514,1214,1215],{"class":516},"  --log",[514,1217,1218],{"class":712}," [filename], -l ",[514,1220,730],{"class":708},[514,1222,1068],{"class":712},[514,1224,745],{"class":708},[514,1226,1228,1231,1233,1236,1238],{"class":704,"line":1227},13,[514,1229,1230],{"class":516},"                        Save",[514,1232,1096],{"class":520},[514,1234,1235],{"class":520}," output",[514,1237,837],{"class":520},[514,1239,1240],{"class":520}," file\n",[514,1242,1244,1247,1250,1253,1255,1257],{"class":704,"line":1243},14,[514,1245,1246],{"class":516},"  --baud",[514,1248,1249],{"class":520}," BAUD",[514,1251,1252],{"class":520},"           Baudrate",[514,1254,773],{"class":520},[514,1256,1096],{"class":520},[514,1258,1154],{"class":520},[514,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280],{"class":704,"line":1261},15,[514,1263,822],{"class":516},[514,1265,825],{"class":520},[514,1267,828],{"class":520},[514,1269,831],{"class":520},[514,1271,834],{"class":520},[514,1273,837],{"class":520},[514,1275,840],{"class":520},[514,1277,843],{"class":520},[514,1279,846],{"class":520},[514,1281,849],{"class":520},[514,1283,1285,1287],{"class":704,"line":1284},16,[514,1286,855],{"class":516},[514,1288,858],{"class":520},[514,1290,1292,1294,1296,1298,1300,1302,1304,1306,1309,1313],{"class":704,"line":1291},17,[514,1293,864],{"class":516},[514,1295,867],{"class":520},[514,1297,837],{"class":520},[514,1299,840],{"class":520},[514,1301,773],{"class":520},[514,1303,876],{"class":520},[514,1305,879],{"class":520},[514,1307,1308],{"class":712}," (default ",[514,1310,1312],{"class":1311},"sbssI","8751",[514,1314,891],{"class":712},[501,1316,1317,1332,1350],{},[504,1318,1319,1323,1324,1327,1328,1331],{},[508,1320,1321],{"className":510,"language":511,"style":512},[514,1322,1028],{"class":516}," is used for standard serial ports (e.g. ",[508,1325,1326],{},"COMx",", ",[508,1329,1330],{},"\u002Fdev\u002FttyACMx",").",[504,1333,1334,1339,1340,1345,1346,1349],{},[508,1335,1336],{"className":510,"language":511,"style":512},[514,1337,1338],{"class":516},"--rtt"," is used for RTT through ",[548,1341,1344],{"href":1342,"rel":1343},"https:\u002F\u002Fgithub.com\u002Fsquare\u002Fpylink",[693],"pylink",".\nThe argument is the device name (e.g. ",[508,1347,1348],{},"nRF52840_xxAA",")",[504,1351,1352,1339,1357,1345,1362,1349],{},[508,1353,1354],{"className":510,"language":511,"style":512},[514,1355,1356],{"class":516},"--pyocd",[548,1358,1361],{"href":1359,"rel":1360},"https:\u002F\u002Fgithub.com\u002Fpyocd\u002FpyOCD",[693],"pyocd",[508,1363,1364],{},"stm32l451ceux",[591,1366,1368,1372],{"id":1367},"display-only-only-display-serial-output",[508,1369,1370],{"className":510,"language":511,"style":512},[514,1371,1056],{"class":516},": Only display serial output",[494,1374,1375,1376,1380,1381,901],{},"As the tool is also useful to display basic text logging message displays,\nthe networking aspect of the tool can be disabled with ",[508,1377,1378],{"className":510,"language":511,"style":512},[514,1379,1056],{"class":516}," or ",[508,1382,1383],{"className":510,"language":511,"style":512},[514,1384,1385],{"class":516},"-d",[591,1387,1389,1394],{"id":1388},"log-record-serial-logs-to-a-file",[508,1390,1391],{"className":510,"language":511,"style":512},[514,1392,1393],{"class":516},"--log",": Record serial logs to a file",[494,1396,1397,1398,1402],{},"Recording of the serial logs to a dedicated file can be enabled with the ",[508,1399,1400],{"className":510,"language":511,"style":512},[514,1401,1393],{"class":516}," parameter.\nThis can be useful for long lived monitoring that would otherwise be lost due to terminal scrollback limits.",[591,1404,1406,1411],{"id":1405},"baud-specify-the-baud-rate-for-serial-connections",[508,1407,1408],{"className":510,"language":511,"style":512},[514,1409,1410],{"class":516},"--baud",": Specify the baud rate for serial connections",[494,1413,1414,1415,1419,1420,901],{},"When using ",[508,1416,1417],{"className":510,"language":511,"style":512},[514,1418,1028],{"class":516}," the baud rate can be specified with ",[508,1421,1422],{"className":510,"language":511,"style":512},[514,1423,1410],{"class":516},[1425,1426,1427],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":512,"searchDepth":748,"depth":716,"links":1429},[1430,1436,1437],{"id":585,"depth":716,"text":586,"children":1431},[1432,1434],{"id":593,"depth":748,"text":1433},"--server-port: Server Port",{"id":664,"depth":748,"text":1435},"--root: Key File",{"id":684,"depth":716,"text":685},{"id":979,"depth":716,"text":980,"children":1438},[1439,1440,1442,1444],{"id":997,"depth":748,"text":998},{"id":1367,"depth":748,"text":1441},"--display-only: Only display serial output",{"id":1388,"depth":748,"text":1443},"--log: Record serial logs to a file",{"id":1405,"depth":748,"text":1445},"--baud: Specify the baud rate for serial connections","Utilise gateway scripts to interact with Infuse-IoT Powered devices.","md",null,{},{"title":164,"description":1446},"fFSF6KM5_yanEEQBh84NY2ovf_NDHABYctz60sjCPC4",[1453,1455],{"title":160,"path":161,"stem":162,"description":1454,"children":-1},"Store and manage Credentials used by the Infuse-IoT Python Tools.",{"title":168,"path":169,"stem":170,"description":1456,"children":-1},"Display information from Infuse Cloud along with creating new definitions.",1791526870196]