Digi XBeeLib fixed for NonCopyable issue

Dependents:   XBeeZB_Receive_Data

Fork of XBeeLib by Digi International Inc.

This lib fixes NonCopyable<T> issues of Digi XBeeLib. Also, lib has been reworked in order to make it RTOS-aware, overcoming several others issues due to stdio Mutex operations.

Utils/Utils.cpp

Committer:
Lorenzo Maiorfi
Date:
2018-04-08
Revision:
13:09e0b4f5a9e1
Parent:
4:629712865107

File content as of revision 13:09e0b4f5a9e1:

/**
 * Copyright (c) 2015 Digi International Inc.,
 * All rights not expressly granted are reserved.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
 * =======================================================================
 */

#include "Utils.h"
#include <string.h>

void rmemcpy(uint8_t * const dest, const uint8_t * const src, uint16_t bytes)
{
    uint8_t *destp = dest + bytes - 1;
    uint8_t *srcp = (uint8_t *)src;

    while (destp >= dest)
        *destp-- = *srcp++;
}

uint64_t addr64_from_uint8_t(const uint8_t * const data, bool big_endian = true)
{
    int64_t addr64;
    if (big_endian) {
        rmemcpy((uint8_t *)&addr64, data, 8);
    } else {
        memcpy((uint8_t *)&addr64, data, 8);
    }
    return addr64;
}