NuMaker connection with AWS IoT thru MQTT/HTTPS

Dependencies:   MQTT

Committer:
ccli8
Date:
Thu Sep 02 11:34:22 2021 +0800
Revision:
45:7d315fb1ba3e
Parent:
29:e890b0fdce53
Fix MQTT client ID collision

If not assigned, generate unique MQTT client ID:
1. For non-TZ targets, use FMC/UID.
2. For TZ targets (NS), FMC/UID is inaccessible. Use random instead.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ccli8 29:e890b0fdce53 1 /*
ccli8 29:e890b0fdce53 2 * Copyright (c) 2019 Nuvoton Technology Corporation
ccli8 29:e890b0fdce53 3 *
ccli8 29:e890b0fdce53 4 * SPDX-License-Identifier: Apache-2.0
ccli8 29:e890b0fdce53 5 *
ccli8 29:e890b0fdce53 6 * Licensed under the Apache License, Version 2.0 (the "License");
ccli8 29:e890b0fdce53 7 * you may not use this file except in compliance with the License.
ccli8 29:e890b0fdce53 8 * You may obtain a copy of the License at
ccli8 29:e890b0fdce53 9 *
ccli8 29:e890b0fdce53 10 * http://www.apache.org/licenses/LICENSE-2.0
ccli8 29:e890b0fdce53 11 *
ccli8 29:e890b0fdce53 12 * Unless required by applicable law or agreed to in writing, software
ccli8 29:e890b0fdce53 13 * distributed under the License is distributed on an "AS IS" BASIS,
ccli8 29:e890b0fdce53 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ccli8 29:e890b0fdce53 15 * See the License for the specific language governing permissions and
ccli8 29:e890b0fdce53 16 * limitations under the License.
ccli8 29:e890b0fdce53 17 */
ccli8 29:e890b0fdce53 18
ccli8 29:e890b0fdce53 19 #include "mbed.h"
ccli8 29:e890b0fdce53 20
ccli8 29:e890b0fdce53 21 /* Run pre-main tasks via mbed_main()
ccli8 29:e890b0fdce53 22 *
ccli8 29:e890b0fdce53 23 * In Mbed OS boot sequence, mbed_main(), designed for user application override, is run
ccli8 29:e890b0fdce53 24 * before main(). We use it to run the following tasks:
ccli8 29:e890b0fdce53 25 *
ccli8 29:e890b0fdce53 26 * 1. Simulate provision process for development
ccli8 29:e890b0fdce53 27 * 2. Set up event queue for dispatching host command
ccli8 29:e890b0fdce53 28 *
ccli8 29:e890b0fdce53 29 * WARNING: For mass production, remove this file.
ccli8 29:e890b0fdce53 30 */
ccli8 29:e890b0fdce53 31
ccli8 29:e890b0fdce53 32 /* Check weak reference/definition at the link:
ccli8 29:e890b0fdce53 33 * http://www.keil.com/support/man/docs/ARMLINK/armlink_pge1362065917715.htm */
ccli8 29:e890b0fdce53 34
ccli8 29:e890b0fdce53 35 extern "C" {
ccli8 29:e890b0fdce53 36 MBED_USED void mbed_main(void);
ccli8 29:e890b0fdce53 37 MBED_WEAK void provision(void);
ccli8 29:e890b0fdce53 38 MBED_WEAK void pump_host_command(void);
ccli8 29:e890b0fdce53 39 }
ccli8 29:e890b0fdce53 40
ccli8 29:e890b0fdce53 41 void mbed_main(void)
ccli8 29:e890b0fdce53 42 {
ccli8 29:e890b0fdce53 43 provision();
ccli8 29:e890b0fdce53 44 /* Spare memory if event queue is unnecessary */
ccli8 29:e890b0fdce53 45 if (pump_host_command) {
ccli8 29:e890b0fdce53 46 mbed_event_queue()->call_every(2000, pump_host_command);
ccli8 29:e890b0fdce53 47 }
ccli8 29:e890b0fdce53 48 }