ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

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?

UserRevisionLine numberNew 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 }