zozo
Inscrit le: 03 Jan 2013 Messages: 125
|
Posté le: 21 Juin 2007 17:56 Sujet du message: |
|
|
Voici un code posté il y a qq temps par Philippe Lourenço De Oliveira sur ce forum.
Pour lire depuis une librairie, utiliser read.
Pour sauvegarder, utiliser save.
Voir aussi libname.
Code: |
Fichier Librairie classique permettant d'exécuter des librairies "DLL"
Définition des fonctions de chargement de librairie utilisant des DLLs
restart;
Load_DLL:=table():
`Load_DLL/init`:=proc() print(`Librairie permettant de charger des librairie utilisant des DLLs `);print(` Lourenço De Oliveira Philippe`);print(` Version : 17 mai 2005 - maple 9.5 `) end:
with(StringTools):
FileName_Load_DLL:="..\\Load_DLL.m":
Load_DLL[with_Dll]:=proc(M_filename)
read cat(Library_Folder, "\\", M_filename,".m"):
DLL_presentation();
seq(parse(Fonction_DLL[i],statement),i=1..nops(Fonction_DLL));
end proc:
save(Load_DLL,`Load_DLL/init`, FileName_Load_DLL):
Fichier Librairie type DLL
Définition des fonctions de communication RS232 :
restart;
DLL_presentation:=proc() print(`Procédures et fonctions pour réaliser une liaison RS232 sur port série d'ordinateur `);print(` Lourenço De Oliveira Philippe`);print(` Version : 17 mai 2005 - maple 9.5 `) end proc:
with(StringTools):
FileName_RS232_DLL:="..\\RS232_DLL.m":
#Nom da librairie dynamique DLL permettant de faire la communication RS232
Fonction_DLL:="FileName_RS232_Dll:=cat(Library_Folder,""/RSCOM.dll""):":
#Fonction qui permet d'initialiser le port série : COM1 ou COM2
Fonction_DLL:=Fonction_DLL,"OpenCom := define_external('OPENCOM', LIB=FileName_RS232_Dll, 'a'::string, RETURN::integer[4]):":
#Fonction qui referme le port série (notez qu'un seul port ne peut être ouvert à la fois)
Fonction_DLL:=Fonction_DLL,"CloseCom := define_external('CLOSECOM', LIB=FileName_RS232_Dll):":
#Fonction de temporisation
Fonction_DLL:=Fonction_DLL,"TimeInit := define_external('TIMEINIT', LIB=FileName_RS232_Dll):":
#Fonction_DLL:=Fonction_DLL,"Delaytime_ms := define_external('DELAY', LIB=FileName_RS232_Dll, 'a'::float[8]):":
#Fonction qui permet d'envoyer un octet 'formaté RS232' via le port série
Fonction_DLL:=Fonction_DLL,"SendByte := define_external('SENDBYTE', LIB=FileName_RS232_Dll, 'a'::integer[4]):":
#Fonction qui permet d'envoyer une chaine de caractère ASCII 'formaté RS232' via le port série
Fonction_DLL:=Fonction_DLL,"SendString := define_external('SENDSTRING', LIB=FileName_RS232_Dll, 'a'::string):":
#Fonction qui retourne le premier octect sortant du buffer du port série
Fonction_DLL:=Fonction_DLL,"ReadByte := define_external('READBYTE', LIB=FileName_RS232_Dll, RETURN::integer[4]):":
#Foncton qui retourne une chaine de caractère stockée dans le buffer du port série
Fonction_DLL:=Fonction_DLL,"ReadString := define_external('READSTRING', LIB=FileName_RS232_Dll, RETURN::string):":
#Fonction_DLL:=[Fonction_DLL]:
#RS232_DLL[Fonctions_DLL]:=[Fonction_DLL]:
#save(RS232_DLL,`RS232_DLL/init`, FileName_RS232_DLL);
save DLL_presentation, Fonction_DLL, FileName_RS232_DLL;
Utilisation dans un fichier Maple des librairies :
restart:with(plots):with(linalg):with(LinearAlgebra):
Library_Folder:="Library_Folder":#Chemin indiquant l'acces aux librairies
libname := libname,Library_Folder:
with(Load_DLL):
with_Dll(RS232_DLL):
with(RS232_Oscillo_TDS1012):
|
|
|