vlx lib

Committer:
vijaynvr
Date:
Sun Feb 08 14:26:51 2015 +0000
Revision:
0:bc9f26b5dadf
working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vijaynvr 0:bc9f26b5dadf 1 /*******************************************************************************
vijaynvr 0:bc9f26b5dadf 2 ################################################################################
vijaynvr 0:bc9f26b5dadf 3 # (C) STMicroelectronics 2014
vijaynvr 0:bc9f26b5dadf 4 #
vijaynvr 0:bc9f26b5dadf 5 # This program is free software; you can redistribute it and/or modify it under
vijaynvr 0:bc9f26b5dadf 6 # the terms of the GNU General Public License version 2 and only version 2 as
vijaynvr 0:bc9f26b5dadf 7 # published by the Free Software Foundation.
vijaynvr 0:bc9f26b5dadf 8 #
vijaynvr 0:bc9f26b5dadf 9 # This program is distributed in the hope that it will be useful, but WITHOUT
vijaynvr 0:bc9f26b5dadf 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
vijaynvr 0:bc9f26b5dadf 11 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
vijaynvr 0:bc9f26b5dadf 12 # details.
vijaynvr 0:bc9f26b5dadf 13 #
vijaynvr 0:bc9f26b5dadf 14 # You should have received a copy of the GNU General Public License along with
vijaynvr 0:bc9f26b5dadf 15 # this program; if not, write to the Free Software Foundation, Inc.,
vijaynvr 0:bc9f26b5dadf 16 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
vijaynvr 0:bc9f26b5dadf 17 #
vijaynvr 0:bc9f26b5dadf 18 #------------------------------------------------------------------------------
vijaynvr 0:bc9f26b5dadf 19 # Imaging Division
vijaynvr 0:bc9f26b5dadf 20 ################################################################################
vijaynvr 0:bc9f26b5dadf 21 ********************************************************************************/
vijaynvr 0:bc9f26b5dadf 22
vijaynvr 0:bc9f26b5dadf 23 /*!
vijaynvr 0:bc9f26b5dadf 24 *\file utilities.h
vijaynvr 0:bc9f26b5dadf 25 *\brief Utilities module to contain common and useful routines.
vijaynvr 0:bc9f26b5dadf 26 */
vijaynvr 0:bc9f26b5dadf 27
vijaynvr 0:bc9f26b5dadf 28 #ifndef _UTILITIES
vijaynvr 0:bc9f26b5dadf 29 #define _UTILITIES
vijaynvr 0:bc9f26b5dadf 30
vijaynvr 0:bc9f26b5dadf 31 #include "platform.h"
vijaynvr 0:bc9f26b5dadf 32 #include "definitions.h"
vijaynvr 0:bc9f26b5dadf 33
vijaynvr 0:bc9f26b5dadf 34 /**
vijaynvr 0:bc9f26b5dadf 35 * @brief This function converts a given array of bytes to a string in hex
vijaynvr 0:bc9f26b5dadf 36 * format. To be used when it is desired to display loose bytes as
vijaynvr 0:bc9f26b5dadf 37 * a short, int, long long etc.
vijaynvr 0:bc9f26b5dadf 38 *
vijaynvr 0:bc9f26b5dadf 39 * If a valid length parameter is supplied only this number of bytes
vijaynvr 0:bc9f26b5dadf 40 * will be converted. A count of 0 will be ignored.
vijaynvr 0:bc9f26b5dadf 41 */
vijaynvr 0:bc9f26b5dadf 42 int32_t array2HexCString(uint8_t *byteArray, char *str, uint32_t count);
vijaynvr 0:bc9f26b5dadf 43
vijaynvr 0:bc9f26b5dadf 44 /**
vijaynvr 0:bc9f26b5dadf 45 * @brief This function unpacks an integer to a given array of bytes.
vijaynvr 0:bc9f26b5dadf 46 */
vijaynvr 0:bc9f26b5dadf 47 int32_t unPackBytes(int32_t data, uint8_t *byteArray, int32_t size);
vijaynvr 0:bc9f26b5dadf 48
vijaynvr 0:bc9f26b5dadf 49 /**
vijaynvr 0:bc9f26b5dadf 50 * @brief This function packs an attay of bytes to a given integer.
vijaynvr 0:bc9f26b5dadf 51 */
vijaynvr 0:bc9f26b5dadf 52 uint32_t packBytes(uint8_t *byteArray, uint32_t size);
vijaynvr 0:bc9f26b5dadf 53
vijaynvr 0:bc9f26b5dadf 54 /**
vijaynvr 0:bc9f26b5dadf 55 * @brief This function round a float value to an integer value.
vijaynvr 0:bc9f26b5dadf 56 */
vijaynvr 0:bc9f26b5dadf 57 int32_t roundFloatToInt(float_t floatVal);
vijaynvr 0:bc9f26b5dadf 58
vijaynvr 0:bc9f26b5dadf 59 /**
vijaynvr 0:bc9f26b5dadf 60 * @brief Method to encode a float to 9:7 format and return as an
vijaynvr 0:bc9f26b5dadf 61 * unsigned int. This is performed by shifting the float 7
vijaynvr 0:bc9f26b5dadf 62 * bits to the left and then converting to unsigned int.
vijaynvr 0:bc9f26b5dadf 63 */
vijaynvr 0:bc9f26b5dadf 64 uint32_t encodeTo9_7_Format(float_t value);
vijaynvr 0:bc9f26b5dadf 65
vijaynvr 0:bc9f26b5dadf 66 /**
vijaynvr 0:bc9f26b5dadf 67 * @brief Method to decode a 9:7 formatted data word into a
vijaynvr 0:bc9f26b5dadf 68 * float. The data word is shifted 7 bits to the right and
vijaynvr 0:bc9f26b5dadf 69 * converted to float.
vijaynvr 0:bc9f26b5dadf 70 */
vijaynvr 0:bc9f26b5dadf 71 float_t decodeFrom9_7_Format(uint32_t value);
vijaynvr 0:bc9f26b5dadf 72
vijaynvr 0:bc9f26b5dadf 73 /**
vijaynvr 0:bc9f26b5dadf 74 * @brief Method to encode a float to 4:4 format and return as an
vijaynvr 0:bc9f26b5dadf 75 * unsigned int. This is performed by shifting the float 4
vijaynvr 0:bc9f26b5dadf 76 * bits to the left and then converting to unsigned int.
vijaynvr 0:bc9f26b5dadf 77 */
vijaynvr 0:bc9f26b5dadf 78 uint32_t encodeTo4_4_Format(float_t value);
vijaynvr 0:bc9f26b5dadf 79
vijaynvr 0:bc9f26b5dadf 80 /**
vijaynvr 0:bc9f26b5dadf 81 * @brief Method to decode a 4:4 formatted data word into a
vijaynvr 0:bc9f26b5dadf 82 * float. The data word is shifted 4 bits to the right and
vijaynvr 0:bc9f26b5dadf 83 * converted to float.
vijaynvr 0:bc9f26b5dadf 84 */
vijaynvr 0:bc9f26b5dadf 85 float_t decodeFrom4_4_Format(uint32_t value);
vijaynvr 0:bc9f26b5dadf 86
vijaynvr 0:bc9f26b5dadf 87 #endif
vijaynvr 0:bc9f26b5dadf 88
vijaynvr 0:bc9f26b5dadf 89