Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510
features/nanostack/FEATURE_NANOSTACK/mbed-mesh-api/source/MeshInterfaceNanostack.cpp@1:f30bdcd2b33b, 2017-02-27 (annotated)
- Committer:
- jacobjohnson
- Date:
- Mon Feb 27 17:45:05 2017 +0000
- Revision:
- 1:f30bdcd2b33b
- Parent:
- 0:098463de4c5d
changed the inputscale from 1 to 7 in analogin_api.c. This will need to be changed later, and accessed from the main level, but for now this allows the adc to read a value from 0 to 3.7V, instead of just up to 1V.;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| group-onsemi | 0:098463de4c5d | 1 | /* |
| group-onsemi | 0:098463de4c5d | 2 | * Copyright (c) 2016 ARM Limited. All rights reserved. |
| group-onsemi | 0:098463de4c5d | 3 | * SPDX-License-Identifier: Apache-2.0 |
| group-onsemi | 0:098463de4c5d | 4 | * Licensed under the Apache License, Version 2.0 (the License); you may |
| group-onsemi | 0:098463de4c5d | 5 | * not use this file except in compliance with the License. |
| group-onsemi | 0:098463de4c5d | 6 | * You may obtain a copy of the License at |
| group-onsemi | 0:098463de4c5d | 7 | * |
| group-onsemi | 0:098463de4c5d | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| group-onsemi | 0:098463de4c5d | 9 | * |
| group-onsemi | 0:098463de4c5d | 10 | * Unless required by applicable law or agreed to in writing, software |
| group-onsemi | 0:098463de4c5d | 11 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT |
| group-onsemi | 0:098463de4c5d | 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| group-onsemi | 0:098463de4c5d | 13 | * See the License for the specific language governing permissions and |
| group-onsemi | 0:098463de4c5d | 14 | * limitations under the License. |
| group-onsemi | 0:098463de4c5d | 15 | */ |
| group-onsemi | 0:098463de4c5d | 16 | |
| group-onsemi | 0:098463de4c5d | 17 | #include "MeshInterfaceNanostack.h" |
| group-onsemi | 0:098463de4c5d | 18 | #include "NanostackInterface.h" |
| group-onsemi | 0:098463de4c5d | 19 | #include "mesh_system.h" |
| group-onsemi | 0:098463de4c5d | 20 | |
| group-onsemi | 0:098463de4c5d | 21 | MeshInterfaceNanostack::MeshInterfaceNanostack() |
| group-onsemi | 0:098463de4c5d | 22 | : phy(NULL), _network_interface_id(-1), _device_id(-1), eui64(), |
| group-onsemi | 0:098463de4c5d | 23 | ip_addr_str(), mac_addr_str(), connect_semaphore(0) |
| group-onsemi | 0:098463de4c5d | 24 | { |
| group-onsemi | 0:098463de4c5d | 25 | // Nothing to do |
| group-onsemi | 0:098463de4c5d | 26 | } |
| group-onsemi | 0:098463de4c5d | 27 | |
| group-onsemi | 0:098463de4c5d | 28 | MeshInterfaceNanostack::MeshInterfaceNanostack(NanostackPhy *phy) |
| group-onsemi | 0:098463de4c5d | 29 | : phy(phy), _network_interface_id(-1), _device_id(-1), connect_semaphore(0) |
| group-onsemi | 0:098463de4c5d | 30 | { |
| group-onsemi | 0:098463de4c5d | 31 | // Nothing to do |
| group-onsemi | 0:098463de4c5d | 32 | } |
| group-onsemi | 0:098463de4c5d | 33 | |
| group-onsemi | 0:098463de4c5d | 34 | nsapi_error_t MeshInterfaceNanostack::initialize(NanostackPhy *phy) |
| group-onsemi | 0:098463de4c5d | 35 | { |
| group-onsemi | 0:098463de4c5d | 36 | mesh_system_init(); |
| group-onsemi | 0:098463de4c5d | 37 | if (this->phy != NULL) { |
| group-onsemi | 0:098463de4c5d | 38 | error("Phy already set"); |
| group-onsemi | 0:098463de4c5d | 39 | } |
| group-onsemi | 0:098463de4c5d | 40 | this->phy = phy; |
| group-onsemi | 0:098463de4c5d | 41 | return 0; |
| group-onsemi | 0:098463de4c5d | 42 | } |
| group-onsemi | 0:098463de4c5d | 43 | |
| group-onsemi | 0:098463de4c5d | 44 | void MeshInterfaceNanostack::mesh_network_handler(mesh_connection_status_t status) |
| group-onsemi | 0:098463de4c5d | 45 | { |
| group-onsemi | 0:098463de4c5d | 46 | nanostack_lock(); |
| group-onsemi | 0:098463de4c5d | 47 | |
| group-onsemi | 0:098463de4c5d | 48 | if (status == MESH_CONNECTED) { |
| group-onsemi | 0:098463de4c5d | 49 | connect_semaphore.release(); |
| group-onsemi | 0:098463de4c5d | 50 | } |
| group-onsemi | 0:098463de4c5d | 51 | |
| group-onsemi | 0:098463de4c5d | 52 | nanostack_unlock(); |
| group-onsemi | 0:098463de4c5d | 53 | } |
| group-onsemi | 0:098463de4c5d | 54 | |
| group-onsemi | 0:098463de4c5d | 55 | nsapi_error_t MeshInterfaceNanostack::register_phy() |
| group-onsemi | 0:098463de4c5d | 56 | { |
| group-onsemi | 0:098463de4c5d | 57 | nanostack_lock(); |
| group-onsemi | 0:098463de4c5d | 58 | |
| group-onsemi | 0:098463de4c5d | 59 | _device_id = phy->phy_register(); |
| group-onsemi | 0:098463de4c5d | 60 | if (_device_id < 0) { |
| group-onsemi | 0:098463de4c5d | 61 | nanostack_unlock(); |
| group-onsemi | 0:098463de4c5d | 62 | return -1; |
| group-onsemi | 0:098463de4c5d | 63 | } |
| group-onsemi | 0:098463de4c5d | 64 | // Read mac address after registering the device. |
| group-onsemi | 0:098463de4c5d | 65 | phy->get_mac_address(eui64); |
| group-onsemi | 0:098463de4c5d | 66 | sprintf(mac_addr_str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", eui64[0], eui64[1], eui64[2], eui64[3], eui64[4], eui64[5], eui64[6], eui64[7]); |
| group-onsemi | 0:098463de4c5d | 67 | |
| group-onsemi | 0:098463de4c5d | 68 | nanostack_unlock(); |
| group-onsemi | 0:098463de4c5d | 69 | |
| group-onsemi | 0:098463de4c5d | 70 | return 0; |
| group-onsemi | 0:098463de4c5d | 71 | } |
| group-onsemi | 0:098463de4c5d | 72 | |
| group-onsemi | 0:098463de4c5d | 73 | NetworkStack * MeshInterfaceNanostack::get_stack() |
| group-onsemi | 0:098463de4c5d | 74 | { |
| group-onsemi | 0:098463de4c5d | 75 | return NanostackInterface::get_stack(); |
| group-onsemi | 0:098463de4c5d | 76 | } |
| group-onsemi | 0:098463de4c5d | 77 | |
| group-onsemi | 0:098463de4c5d | 78 | const char *MeshInterfaceNanostack::get_ip_address() |
| group-onsemi | 0:098463de4c5d | 79 | { |
| group-onsemi | 0:098463de4c5d | 80 | nanostack_lock(); |
| group-onsemi | 0:098463de4c5d | 81 | |
| group-onsemi | 0:098463de4c5d | 82 | const char *ret = NULL; |
| group-onsemi | 0:098463de4c5d | 83 | if (getOwnIpAddress(ip_addr_str, sizeof ip_addr_str)) { |
| group-onsemi | 0:098463de4c5d | 84 | ret = ip_addr_str; |
| group-onsemi | 0:098463de4c5d | 85 | } |
| group-onsemi | 0:098463de4c5d | 86 | |
| group-onsemi | 0:098463de4c5d | 87 | nanostack_unlock(); |
| group-onsemi | 0:098463de4c5d | 88 | |
| group-onsemi | 0:098463de4c5d | 89 | return ret; |
| group-onsemi | 0:098463de4c5d | 90 | } |
| group-onsemi | 0:098463de4c5d | 91 | |
| group-onsemi | 0:098463de4c5d | 92 | const char *MeshInterfaceNanostack::get_mac_address() |
| group-onsemi | 0:098463de4c5d | 93 | { |
| group-onsemi | 0:098463de4c5d | 94 | return mac_addr_str; |
| group-onsemi | 0:098463de4c5d | 95 | } |