3.1 KiB
3.1 KiB
| title | description | keywords |
|---|---|---|
| StringUtils - String Manipulation Utilities | A utility class for string manipulation and type conversion for ESP-32 applications | ESP-32, C++17, string utilities, type conversion, industrial application, Modbus |
StringUtils
Path: src/modbus/StringUtils.h
Revision History: Initial documentation
StringUtils provides a set of utility functions for string manipulation and type conversion in an industrial ESP-32 application. It enables parsing and converting string values to native C types, which is particularly useful for configuration and communication scenarios in Modbus applications.
REQUIREMENTS
No specific hardware pins are required as this is a software utility helper.
PROVIDES
E_VALUE_TYPEenumeration for representing different value types- Template function
convertTo<T>for converting strings to various native types - Type detection functions (
isInteger,isFloat,detectType) - Hex data printing utility
FEATURES
- Specialized template implementations for converting strings to:
- Integer types (
int,short,long int) - Floating-point (
float) - Boolean values (
bool)
- Integer types (
- Type detection to determine if a string represents a valid integer or floating-point value
- Platform-specific adaptations for string tokenization across different compilers
- Hex data visualization for debugging
DEPENDENCIES
./xtypes.h- Standard C libraries:
<stdio.h>,<string.h>,<ctype.h>,<stdlib.h>
graph TD
StringUtils --> xtypes
StringUtils --> "Standard C Libraries"
BEHAVIOUR
The StringUtils component follows a simple conversion and detection workflow:
graph LR
Input[Input String] --> Detect[Detect Type]
Detect --> |Integer| ConvertInt[Convert to Integer]
Detect --> |Float| ConvertFloat[Convert to Float]
Detect --> |Boolean| ConvertBool[Convert to Boolean]
Detect --> |Text| HandleText[Handle as String]
ConvertInt --> Result[Native Type Result]
ConvertFloat --> Result
ConvertBool --> Result
HandleText --> Result
TODOS
PERFORMANCE
- Consider using
strtol,strtof, etc. for all conversions to provide better error handling - Optimize the string scanning operations for large strings
- Add string length validation to avoid buffer overruns
SECURITY
- Add input validation to prevent exploitation through malformed strings
- Consider adding bounds checking for numeric conversions
- Implement sanitization for strings that will be used in sensitive contexts
COMPLIANCE
- Ensure compatibility with C17 standard
- Verify that all functions work correctly in the target ESP-32 environment
- Audit for potential compliance issues with industrial standards
RECOMMENDATIONS
- Extend type support to include additional numeric types as needed
- Add more robust error handling for conversion failures
- Consider adding string formatting utilities for consistent output generation
- For improved performance, use static or cached conversions for frequently used values