en procédant ainsi j'ai Error [1109] type mismatch in redeclaration of 'SMTP_FROM'
...Code:
2
Code:
2
Version imprimable
en procédant ainsi j'ai Error [1109] type mismatch in redeclaration of 'SMTP_FROM'
...Code:
2
Code:
2
Comme je l'ai dit plus haut, je pense que le problème vient de l'utilisation de la fonction strcpypgm2ram() qui copie de rom en ram (Il faudrait confirmer en lisant la documentation de strcpypgm2ram() si on ne veut pas continuer à l'aveuglette).
Or tu as maintenant un message déjà en ram puisque tu as défini un tableau.
Tu devrais remplacer cette fonction, lorsqu'elle est utilisée dans ce cas, par un simple strcpy() (ou un strcat() ou un sprintf() selon le besoin), donc une construction de chaines de ram en ram, dans la fonction SMTPTask() (fonction assez dégueue :aie: avec ses goto dans des case ramenant au beau milieu d'autres case !):
Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
smptp.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
main.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
Je te remercie souviron34 mais ton code semble encore faire appel à des #define mon but serait de les supprimer et les remplacer à des char pour que les chaines soient modifiables pendant l'execution du programme.
--
De mon côté, j'ai essayé ceci, ça fonctionne en partie seulement, car j'ai un pb avec lequi est doit être inséré en fin de chaine de SMTP_FROM:Code:/r/n
Mon problème se situe ici :Code:
2
3
4
5
6
7
8
9
10
11
Maintenant que SMTP_FROM est déclaré par un ROM char, je ne sais pas comment lui ajouter en fin de chaine \r\n comme cela est fait plus haut avec #define.Code:
2
3
4
5
6
La ligne ROM char SMTP_FROM[32]; contiendra une chaine directement entrée par l'utilisateur pendant l'execution du programme, donc sa longueur ne sera pas connue à l'avance ( au moment ou le programme sera compilé ) , comment puis je faire ajouter \r\n en fin de chaine SMTP_FROM ?
A titre d'essai ceci, la compilation se passe bien mais l'execution du programme ne se passe pas normalement :
Pourriez vous m'aider svp ?Code:
2
3
4
Mais si SMTP_FROM[32] est en ROM, tu ne pourras plus le modifier !
As-tu vu mon message précédent ?
si je déclare ainsi :
et modifie la fonction :Code:
2
Alors le code compile mais le programme affiche de nouveau des caractères non lisibles ...Code:
2
3
4
5
6
HELO
´ûo¶šìðkì_ð(0)
Pourtant, le case SMTP_MAILFROM ne fait appel qu'a des chaines stockées en RAM, peut etre est la fonction SmtpTaskDetailString qui pose pb ? ( elle se trouve à la fin du ficher smtp.c )
Pourquoi as-tu DEUX définitions de SMTP_FROM ?Code:
2
c'est une erreur de copié / collé . :oops:
Code:
2
Enfin, as-tu
ouCode:ROM char SMTP_FROM[32]="adresse@test.com";
???Code:char SMTP_FROM[32]="adresse@test.com";
Désolé, voici ce que j'ai :
Avec ceci , les caractères envoyés ne sont pas lisibles.Code:
2
3
Simplement parce que je croyais que dans ton code c'était ce que tu souhaitais..
ça ne change strictement rien à mon exemple si ce ne sont pas des define...
smtp.c :
Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
main.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
ou toute autre combinaison équivalente...
par exemple :
smtp.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
main.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
ou bien
smtp.c :
Code:
2
3
4
5
6
7
8
main.c
Code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Merci , je vais essayer de m'inspirer des modifications que vous me proposez dans SMTP.c
Cependant ce que je cherche à faire est un peu différent de votre proposition, je me suis mal expliqué :? ( désolé )
Dans mon SMTP.c ( ci - joint )
je voudrais remplacer :
par des extern char ( variables définies en RAM ) afin qu'elles sont modifiables pendant l'execution du programme.Code:
2
3
4
Actuellement SMTP.c à ses fonctions d'envoi d'email basé avec des paramètres figés, définis par des #define soit un stockage en ROM.
Le fait de modifier le code et passer par des paramètres définis par des char, soit un stockage en RAM, necessite de modifier les autres fonctions de SMTP.c qui font appel aux #define remplacés par des char ...:roll:
Et cela, je ne sais justement pas comment faire. :?
Je vous remercide de votre aide et patience :oops:
Merci pour ta remarque, mais mon pb se situe ici :
Actuellement SMTP.c à ses fonctions d'envoi d'email basé avec des paramètres figés, définis par des #define soit un stockage en ROM.
Le fait de modifier le code et passer par des paramètres définis par des char, soit un stockage en RAM, necessite de modifier les autres fonctions de SMTP.c qui font appel aux #define remplacés par des char ...
je ne comprend rien...
On t'a donné toutes les solutions..