https://github.com/melexis/mlx90640-lib ... /functions
https://github.com/linkineo/REDar/blob/ ... 0640_API.c
These two links are useful from my google findings. The first one is a library created by the company in CPP but they don't appear to offer it's library in C.
So I decided to search Github for LMX90640 as a keyword filtering on .C and found REDar. However when coping it to my internal project it seems to take issues with mostly the for loops because I'm not running on a C99 compliler.
My question is, Is there a simpler way to complete this task. Maybe a better place to source code for the specific situation or is the path of lease resistance in this case is to convert all the for loops to while loops or can I expect even more then that to be an issue even if I were to rewrite those. I would like to get my CAM up and running on NONOS SDK 3.0.2 if possible, I would like to avoid Lua / Micropython of course and stick with C....
Code: Select all
[osboxes@osboxes mlx90640]$ make MLX90640API
xtensa-lx106-elf-gcc -I. -DICACHE_FLASH -mlongcalls -c -o MLX90640_API.o MLX90640_API.c
MLX90640_API.c: In function 'MLX90640_CalculateTo':
MLX90640_API.c:329:5: error: 'for' loop initial declarations are only allowed in C99 mode
for( int i = 0; i < 2; i++)
^
MLX90640_API.c:329:5: note: use option -std=c99 or -std=gnu99 to compile your code
MLX90640_API.c:347:5: error: 'for' loop initial declarations are only allowed in C99 mode
for( int pixelNumber = 0; pixelNumber < 768; pixelNumber++)
^
MLX90640_API.c: In function 'MLX90640_GetImage':
MLX90640_API.c:458:5: error: 'for' loop initial declarations are only allowed in C99 mode
for( int i = 0; i < 2; i++)
^
MLX90640_API.c:476:5: error: 'for' loop initial declarations are only allowed in C99 mode
for( int pixelNumber = 0; pixelNumber < 768; pixelNumber++)
^
MLX90640_API.c: In function 'ExtractKsToParameters':
MLX90640_API.c:817:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 4; i++)
^
MLX90640_API.c: In function 'ExtractAlphaParameters':
MLX90640_API.c:851:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 6; i++)
^
MLX90640_API.c:860:13: error: redefinition of 'i'
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:851:13: note: previous definition of 'i' was here
for(int i = 0; i < 6; i++)
^
MLX90640_API.c:860:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:868:13: error: redefinition of 'i'
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:860:13: note: previous definition of 'i' was here
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:868:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:877:13: error: redefinition of 'i'
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:868:13: note: previous definition of 'i' was here
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:877:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:885:13: error: redefinition of 'i'
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:877:13: note: previous definition of 'i' was here
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:885:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:887:9: error: 'for' loop initial declarations are only allowed in C99 mode
for(int j = 0; j < 32; j ++)
^
MLX90640_API.c:904:13: error: redefinition of 'i'
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:885:13: note: previous definition of 'i' was here
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:904:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:919:13: error: redefinition of 'i'
for(int i = 0; i < 768; i++)
^
MLX90640_API.c:904:13: note: previous definition of 'i' was here
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:919:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 768; i++)
^
MLX90640_API.c: In function 'ExtractOffsetParameters':
MLX90640_API.c:952:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 6; i++)
^
MLX90640_API.c:961:13: error: redefinition of 'i'
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:952:13: note: previous definition of 'i' was here
for(int i = 0; i < 6; i++)
^
MLX90640_API.c:961:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:969:13: error: redefinition of 'i'
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:961:13: note: previous definition of 'i' was here
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:969:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:978:13: error: redefinition of 'i'
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:969:13: note: previous definition of 'i' was here
for(int i = 0; i < 8; i++)
^
MLX90640_API.c:978:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:986:13: error: redefinition of 'i'
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:978:13: note: previous definition of 'i' was here
for(int i = 0; i < 32; i ++)
^
MLX90640_API.c:986:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:988:9: error: 'for' loop initial declarations are only allowed in C99 mode
for(int j = 0; j < 32; j ++)
^
MLX90640_API.c: In function 'ExtractKtaPixelParameters':
MLX90640_API.c:1049:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:1051:9: error: 'for' loop initial declarations are only allowed in C99 mode
for(int j = 0; j < 32; j ++)
^
MLX90640_API.c:1068:13: error: redefinition of 'i'
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1049:13: note: previous definition of 'i' was here
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:1068:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1083:13: error: redefinition of 'i'
for(int i = 0; i < 768; i++)
^
MLX90640_API.c:1068:13: note: previous definition of 'i' was here
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1083:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 768; i++)
^
MLX90640_API.c: In function 'ExtractKvPixelParameters':
MLX90640_API.c:1147:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:1149:9: error: 'for' loop initial declarations are only allowed in C99 mode
for(int j = 0; j < 32; j ++)
^
MLX90640_API.c:1160:13: error: redefinition of 'i'
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1147:13: note: previous definition of 'i' was here
for(int i = 0; i < 24; i++)
^
MLX90640_API.c:1160:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1175:13: error: redefinition of 'i'
for(int i = 0; i < 768; i++)
^
MLX90640_API.c:1160:13: note: previous definition of 'i' was here
for(int i = 1; i < 768; i++)
^
MLX90640_API.c:1175:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 768; i++)
^
MLX90640_API.c: In function 'GetMedian':
MLX90640_API.c:1412:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i=0; i<n-1; i++)
^
MLX90640_API.c:1414:9: error: 'for' loop initial declarations are only allowed in C99 mode
for(int j=i+1; j<n; j++)
^
MLX90640_API.c: In function 'IsPixelBad':
MLX90640_API.c:1441:5: error: 'for' loop initial declarations are only allowed in C99 mode
for(int i=0; i<5; i++)
^
make: *** [MLX90640_API.o] Error 1
[osboxes@osboxes mlx90640]$