initial commit

This commit is contained in:
Sylvain PILLOT 2023-02-19 21:48:15 +01:00
commit e957e1becc
12 changed files with 238 additions and 0 deletions

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Build files
/build-fx
/build-cg
/*.g1a
/*.g3a
# Python bytecode
__pycache__/
# Common IDE files
*.sublime-project
*.sublime-workspace
.vscode

38
CMakeLists.txt Normal file
View File

@ -0,0 +1,38 @@
# Configure with [fxsdk build-fx] or [fxsdk build-cg], which provide the
# toolchain file and module path of the fxSDK
cmake_minimum_required(VERSION 3.15)
project(MyAddin)
include(GenerateG1A)
include(GenerateG3A)
include(Fxconv)
find_package(Gint 2.9 REQUIRED)
set(SOURCES
src/main.c
# ...
)
# Shared assets, fx-9860G-only assets and fx-CG-50-only assets
set(ASSETS
# ...
)
set(ASSETS_fx
assets-fx/example.png
# ...
)
set(ASSETS_cg
assets-cg/example.png
# ...
)
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
target_compile_options(myaddin PRIVATE -Wall -Wextra -Os)
target_link_libraries(myaddin Gint::Gint)
if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
generate_g3a(TARGET myaddin OUTPUT "Scanftst.g3a"
NAME "ScanfTst" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)
endif()

BIN
DispCap1.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
assets-cg/example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,3 @@
example.png:
type: bopti-image
name: img_example

BIN
assets-cg/icon-sel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
assets-cg/icon-uns.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
assets-fx/example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,3 @@
example.png:
type: bopti-image
name: img_example

BIN
assets-fx/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

7
data.txt Normal file
View File

@ -0,0 +1,7 @@
z
12345
6789.123
a
b
987
-456.321

174
src/main.c Normal file
View File

@ -0,0 +1,174 @@
#include <gint/display.h>
#include <gint/keyboard.h>
#include <stdio.h>
#include <stdlib.h>
#include <gint/gint.h>
#include <fxlibc/printf.h>
char c;
char c1, c2;
char temp1, temp2;
int i1, i2;
float f1, f2;
float sd;
float sf;
int n[9];
void operate( void )
{
FILE* fichier = fopen( "data.txt", "r" );
fscanf( fichier, "%c%n", &c, &n[0] );
fscanf( fichier, "%d%n", &i1, &n[1] );
fscanf( fichier, "%f%n", &f1, &n[2] );
/*
fscanf( fichier, "%c", &temp1 );
fscanf( fichier, "%c", &c1 );
fscanf( fichier, "%c", &temp2 );
fscanf( fichier, "%c", &c2 );
*/
fscanf( fichier, "%c%n%c%n%c%n%c%n", &temp1, &n[3], &c1, &n[4], &temp2, &n[5], &c2, &n[6] );
fscanf( fichier, "%u%n", &i2, &n[7] );
fscanf( fichier, "%g%n", &f2, &n[8] );
fclose( fichier );
}
int main(void)
{
__printf_enable_fp();
dclear(C_WHITE);
dtext(1, 1, C_BLACK, "Sample fxSDK add-in.");
dupdate();
gint_world_switch( GINT_CALL( operate ));
dprint( 1, 20, C_GREEN, "0/ FILE value : char : %c - n= %d ", c, n[0] );
dprint( 1, 30, C_BLUE, "1/ FILE value : integer : %d - n= %d ", i1, n[1] );
dprint( 1, 40, C_RED, "2/ FILE value : float : %f - n= %d ", f1, n[2] );
dprint( 1, 50, C_GREEN, "3/ FILE value : char : %c - %c - n= %d ", temp1, c1, n[4] );
dprint( 1, 60, C_GREEN, "4/ FILE value : char : %c - %c - n= %d ", temp2, c2, n[6] );
dprint( 1, 70, C_BLUE, "5/ FILE value : integer : %d - n= %d ", i2, n[7] );
dprint( 1, 80, C_RED, "6/ FILE value : float : %f - n= %d ", f2, n[8] );
sscanf( "6789.123", "%f", &sf );
sscanf( "-123456789.123456789", "%f", &sd );
dprint( 1, 90, C_RED, "7/ STR value : float : %f ", sf );
dprint( 1, 100, C_RED, "8/ STR value : float : %f ", sd );
char tab[10]={0};
int n;
sscanf( " AbCdEfgHiJkLmNoP", "%5c%n", &tab[0], &n );
dprint( 1, 110, C_GREEN, "9/ STR value : char* : %s - n= %d", tab, n );
sscanf( " AbCdEfgHiJkLmNoP", " %5c%n", &tab[0], &n );
dprint( 1, 120, C_GREEN, "10/ STR value : char* : %s n= %d", tab, n );
sscanf( " AbCdEfgHiJkLmNoP", "%% %10c%n", &tab[0], &n );
dprint( 1, 130, C_GREEN, "11/ STR value : char* : %s n= %d", tab, n );
char str[30];
sscanf( " AbCdEfgHiJkLmNoP", "%s%n", &str[0], &n );
dprint( 1, 140, C_GREEN, "12/ STR value : char* : %s n= %d", str, n );
sscanf( " AbCdEfgHiJkLmNoP", " %s%n", &str[0], &n );
dprint( 1, 150, C_GREEN, "12/ STR value : char* : %s n= %d", str, n );
sscanf( " AbCdEfgHiJkLmNoP", "%10s%n", &str[0], &n );
dprint( 1, 160, C_GREEN, "13/ STR value : char* : %s n= %d", str, n );
sscanf( " AbCdEfgHiJkLmNoP", " %10s%n", &str[0], &n );
dprint( 1, 170, C_GREEN, "14/ STR value : char* : %s n= %d", str, n );
int val = 123;
char buf[100];
sprintf(buf, "%p", (void*)&val);
dprint( 1, 180, C_BLACK,"15/ Original =%s\n", buf);
void *ptr;
sscanf(buf, "%p", &ptr);
dprint( 1, 190, C_BLACK,"16/ Read back=%p\n", ptr);
int *iPtr = ptr;
if (iPtr == &val) {
dprint( 1, 200, C_BLACK,"Pointers match\n");
}
char a;
short b;
unsigned int i;
int d;
sscanf( "4294967295", "%u", &i );
sscanf( "4294967295", "%hd", &b );
sscanf( "4294967295", "%hhd", &a );
dprint( 1, 210, C_BLUE, "17/ %d %d %u", a, b, i );
dupdate();
getkey();
dclear( C_WHITE);
sscanf( "1234567890", "%u", &i );
dprint( 1, 10, C_BLUE, "18/ full read : %u", i );
sscanf( "1234567890", "%1u", &i );
dprint( 1, 20, C_BLUE, "19/ 1 char max read : %u", i );
sscanf( "1234567890", "%5u", &i );
dprint( 1, 30, C_BLUE, "20/ 5 char max read : %u", i );
sscanf( "1234567890", "%20u", &i );
dprint( 1, 40, C_BLUE, "21/ 20 char max read : %u", i );
sscanf( "-1234567890", "%d", &d );
dprint( 1, 50, C_BLUE, "18/ full read : %d", d );
sscanf( "-1234567890", "%2d", &d );
dprint( 1, 60, C_BLUE, "19/ 2 char max read : %d", d );
sscanf( "-1234567890", "%5d", &d );
dprint( 1, 70, C_BLUE, "20/ 5 char max read : %d", d );
sscanf( "-1234567890", "%20d", &d );
dprint( 1, 80, C_BLUE, "21/ 20 char max read : %d", d );
float g;
sscanf( "12345.67890", "%f", &g );
dprint( 1, 100, C_RED, "18/ full read : %f", g );
sscanf( "12345.67890", "%1f", &g );
dprint( 1, 110, C_RED, "19/ 1 char max read : %f", g );
sscanf( "12345.67890", "%5f", &g );
dprint( 1, 120, C_RED, "20/ 5 char max read : %f", g );
sscanf( "12345.67890", "%20f", &g );
dprint( 1, 130, C_RED, "21/ 20 char max read : %f", g );
sscanf( "-12345.67890", "%f", &g );
dprint( 1, 140, C_RED, "18/ full read : %f", g );
sscanf( "-12345.67890", "%2f", &g );
dprint( 1, 150, C_RED, "19/ 2 char max read : %f", g );
sscanf( "-12345.67890", "%5f", &g );
dprint( 1, 160, C_RED, "20/ 5 char max read : %f", g );
sscanf( "-12345.67890", "%20f", &g );
dprint( 1, 170, C_RED, "21/ 20 char max read : %f", g );
dupdate();
getkey();
return 1;
}