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.
MeshThread.cpp
00001 /* 00002 * Copyright (c) 2015 ARM Limited. All rights reserved. 00003 * SPDX-License-Identifier: Apache-2.0 00004 * Licensed under the Apache License, Version 2.0 (the License); you may 00005 * not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an AS IS BASIS, WITHOUT 00012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * Thread network interface. 00019 * Class provides methods for 6LoWPAN (Thread mode) network handling. 00020 */ 00021 00022 #include <stdio.h> 00023 #include "mbed.h" 00024 #include "mbed-mesh-api/MeshThread.h" 00025 #include "include/thread_tasklet.h" 00026 #include "include/callback_handler.h" 00027 00028 #define HAVE_DEBUG 1 00029 #include "ns_trace.h" 00030 00031 #define TRACE_GROUP "m6LTh" 00032 00033 MeshThread::MeshThread() : AbstractMesh(MESH_TYPE_THREAD) 00034 { 00035 } 00036 00037 MeshThread::~MeshThread() 00038 { 00039 tr_debug("~MeshThread()"); 00040 thread_tasklet_disconnect(false); 00041 } 00042 00043 mesh_error_t MeshThread::init(int8_t registered_device_id, mesh_network_handler_t callbackHandler, uint8_t *eui64, char *pskd) 00044 { 00045 00046 if (eui64 == NULL) { 00047 return MESH_ERROR_PARAM; 00048 } 00049 00050 mesh_error_t status = AbstractMesh::init(registered_device_id, callbackHandler); 00051 00052 if (status == MESH_ERROR_NONE) { 00053 thread_tasklet_device_config_set(eui64, pskd); 00054 } 00055 00056 return status; 00057 } 00058 00059 mesh_error_t MeshThread::init(int8_t registered_device_id, mesh_network_handler_t callbackHandler) 00060 { 00061 // TODO: Use test values for device configuration 00062 return MeshThread::init(registered_device_id, callbackHandler, NULL, NULL); 00063 } 00064 00065 bool MeshThread::getOwnIpAddress(char *address, int8_t len) 00066 { 00067 tr_debug("getOwnIpAddress()"); 00068 if (thread_tasklet_get_ip_address(address, len) == 0) { 00069 return true; 00070 } 00071 return false; 00072 } 00073 00074 mesh_error_t MeshThread::data_poll_rate_set(uint32_t pollrate) 00075 { 00076 mesh_error_t status = MESH_ERROR_NONE; 00077 int8_t retval = thread_tasklet_data_poll_rate_set(pollrate); 00078 switch (retval) { 00079 case 0: 00080 status = MESH_ERROR_NONE; 00081 break; 00082 case -2: 00083 status = MESH_ERROR_PARAM; 00084 break; 00085 default: 00086 //case -1: 00087 status = MESH_ERROR_UNKNOWN; 00088 break; 00089 } 00090 00091 return status; 00092 } 00093
Generated on Tue Jul 12 2022 18:19:31 by
1.7.2