#include "fxlib.h"
#include "stdio.h"
unsigned int key;
int caractere, caractere2;
char chaine[21];
char ident[21];
char domaine[30];
char mdp[30];
char destinataire[40];
char sujet[30];
char corps[50];
int AddIn_main(int isAppli, unsigned short OptionNum){
Bdisp_AllClr_DDVRAM();
demmarage();
identif();
return 1;
}
demmarage(){
int key;
Bdisp_AllClr_DDVRAM();
PrintMini(80,58,"Version 1.0",0);
Bdisp_DrawLineVRAM(10,10,10,50);
Bdisp_DrawLineVRAM(10,50,117,50);
Bdisp_DrawLineVRAM(117,50,117,10);
Bdisp_DrawLineVRAM(10,10,117,10);
Bdisp_DrawLineVRAM(10,10,63,25);
Bdisp_DrawLineVRAM(117,10,63,25);
locate(7,5);
Print("Messagerie");
do{
GetKey(&key);
} while(key != 30004);
Bdisp_AllClr_DDVRAM();
}
identif(){
Bdisp_AllClr_DDVRAM();
locate(1,1);
Print("Identifiant:");
locate(1,2);
Print("+------------------+");
locate(1,3);
Print("| |");
locate(1,4);
Print("+------------------+");
remplichaine();
caractere2=0;
do{
caractere2++;
ident[caractere2] = chaine[caractere2];
} while(caractere2+1 != caractere);
========================== > ICI < ========
locate(2,3);
Print(ident);
do{
GetKey(&key);
} while(key != 30004);
}
remplichaine(){
caractere=0;
do{
caractere++;
======================= > ET ICI < ========
locate(2,3);
Print(chaine);
GetKey(&key);
//==========Conversion==========
if (key==48)key= 71;
if (key==46)key= 61;
if (key==15)key= 51;
if (key==135)key= 41;
if (key==30004)key= 31;
if (key==49)key= 72;
if (key==50)key= 62;
if (key==51)key= 52;
if (key==137)key= 42;
if (key==153)key= 32;
if (key==52)key= 73;
if (key==53)key= 63;
if (key==54)key= 53;
if (key==169)key= 43;
if (key==185)key= 33;
if (key==55)key= 74;
if (key==56)key= 64;
if (key==57)key= 54;
if (key==30025)key= 44;
if (key==30015)key= 34;
if (key==187)key= 75;
if (key==30046)key= 65;
if (key==40)key= 55;
if (key==41)key= 45;
if (key==44)key= 35;
if (key==14)key= 25;
if (key==30001)key= 76;
if (key==149)key= 66;
if (key==133)key= 56;
if (key==129)key= 46;
if (key==130)key= 36;
if (key==131)key= 26;
if (key==30007)key= 77;
if (key==205)key= 67;
if (key==168)key= 57;
if (key==30002)key= 47;
if (key==30023)key= 37;
if (key==30021)key= 27;
if (key==30006)key= 78;
if (key==30008)key= 68;
if (key==30016)key= 58;
if (key==30020)key= 38;
if (key==30018)key= 28;
if (key==30009)key= 79;
if (key==30010)key= 69;
if (key==30011)key= 59;
if (key==30012)key= 49;
if (key==30013)key= 39;
if (key==30014)key= 29;
//==============================
if(key==31)caractere=19;
if(key==76)chaine[caractere]='a';
if(key==66)chaine[caractere]='b';
if(key==56)chaine[caractere]='c';
if(key==46)chaine[caractere]='d';
if(key==36)chaine[caractere]='e';
if(key==26)chaine[caractere]='f';
if(key==75)chaine[caractere]='g';
if(key==65)chaine[caractere]='h';
if(key==55)chaine[caractere]='i';
if(key==45)chaine[caractere]='j';
if(key==35)chaine[caractere]='k';
if(key==25)chaine[caractere]='l';
if(key==74)chaine[caractere]='m';
if(key==64)chaine[caractere]='n';
if(key==54)chaine[caractere]='o';
if(key==73)chaine[caractere]='p';
if(key==63)chaine[caractere]='q';
if(key==53)chaine[caractere]='r';
if(key==43)chaine[caractere]='s';
if(key==33)chaine[caractere]='t';
if(key==72)chaine[caractere]='u';
if(key==62)chaine[caractere]='v';
if(key==52)chaine[caractere]='w';
if(key==42)chaine[caractere]='x';
if(key==32)chaine[caractere]='y';
if(key==71)chaine[caractere]='z';
if(key==61)chaine[caractere]='.';
if(key==57)chaine[caractere]='@';
} while(caractere!=19);
if(key==31)chaine[caractere]='\0';
if(key!=31)chaine[caractere+1]='\0';
}
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section
Citer : Posté le 19/04/2015 21:17 | #
Si tu veux lire des float il faut utiliser le format approprié ("%f"), ou la fonction appropriée. Par ailleurs, je préconise toujours les double ("%lf") mais ce n'est pas un choix obligatoire.
#include <stdlib.h>
char ch[] = "-0835.8480";
double f1;
sscanf(ch,"%lf",&f1); // f1 = -835.848
double f2 = atof(ch); // f2 = -835.848
Jeandu56 Invité
Citer : Posté le 19/04/2015 21:20 | #
Désoler de t'embeter mais tu peux me faire vite fait un exemple avec un sscanf et un print qui l'affiche après stp tu me sauverais.
Citer : Posté le 20/04/2015 10:30 | #
Ben, je vois pas du tout l'intérêt... tu veux lire une chaîne pour avoir un float et ensuite écrire ce float dans une chaîne pour l'afficher ? Ça n'a aucun intérêt ou alors il faut te servir de la variable entre-temps.
#include <stdlib.h>
#include "fxlib.h"
#include "EasyInput.h"
int AddIn_main(int isAppli, unsigned short optionNum)
{
unsigned int key; // id de la touche pressee
char *str = EI_input_string(10,"0123456789.");
char ch[30];
double d1 = atof(str);
double d2 = 2*d1; // on fait les calculs
sprintf(ch,"%lf",d2); // ftoa() n'est pas standard
PopUpWin(1); // affichage d'une popup
locate(3,4); // deplacement du curseur
Print((unsigned char *)ch); // affichage chaine
GetKey(&key); // attente clavier
}
Il faut savoir précisément ce que tu veux faire après...
Jeandu56 Invité
Citer : Posté le 20/04/2015 14:08 | #
Je veux pourvoir utiliser une formule en cliquant sur un bouton, donc oui, j utilise entre temps la variable
Jeandu56 Invité
Citer : Posté le 20/04/2015 15:55 | #
Quand je compile j'ai un message d'erreur :
Executing Hitachi SH C/C++ Compiler/Assembler phase
set SHC_INC=D:\Caltoche\AC\OS\SH\include
set PATH=D:\Caltoche\AC\OS\SH\bin
set SHC_LIB=D:\Caltoche\AC\OS\SH\bin
set SHC_TMP=D:\Caltoche\Mes addins\Meca\Meca\Debug
Executing Hitachi OptLinker04 phase
"D:\Caltoche\AC\OS\SH\bin\Optlnk.exe" -subcommand=C:\Users\aclec\AppData\Local\Temp\hmk2F9F.tmp
** L2310 (E) Undefined external symbol "_BR_Size" referenced in "D:\Caltoche\AC\OS\FX\lib\setup.obj"
Optimizing Linkage Editor Abort
HMAKE MAKE UTILITY Ver. 1.1
Copyright (C) Hitachi Micro Systems Europe Ltd. 1998
Copyright (C) Hitachi Ltd. 1998
ERROR: Process failed with return code: 1
Build was not successful.
J'ai bien inclut toutes les librairies.
Citer : Posté le 20/04/2015 15:59 | #
Non mais attends, faut pas compiler le code que je t'ai donnée comme ça.
Il faut créer un projet et laisser toutes les pragma en bas (c'est parce que tu les a virées que tu as ce message). Ne remplace que la fonction AddIn_main() en vérifiant l'inclusion de tous les headers.
Ce n'est qu'un exemple que je t'ai donné, pas un truc tout prêt et fonctionnel.
jeromedu29 Invité
Citer : Posté le 23/04/2015 21:01 | #
Bonjour, pouvez vous m'expliquez comment puis-je récupérer des information venant du port série et les afficher. Vous me sauveriez la vie.
Citer : Posté le 23/04/2015 21:05 | #
Ha. Ça va pas être si facile, surtout qu'on ne connaît pas ton niveau de compétence.
Bon, pour faire simple le système a des syscalls (fonctions intégrées) pour faire ça, on peut les appeler simplement, il y une jump table à adresse fixe, on appelle les sycalls en fonction de leur numéro en sautant à cette adresse avec les paramètres voulus.
Il suffit finalement d'avoir une application native (souvent, du C, mais on peut aussi bosser en C++ et, forcément, en assembleur) qui ouvre le port série, le gère et le ferme avec ces syscalls. Après, il faut consulter la documentation pour tout ce qui est paramétrage.
Si je peux me permettre, ce serait pour quoi faire ?
aclec Invité
Citer : Posté le 11/05/2015 18:05 | #
Bonjour, SDK n arrete pas de me mettre cela:
Could not open source file "screen.hpp"
Pouvez vous résoudre mon pb car je l ai pourtant add ds les header.
Citer : Posté le 12/05/2015 08:41 | #
Ajouter le fichier dans les headers ne sert à rien : en l'occurrence, il ne faut même pas les ajouter (bizarrerie du SDK) sous peine d'avoir un message d'erreur type :
Il faut bien penser que le header est inclus de manière relative au fichier source : ainsi, lorsqu'on écrit :
Il faut que le fichier myheader.h se trouve dans le même dossier que le fichier source.
louisdu26 Invité
Citer : Posté le 18/05/2015 19:08 | #
Bonjour, je cherche une librairie me permettant d écrire des lettres les une après les autre et de revenir automatique à la ligne vous en connaissez une ?
En fait c'est pour récupérer des lettre du port tx rx et les affichez a la suite.
Citer : Posté le 18/05/2015 19:18 | #
Ben t'as l'addin Serial Monitor de Ziqumu qui fait ça directement, mais il n'est pas parametrable on-calc
louisdu26 Invité
Citer : Posté le 18/05/2015 19:21 | #
Je l ai vu mais SDK ne veut pas le recompiler et ça librairie ne fonctionne pas sur SDK il me dit que les fonctions n'existe pas.
louisdu26 Invité
Citer : Posté le 18/05/2015 19:28 | #
En faite si j arrivais à recompiler son addin ce serait parfait mais je n y arrive pas si tu as la solution, je la veux bien stp.
Citer : Posté le 18/05/2015 19:29 | #
Peut-on avoir les messages d'erreur ?
louisdu26 Invité
Citer : Posté le 18/05/2015 19:57 | #
C:\Users\aclec\Desktop\Sources\compatibilityscripts.cpp(86) : C5020 (E) Identifier "memcpy" is undefined
C:\Users\aclec\Desktop\Sources\compatibilityscripts.cpp(87) : C5020 (E) Identifier "Sleep" is undefined
C:\Users\aclec\Desktop\Sources\compatibilityscripts.cpp(92) : C5020 (E) Identifier "IsKeyDown" is undefined
C:\Users\aclec\Desktop\Sources\compatibilityscripts.cpp(55) : C5550 (W) Variable "sc0015" was set but never used
Citer : Posté le 18/05/2015 20:03 | #
Tu as mis #include "fxlib.h" ?
louisdu26 Invité
Citer : Posté le 18/05/2015 20:14 | #
oui
Citer : Posté le 18/05/2015 20:17 | #
Tu l'a bien mis dans "compatibiltyscripts.cpp" et non dans les fichiers du projet du SDK (dans les préférences du projet, on ne met que les .c / .cpp) ?
louisdu26 Invité
Citer : Posté le 18/05/2015 20:20 | #
Je doit mettre #include "fxlib.h" ds compatibility script ?
Citer : Posté le 18/05/2015 20:21 | #
oui , tu dois mettre #include "mon_fichier" dans chacun de tes fichiers où tu veux utiliser les fonctions (ou autres composants tel que les macros, les énumerations, les structures, etc ) définies dans le fichier mon_fichier