11#include <pcd8544_font_utils.h>
22
33#include "esp_log.h"
4+ // @TODO better bigCharPositions types!
5+
46/**
57 * @param charArr array of chars to which font data will be passed
68 * @param buffer source of text
1113 * @TODO validate string, skip special chars, cleanup array sizes!
1214 * @TODO dynamic rows number calculation
1315 * */
14- static void fillCharsFromBuffer (uint8_t * * charArr , char * buffer , int nrOfChars , uint8_t ( * bigCharPositions ) [6 ]) {
16+ static void fillCharsFromBuffer (uint8_t * * charArr , char * buffer , int nrOfChars , uint8_t bigCharPositions [6 ]) {
1517 for (int i = 0 ; i <= nrOfChars ; i ++ ) {
1618 // convert to int and fill charArr with pointers to big font characters
1719 if (* buffer != '.' && * buffer >= '0' && * buffer <= '9' ) {
1820 char single_char_buf [1 ] = {* buffer };
1921 * charArr = fontDetermination [atoi (single_char_buf )];
20- ( * bigCharPositions ) [i ] = 16 ;
22+ bigCharPositions [i ] = 16 ;
2123 } else if (* buffer == '.' ) {
2224 * charArr = fontDetermination [10 ];
23- ( * bigCharPositions ) [i ] = 3 ;
25+ bigCharPositions [i ] = 3 ;
2426 } else {
2527 * charArr = NULL ;
26- ( * bigCharPositions ) [i ] = 0 ;
28+ bigCharPositions [i ] = 0 ;
2729 }
2830 buffer ++ ;
2931 charArr ++ ;
3032 }
3133}
3234
33- void vGetSpeedChars (uint8_t * charArr [4 ], float * speed , uint8_t ( * bigCharPositions )[ 6 ] ) {
35+ void vGetSpeedChars (uint8_t * charArr [4 ], float * speed , uint8_t * bigCharPositions ) {
3436 // create buffer for converted float
3537 char buffer [10 ];
3638 // prevent overflow
@@ -48,10 +50,10 @@ void vGetSpeedChars(uint8_t *charArr[4], float *speed, uint8_t (*bigCharPosition
4850 } else {
4951 snprintf (buffer , 10 , "%d.%d" , speedInt , fraction );
5052 }
51- fillCharsFromBuffer (charArr , buffer , 4 , & bigCharPositions );
53+ fillCharsFromBuffer (charArr , buffer , 4 , bigCharPositions );
5254}
5355
54- void vGetDistanceChars (uint8_t * charArr [6 ], float * distance , uint8_t ( * bigCharPositions )[ 6 ] ) {
56+ void vGetDistanceChars (uint8_t * charArr [6 ], float * distance , uint8_t * bigCharPositions ) {
5557 char buffer [10 ];
5658 // @TODO handle distance > 999.9
5759 // @TODO handle distance > 99.99
@@ -64,5 +66,5 @@ void vGetDistanceChars(uint8_t *charArr[6], float *distance, uint8_t (*bigCharPo
6466 } else {
6567 snprintf (buffer , 10 , "%d.%d" , distanceInt , fraction );
6668 }
67- fillCharsFromBuffer (charArr , buffer , 10 , & bigCharPositions );
69+ fillCharsFromBuffer (charArr , buffer , 10 , bigCharPositions );
6870}
0 commit comments