vlx lib
utilities.h@0:bc9f26b5dadf, 2015-02-08 (annotated)
- Committer:
- vijaynvr
- Date:
- Sun Feb 08 14:26:51 2015 +0000
- Revision:
- 0:bc9f26b5dadf
working
Who changed what in which revision?
User | Revision | Line number | New 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 |