Commit 5d4061cd authored by Pierre Guinault's avatar Pierre Guinault
Browse files

Cleaning project for PCA10040

parent 32a384f0
Pipeline #7 skipped
pca10040/s132/arm5/_build/
pca10036/s132/arm5/_build/
pca10028/s132/arm5/_build/
Documentation can be found offline at: <keil_location>/ARM/Pack/NordicSemiconductor//11.0.0-2.alpha/documentation
Documentation can be found offline at: <keil_location>/ARM/Pack/NordicSemiconductor//11.0.0-2.alpha/documentation
Documentation can be found online at: http://developer.nordicsemi.com/nRF51_SDK/doc/
\ No newline at end of file
/* =========================================================================
* This module creates a custom bluetooth service and its attached
* characteristics. It can be intentiated multiple times to create multiple
* service and services can have misc read/write/notify characteristics of
* any object size.
* -------------------------------------------------------------------------
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
* You can obtain a non GPL version of this program by contacting me
* on www.disk91.com
* --------------------------------------------------------------------------
* (c) 2015 Paul Pinault / disk91.com
* --------------------------------------------------------------------------
* 2015-12-19 - creation
* ==========================================================================
* usage : ble_dsk_internal contains internal structure and constants
* ==========================================================================
*/
#ifndef __BLE_DSK_INTERNAL__
#define __BLE_DSK_INTERNAL__
#define __BLE_DSK_MAX_SERVICES 10 // maximum number of services the structure can manage
#define __BLE_DSK_MAX_CHARACTERISTICS 5 // maximum characteristics per services the structures can manage
#define __BLE_DSK_MAX_TOTAL_CHARACT 20 // maximum characteristics the library will manage ... overall
#define __BLE_DSK_MAX_STRING_SIZE 64 // maximum size of the String type structures
#define __BLE_DSK_MAX_DATA_SIZE 16 // maximum size of any of the data exchanged over the characteristics
#ifndef APP_TIMER_PRESCALER
#define APP_TIMER_PRESCALER 0 // Value of the RTC1 PRESCALER register.
#endif
#define __BLE_DSK_ERROR_ERROR 0xFF // return value indicating an error
#endif // __BLE_DSK_INTERNAL__
/* =========================================================================
* This module creates a custom bluetooth service and its attached
* characteristics. It can be intentiated multiple times to create multiple
* service and services can have misc read/write/notify characteristics of
* any object size.
* -------------------------------------------------------------------------
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
* You can obtain a non GPL version of this program by contacting me
* on www.disk91.com
* --------------------------------------------------------------------------
* (c) 2015 Paul Pinault / disk91.com
* --------------------------------------------------------------------------
* 2015-12-19 - creation
* ==========================================================================
* usage : ble_dsk_internal contains internal structure and constants
* ==========================================================================
*/
#ifndef __BLE_DSK_INTERNAL__
#define __BLE_DSK_INTERNAL__
#define __BLE_DSK_MAX_SERVICES 10 // maximum number of services the structure can manage
#define __BLE_DSK_MAX_CHARACTERISTICS 5 // maximum characteristics per services the structures can manage
#define __BLE_DSK_MAX_TOTAL_CHARACT 20 // maximum characteristics the library will manage ... overall
#define __BLE_DSK_MAX_STRING_SIZE 64 // maximum size of the String type structures
#define __BLE_DSK_MAX_DATA_SIZE 16 // maximum size of any of the data exchanged over the characteristics
#ifndef APP_TIMER_PRESCALER
#define APP_TIMER_PRESCALER 0 // Value of the RTC1 PRESCALER register.
#endif
#define __BLE_DSK_ERROR_ERROR 0xFF // return value indicating an error
#endif // __BLE_DSK_INTERNAL__
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* =========================================================================
* This module creates a custom bluetooth service and its attached
* characteristics. It can be intentiated multiple times to create multiple
* service and services can have misc read/write/notify characteristics of
* any object size.
* -------------------------------------------------------------------------
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
* You can obtain a non GPL version of this program by contacting me
* on www.disk91.com
* --------------------------------------------------------------------------
* (c) 2015 Paul Pinault / disk91.com
* --------------------------------------------------------------------------
* 2015-12-19 - creation
* ==========================================================================
* usage :
* ==========================================================================
*/
#ifndef __BLE_DSK_SERVICE__
#define __BLE_DSK_SERVICE__
#include <stdint.h>
#include <stdbool.h>
#include "ble_dsk_internal.h"
#include "ble.h"
/* ------------------------------------------------------------------------------
* ble_dsk_characteristic_t - structure that describes a characteristic. readonly
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_characteristic_desc_s {
char char_description[__BLE_DSK_MAX_STRING_SIZE]; // Text to describe the service
uint16_t char_uuid; // 16b characteristic UUID
uint8_t char_access_right; // Access Right bit mask (see BLE_DSK_ACC_XXX)
uint8_t char_data_len; // Size of the associated data
uint8_t char_data_init[__BLE_DSK_MAX_DATA_SIZE]; // table to store the initial value of the data
void (*onWrite)(uint8_t * value); // callback function on Write Event / NULL if not
bool (*onRead)(uint8_t * value); // callback function on Read Event / NULL if not
// return true if read is authorized , false otherwize ; new value passed on value buffer
} ble_dsk_characteristic_desc_t;
/* ------------------------------------------------------------------------------
* ble_dsk_service_desc_t - structure that defines a service and its associated
* characteristics. This structure is readonly and can
* be stored in flash area.
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_service_desc_s {
// Service description Area
uint16_t service_uuid; // 16b service UUID
// (what the device show as service number)
char service_description[__BLE_DSK_MAX_STRING_SIZE]; // Text to describe service (max 64 char)
// Service / device main callback
void (*onConnect)(); // Callback function on Connection
void (*onDisconnect)(); // Callback function on Disconnection
// Characteristics description Area
uint8_t num_char; // Number of characteristics to support in this
// service (max __BLE_DSK_MAX_CHARACTERISTICS)
ble_dsk_characteristic_desc_t charact[__BLE_DSK_MAX_CHARACTERISTICS]; // List of characteristics the service will offer
} ble_dsk_service_desc_t;
/* ------------------------------------------------------------------------------
* ble_dsk_acc_xxx - ACCESS TYPE for the charcteristic
*/
#define BLE_DSK_ACC_NONE 0 // Access not defined
#define BLE_DSK_ACC_READ 1 // The characteristic can be READ
#define BLE_DSK_ACC_WRITE 2 // The characteristic can be WRITE
#define BLE_DSK_ACC_NOTIFY 4 // The characteristic can be NOTIFIED
/* ------------------------------------------------------------------------------
* Structures alloues dynamiquement
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_dyn_characteristic_s {
const ble_dsk_characteristic_desc_t * char_desc; // link to the associated characteristic description
ble_gatts_char_md_t char_md; // characteristic MetaData
ble_gatts_attr_md_t char_attr; // characteristic Attribute
ble_gatts_attr_md_t char_cccd; // notify characteristic Attributes
ble_gatts_attr_t char_value; // Attribute of the characteristic value
ble_uuid_t char_uuid; // Charactristic UUID
uint8_t char_data[__BLE_DSK_MAX_DATA_SIZE]; // table to store the value of the data
ble_gatts_char_handles_t char_handler; // handler for the created characteristic
} ble_dsk_dyn_characteristic_t;
typedef struct ble_dsk_dyn_service_s {
const ble_dsk_service_desc_t * service_desc; // link to the associated service description
ble_uuid_t * ble_uuid; // service uuid
uint16_t service_handler; // gatts given service handler
uint16_t report_ref_handler; // Handler of the Report Reference descriptor.
uint8_t chars_handler[__BLE_DSK_MAX_CHARACTERISTICS]; // Index to the characteristic table
} ble_dsk_dyn_service_t;
// ----------------------------------------------------------------------------
// Shared functions & structure
uint8_t ble_dsk_service_init(void);
uint8_t ble_dsk_service_allocated(const ble_dsk_service_desc_t * _init, ble_uuid_t * _uuid);
void ble_dsk_on_event_dispatch(ble_evt_t * p_ble_evt);
uint32_t ble_dsk_update(const ble_dsk_characteristic_desc_t * _charac, uint8_t * value);
extern ble_dsk_dyn_service_t ble_dsk_dyn_service[__BLE_DSK_MAX_SERVICES];
extern ble_dsk_dyn_characteristic_t ble_dsk_dyn_characteristic[__BLE_DSK_MAX_TOTAL_CHARACT];
// ----------------------------------------------------------------------------
// Internal functions
static uint8_t ble_dsk_characteristic_allocated(const ble_dsk_characteristic_desc_t * _init);
static ble_dsk_dyn_characteristic_t * getCharacteristicByValueHandler(uint16_t _handler);
static ble_dsk_dyn_characteristic_t * getCharacteristicByCharDesc(const ble_dsk_characteristic_desc_t * _caract);
#endif // __BLE_DSK_SERVICE__
/* =========================================================================
* This module creates a custom bluetooth service and its attached
* characteristics. It can be intentiated multiple times to create multiple
* service and services can have misc read/write/notify characteristics of
* any object size.
* -------------------------------------------------------------------------
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
* You can obtain a non GPL version of this program by contacting me
* on www.disk91.com
* --------------------------------------------------------------------------
* (c) 2015 Paul Pinault / disk91.com
* --------------------------------------------------------------------------
* 2015-12-19 - creation
* ==========================================================================
* usage :
* ==========================================================================
*/
#ifndef __BLE_DSK_SERVICE__
#define __BLE_DSK_SERVICE__
#include <stdint.h>
#include <stdbool.h>
#include "ble_dsk_internal.h"
#include "ble.h"
/* ------------------------------------------------------------------------------
* ble_dsk_characteristic_t - structure that describes a characteristic. readonly
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_characteristic_desc_s {
char char_description[__BLE_DSK_MAX_STRING_SIZE]; // Text to describe the service
uint16_t char_uuid; // 16b characteristic UUID
uint8_t char_access_right; // Access Right bit mask (see BLE_DSK_ACC_XXX)
uint8_t char_data_len; // Size of the associated data
uint8_t char_data_init[__BLE_DSK_MAX_DATA_SIZE]; // table to store the initial value of the data
void (*onWrite)(uint8_t * value); // callback function on Write Event / NULL if not
bool (*onRead)(uint8_t * value); // callback function on Read Event / NULL if not
// return true if read is authorized , false otherwize ; new value passed on value buffer
} ble_dsk_characteristic_desc_t;
/* ------------------------------------------------------------------------------
* ble_dsk_service_desc_t - structure that defines a service and its associated
* characteristics. This structure is readonly and can
* be stored in flash area.
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_service_desc_s {
// Service description Area
uint16_t service_uuid; // 16b service UUID
// (what the device show as service number)
char service_description[__BLE_DSK_MAX_STRING_SIZE]; // Text to describe service (max 64 char)
// Service / device main callback
void (*onConnect)(); // Callback function on Connection
void (*onDisconnect)(); // Callback function on Disconnection
// Characteristics description Area
uint8_t num_char; // Number of characteristics to support in this
// service (max __BLE_DSK_MAX_CHARACTERISTICS)
ble_dsk_characteristic_desc_t charact[__BLE_DSK_MAX_CHARACTERISTICS]; // List of characteristics the service will offer
} ble_dsk_service_desc_t;
/* ------------------------------------------------------------------------------
* ble_dsk_acc_xxx - ACCESS TYPE for the charcteristic
*/
#define BLE_DSK_ACC_NONE 0 // Access not defined
#define BLE_DSK_ACC_READ 1 // The characteristic can be READ
#define BLE_DSK_ACC_WRITE 2 // The characteristic can be WRITE
#define BLE_DSK_ACC_NOTIFY 4 // The characteristic can be NOTIFIED
/* ------------------------------------------------------------------------------
* Structures alloues dynamiquement
* ------------------------------------------------------------------------------
*/
typedef struct ble_dsk_dyn_characteristic_s {
const ble_dsk_characteristic_desc_t * char_desc; // link to the associated characteristic description
ble_gatts_char_md_t char_md; // characteristic MetaData
ble_gatts_attr_md_t char_attr; // characteristic Attribute
ble_gatts_attr_md_t char_cccd; // notify characteristic Attributes
ble_gatts_attr_t char_value; // Attribute of the characteristic value
ble_uuid_t char_uuid; // Charactristic UUID
uint8_t char_data[__BLE_DSK_MAX_DATA_SIZE]; // table to store the value of the data
ble_gatts_char_handles_t char_handler; // handler for the created characteristic
} ble_dsk_dyn_characteristic_t;
typedef struct ble_dsk_dyn_service_s {
const ble_dsk_service_desc_t * service_desc; // link to the associated service description
ble_uuid_t * ble_uuid; // service uuid
uint16_t service_handler; // gatts given service handler
uint16_t report_ref_handler; // Handler of the Report Reference descriptor.
uint8_t chars_handler[__BLE_DSK_MAX_CHARACTERISTICS]; // Index to the characteristic table
} ble_dsk_dyn_service_t;
// ----------------------------------------------------------------------------
// Shared functions & structure
uint8_t ble_dsk_service_init(void);
uint8_t ble_dsk_service_allocated(const ble_dsk_service_desc_t * _init, ble_uuid_t * _uuid);
void ble_dsk_on_event_dispatch(ble_evt_t * p_ble_evt);
uint32_t ble_dsk_update(const ble_dsk_characteristic_desc_t * _charac, uint8_t * value);
extern ble_dsk_dyn_service_t ble_dsk_dyn_service[__BLE_DSK_MAX_SERVICES];
extern ble_dsk_dyn_characteristic_t ble_dsk_dyn_characteristic[__BLE_DSK_MAX_TOTAL_CHARACT];
// ----------------------------------------------------------------------------
// Internal functions
static uint8_t ble_dsk_characteristic_allocated(const ble_dsk_characteristic_desc_t * _init);
static ble_dsk_dyn_characteristic_t * getCharacteristicByValueHandler(uint16_t _handler);
static ble_dsk_dyn_characteristic_t * getCharacteristicByCharDesc(const ble_dsk_characteristic_desc_t * _caract);
#endif // __BLE_DSK_SERVICE__
This text contains two licenses (License #1, License #2).
License #1 applies to the whole SDK, except i) files including Dynastream copyright notices and ii) source files including BSD 3-clause license texts.
License #2 applies only to files including Dynastream copyright notices.
All must be read and accepted before proceeding.
License #1
License Agreement
Nordic Semiconductor ASA (“Nordic”)
Software Development Kit
You (“You” or “Licensee”) must carefully and thoroughly read this License Agreement (“Agreement”), and accept to adhere to this Agreement before downloading, installing and/or using any software or content in the Software Development Kit (“SDK”) provided herewith.
YOU ACCEPT THIS LICENSE AGREEMENT BY (A) CLICKING ACCEPT OR AGREE TO THIS LICENSE AGREEMENT, WHERE THIS OPTION IS MADE AVAILABLE TO YOU; OR (B) BY ACTUALLY USING THE SDK, IN THIS CASE YOU AGREE THAT THE USE OF THE SDK CONSTITUTES ACCEPTANCE OF THE LICENSING AGREEMENT FROM THAT POINT ONWARDS.
IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL/COMPLETE INSTALLATION OF, OR IN ANY OTHER WAY MAKE USE OF THE SDK OR RELATED CONTENT.
1. Grant of License
Subject to the terms in this Agreement Nordic grants Licensee a limited, non-exclusive, non-transferable, non-sub licensable, revocable license (“License”): (a) to use the SDK as a development platform solely in connection with a Nordic Integrated Circuit (“nRF IC”), (b) to modify any source code contained in the SDK solely as necessary to implement products developed by Licensee that incorporate an nRF IC (“Licensee Product”), and (c) to distribute the SDK solely as implemented in Licensee Product. Licensee shall not use the SDK for any purpose other than specifically authorized herein.
2. Title
As between the parties, Nordic retains full rights, title, and ownership of the SDK and any and all patents, copyrights, trade secrets, trade names, trademarks, and other intellectual property rights in and to the SDK.
3. No Modifications or Reverse Engineering
Licensee shall not, modify, reverse engineer, disassemble, decompile or otherwise attempt to discover the source code of any non-source code parts of the SDK including, but not limited to pre-compiled binaries and object code.
4. Distribution Restrictions
Except as set forward in Section 1 above, the Licensee may not disclose or distribute any or all parts of the SDK to any third party. Licensee agrees to provide reasonable security precautions to prevent unauthorized access to or use of the SDK as proscribed herein. Licensee also agrees that use of and access to the SDK will be strictly limited to the employees and subcontractors of the Licensee necessary for the performance of development, verification and production tasks under this Agreement. The Licensee is responsible for making such employees and subcontractors agree on complying with the obligations concerning use and non-disclosure of the SDK.
5. No Other Rights
Licensee shall use the SDK only in compliance with this Agreement and shall refrain from using the SDK in any way that may be contrary to this Agreement.
6. Fees
Nordic grants the License to the Licensee free of charge provided that the Licensee undertakes the obligations in the Agreement and warrants to comply with the Agreement.
7. DISCLAIMER OF WARRANTY
THE SDK IS PROVIDED “AS IS" WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND NEITHER NORDIC, ITS LICENSORS OR AFFILIATES NOR THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE SDK WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. THERE IS NO WARRANTY BY NORDIC OR BY ANY OTHER PARTY THAT THE FUNCTIONS CONTAINED IN THE SDK WILL MEET THE REQUIREMENTS OF LICENSEE OR THAT THE OPERATION OF THE SDK WILL BE UNINTERRUPTED OR ERROR-FREE. LICENSEE ASSUMES ALL RESPONSIBILITY AND RISK FOR THE SELECTION OF THE SDK TO ACHIEVE LICENSEE’S INTENDED RESULTS AND FOR THE INSTALLATION, USE AND RESULTS OBTAINED FROM IT.
8. No Support
Nordic is not obligated to furnish or make available to Licensee any further information, software, technical information, know-how, show-how, bug-fixes or support. Nordic reserves the right to make changes to the SDK without further notice.
9. Limitation of Liability
In no event shall Nordic, its employees or suppliers or affiliates be liable for any lost profits, revenue, sales, data or costs of procurement of substitute goods or services, property damage, personal injury, interruption of business, loss of business information or for any special, direct, indirect, incidental, economic, punitive, special or consequential damages, however caused and whether arising under contract, tort, negligence, or other theory of liability arising out of the use of or inability to use the SDK, even if Nordic or its employees or suppliers or affiliates are advised of the possibility of such damages. Because some countries/states/ jurisdictions do not allow the exclusion or limitation of liability, but may allow liability to be limited, in such cases, Nordic, its employees or licensors or affiliates’ liability shall be limited to USD 50.
10. Breach of Contract
Upon a breach of contract by the Licensee, Nordic is entitled to damages in respect of any direct loss which can be reasonably attributed to the breach by the Licensee. If the Licensee has acted with gross negligence or willful misconduct, the Licensee shall cover both direct and indirect costs for Nordic.
11. Indemnity
Licensee undertakes to indemnify, hold harmless and defend Nordic and its directors, officers, affiliates, shareholders, employees and agents from and against any claims or lawsuits, including attorney's fees, that arise or result of the Licensee’s execution of the License and which is not due to causes for which Nordic is responsible.
12. Governing Law
This Agreement shall be construed according to the laws of Norway, and hereby submits to the exclusive jurisdiction of the Oslo tingrett.
13. Assignment
Licensee shall not assign this Agreement or any rights or obligations hereunder without the prior written consent of Nordic.
14. Termination
Without prejudice to any other rights, Nordic may cancel this Agreement if Licensee does not abide by the terms and conditions of this Agreement. Upon termination Licensee must promptly cease the use of the License and destroy all copies of the Licensed Technology and any other material provided by Nordic or its affiliate, or produced by the Licensee in connection with the Agreement or the Licensed Technology.
License #2
This software is subject to the ANT+ Shared Source License
www.thisisant.com/swlicenses
Copyright (c) Dynastream Innovations, Inc. 2015
All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1) Redistributions of source code must retain the above
copyright notice,this list of conditions and the following
disclaimer.
2) Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
3) Neither the name of Dynastream nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission.
The following actions are prohibited:
1) Redistribution of source code containing the ANT+ Network
Key. The ANT+ Network Key is available to ANT+ Adopters.
Please refer to http://thisisant.com to become an ANT+
Adopter and access the key.
2) Reverse engineering, decompilation, and/or disassembly of
software provided in binary form under this license.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE HEREBY
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; DAMAGE TO ANY DEVICE, LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE. SOME STATES DO NOT ALLOW
THE EXCLUSION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE
ABOVE LIMITATIONS MAY NOT APPLY TO YOU.
This text contains two licenses (License #1, License #2).
License #1 applies to the whole SDK, except i) files including Dynastream copyright notices and ii) source files including BSD 3-clause license texts.
License #2 applies only to files including Dynastream copyright notices.
All must be read and accepted before proceeding.
License #1
License Agreement
Nordic Semiconductor ASA (“Nordic”)
Software Development Kit
You (“You” or “Licensee”) must carefully and thoroughly read this License Agreement (“Agreement”), and accept to adhere to this Agreement before downloading, installing and/or using any software or content in the Software Development Kit (“SDK”) provided herewith.
YOU ACCEPT THIS LICENSE AGREEMENT BY (A) CLICKING ACCEPT OR AGREE TO THIS LICENSE AGREEMENT, WHERE THIS OPTION IS MADE AVAILABLE TO YOU; OR (B) BY ACTUALLY USING THE SDK, IN THIS CASE YOU AGREE THAT THE USE OF THE SDK CONSTITUTES ACCEPTANCE OF THE LICENSING AGREEMENT FROM THAT POINT ONWARDS.
IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL/COMPLETE INSTALLATION OF, OR IN ANY OTHER WAY MAKE USE OF THE SDK OR RELATED CONTENT.
1. Grant of License
Subject to the terms in this Agreement Nordic grants Licensee a limited, non-exclusive, non-transferable, non-sub licensable, revocable license (“License”): (a) to use the SDK as a development platform solely in connection with a Nordic Integrated Circuit (“nRF IC”), (b) to modify any source code contained in the SDK solely as necessary to implement products developed by Licensee that incorporate an nRF IC (“Licensee Product”), and (c) to distribute the SDK solely as implemented in Licensee Product. Licensee shall not use the SDK for any purpose other than specifically authorized herein.
2. Title
As between the parties, Nordic retains full rights, title, and ownership of the SDK and any and all patents, copyrights, trade secrets, trade names, trademarks, and other intellectual property rights in and to the SDK.
3. No Modifications or Reverse Engineering
Licensee shall not, modify, reverse engineer, disassemble, decompile or otherwise attempt to discover the source code of any non-source code parts of the SDK including, but not limited to pre-compiled binaries and object code.
4. Distribution Restrictions
Except as set forward in Section 1 above, the Licensee may not disclose or distribute any or all parts of the SDK to any third party. Licensee agrees to provide reasonable security precautions to prevent unauthorized access to or use of the SDK as proscribed herein. Licensee also agrees that use of and access to the SDK will be strictly limited to the employees and subcontractors of the Licensee necessary for the performance of development, verification and production tasks under this Agreement. The Licensee is responsible for making such employees and subcontractors agree on complying with the obligations concerning use and non-disclosure of the SDK.
5. No Other Rights
Licensee shall use the SDK only in compliance with this Agreement and shall refrain from using the SDK in any way that may be contrary to this Agreement.
6. Fees
Nordic grants the License to the Licensee free of charge provided that the Licensee undertakes the obligations in the Agreement and warrants to comply with the Agreement.
7. DISCLAIMER OF WARRANTY
THE SDK IS PROVIDED “AS IS" WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED AND NEITHER NORDIC, ITS LICENSORS OR AFFILIATES NOR THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE SDK WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. THERE IS NO WARRANTY BY NORDIC OR BY ANY OTHER PARTY THAT THE FUNCTIONS CONTAINED IN THE SDK WILL MEET THE REQUIREMENTS OF LICENSEE OR THAT THE OPERATION OF THE SDK WILL BE UNINTERRUPTED OR ERROR-FREE. LICENSEE ASSUMES ALL RESPONSIBILITY AND RISK FOR THE SELECTION OF THE SDK TO ACHIEVE LICENSEE’S INTENDED RESULTS AND FOR THE INSTALLATION, USE AND RESULTS OBTAINED FROM IT.
8. No Support
Nordic is not obligated to furnish or make available to Licensee any further information, software, technical information, know-how, show-how, bug-fixes or support. Nordic reserves the right to make changes to the SDK without further notice.
9. Limitation of Liability
In no event shall Nordic, its employees or suppliers or affiliates be liable for any lost profits, revenue, sales, data or costs of procurement of substitute goods or services, property damage, personal injury, interruption of business, loss of business information or for any special, direct, indirect, incidental, economic, punitive, special or consequential damages, however caused and whether arising under contract, tort, negligence, or other theory of liability arising out of the use of or inability to use the SDK, even if Nordic or its employees or suppliers or affiliates are advised of the possibility of such damages. Because some countries/states/ jurisdictions do not allow the exclusion or limitation of liability, but may allow liability to be limited, in such cases, Nordic, its employees or licensors or affiliates’ liability shall be limited to USD 50.
10. Breach of Contract
Upon a breach of contract by the Licensee, Nordic is entitled to damages in respect of any direct loss which can be reasonably attributed to the breach by the Licensee. If the Licensee has acted with gross negligence or willful misconduct, the Licensee shall cover both direct and indirect costs for Nordic.
11. Indemnity
Licensee undertakes to indemnify, hold harmless and defend Nordic and its directors, officers, affiliates, shareholders, employees and agents from and against any claims or lawsuits, including attorney's fees, that arise or result of the Licensee’s execution of the License and which is not due to causes for which Nordic is responsible.
12. Governing Law
This Agreement shall be construed according to the laws of Norway, and hereby submits to the exclusive jurisdiction of the Oslo tingrett.
13. Assignment
Licensee shall not assign this Agreement or any rights or obligations hereunder without the prior written consent of Nordic.
14. Termination
Without prejudice to any other rights, Nordic may cancel this Agreement if Licensee does not abide by the terms and conditions of this Agreement. Upon termination Licensee must promptly cease the use of the License and destroy all copies of the Licensed Technology and any other material provided by Nordic or its affiliate, or produced by the Licensee in connection with the Agreement or the Licensed Technology.
License #2
This software is subject to the ANT+ Shared Source License
www.thisisant.com/swlicenses
Copyright (c) Dynastream Innovations, Inc. 2015
All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1) Redistributions of source code must retain the above
copyright notice,this list of conditions and the following
disclaimer.
2) Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
3) Neither the name of Dynastream nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission.
The following actions are prohibited:
1) Redistribution of source code containing the ANT+ Network
Key. The ANT+ Network Key is available to ANT+ Adopters.
Please refer to http://thisisant.com to become an ANT+
Adopter and access the key.
2) Reverse engineering, decompilation, and/or disassembly of
software provided in binary form under this license.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE HEREBY
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; DAMAGE TO ANY DEVICE, LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE. SOME STATES DO NOT ALLOW
THE EXCLUSION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE
ABOVE LIMITATIONS MAY NOT APPLY TO YOU.
This diff is collapsed.
/* Copyright (C) 2013 Nordic Semiconductor. All Rights Reserved.
*
* The information contained herein is property of Nordic Semiconductor ASA.