-
Notifications
You must be signed in to change notification settings - Fork 5
/
cy_string_utils.h
108 lines (95 loc) · 4.39 KB
/
cy_string_utils.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
* Copyright 2019-2024, Cypress Semiconductor Corporation (an Infineon company) or
* an affiliate of Cypress Semiconductor Corporation. All rights reserved.
*
* This software, including source code, documentation and related
* materials ("Software") is owned by Cypress Semiconductor Corporation
* or one of its affiliates ("Cypress") and is protected by and subject to
* worldwide patent protection (United States and foreign),
* United States copyright laws and international treaty provisions.
* Therefore, you may use this Software only as provided in the license
* agreement accompanying the software package from which you
* obtained this Software ("EULA").
* If no EULA applies, Cypress hereby grants you a personal, non-exclusive,
* non-transferable license to copy, modify, and compile the Software
* source code solely for use in connection with Cypress's
* integrated circuit products. Any reproduction, modification, translation,
* compilation, or representation of this Software except as specified
* above is prohibited without the express written permission of Cypress.
*
* Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress
* reserves the right to make changes to the Software without notice. Cypress
* does not assume any liability arising out of the application or use of the
* Software or any product or circuit described in the Software. Cypress does
* not authorize its products for use in any products where a malfunction or
* failure of the Cypress product may reasonably be expected to result in
* significant property damage, injury or death ("High Risk Product"). By
* including Cypress's product in a High Risk Product, the manufacturer
* of such system or application assumes all risk of such use and in doing
* so agrees to indemnify Cypress against all liability.
*/
/*
* @file
* The string utilities module is a collection of string conversion helpers to convert between integer and strings
*
*/
#ifndef __CY_STRING_H__
#define __CY_STRING_H__
#ifdef __cplusplus
extern "C" {
#endif
/** \addtogroup string_utils
* The string utilities module is a collection of string conversion helpers to convert between integer and strings.
*/
/*****************************************************************************/
/**
*
* @addtogroup group_string_func
*
* The string utilities module is a collection of string conversion helpers to convert between integer and strings
*
* @{
*/
/*****************************************************************************/
/*!
******************************************************************************
* Convert a decimal or hexidecimal string to an integer.
*
* @param[in] str The string containing the value.
*
* @return The value represented by the string.
*/
uint32_t cy_generic_string_to_unsigned( const char* str );
/**
* Converts a decimal/hexidecimal string (with optional sign) to a signed long int
* Better than strtol or atol or atoi because the return value indicates if an error occurred
*
* @param[in] string : The string buffer to be converted
* @param[in] str_length : The maximum number of characters to process in the string buffer
* @param[out] value_out : The unsigned in that will receive value of the the decimal string
* @param[in] is_hex : 0 = Decimal string, 1 = Hexidecimal string
*
* @return the number of characters successfully converted (including sign). i.e. 0 = error
*
*/
uint8_t cy_string_to_signed( const char* string, uint16_t str_length, int32_t* value_out, uint8_t is_hex );
/**
* Converts a decimal/hexidecimal string to an unsigned long int
* Better than strtol or atol or atoi because the return value indicates if an error occurred
*
* @param[in] string : The string buffer to be converted
* @param[in] str_length : The maximum number of characters to process in the string buffer
* @param[out] value_out : The unsigned in that will receive value of the the decimal string
* @param[in] is_hex : 0 = Decimal string, 1 = Hexidecimal string
*
* @return the number of characters successfully converted. i.e. 0 = error
*
*/
uint8_t cy_string_to_unsigned( const char* string, uint8_t str_length, uint32_t* value_out, uint8_t is_hex );
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* __CY_STRING_H__ */