Date post: | 02-Apr-2015 |
Category: |
Documents |
Upload: | elpidio-villella |
View: | 105 times |
Download: | 3 times |
Lab 10 – Integración de CLIPS con C++ y JAVA
Integrantes:Gonzales, CesarCespedes, GiorgioZuñiga, Rodrigo
GENERANDO LOS EJECUTABLES
Link Oficial de descargas Clips:http://sourceforge.net/projects/clipsrules/files/CLIPS/6.30/
Debe estar instalado el programa Clips: CLIPS_6.30_Beta_Windows_Application_Installer_R3.msi
Herramientas instaladas: Microsoft Visual Studio 2008. Clips 6.30
GENERANDO LOS EJECUTABLES
Se debe instalar el código fuente usando CLIPS 6.30 Windows Source Code Installer.El código fuente(comprimido en el archivo Projects.zip) se instala en el directorio de instalación.Incluye los proyectos CLIPSWin y CLIPSDOS:Microsoft Visual C++ Express 2008Borland Turbo C++ 2006
Integrando Clips 6.30 con Visual C++ 2008http://www.youtube.com/watch?v=yDt8QPHGPws
DECLARANDO FUNCIONES EXTERNAS DEFINIDAS POR EL USUARIO
Existen dos opciones:Modificar los el archivo
userfunctions.c utilizando las sentencias UserFunctions o EnvUserFunctions.
Definir la función en el nuevo archivo C/C++.
DefineFunction(functionName,functionType,
functionPointer,actualFunctionName);
DefineFunction(functionName,functionType, functionPointer,actualFunctionName);
functionName: Nombre de la función que sera utilizada desde CLIPS.functionType: Es el tipo del valor que será retornado a CLIPS. Puede ser:
functionPointer: Puntero a la función. El identificador PTIF puede ser utilizada antes del nombre de la función para hacer un “type-casting” como puntero a una función devolviendo un entero (especialmente para ciertos compiladores).
actualFunctionName: Es una representación del tercer argumento. Este nombre debe ser igual al tercer argumento, pero encerrada en comillas.
Adicionalmente a DefineFunction(), se puede utilizar_
DefineFunction2(functionName,functionType,functionPointer,
actualFunctionName,functionRestrictions);
Los cuatro primeros argumentos son iguales a los de DefineFunction(), el quinto es un string que sirve de restricción para indicar el número y tipo de argumentos que la función de CLIPS espera.
<min-args> <max-args> [<default-type> <types>*]
0 – 9: Para indicar el mínimo y máximo número de argumentos. * : Para indicar que no hay restricción en el numero de argumentos.
Los tipos de datos se presentan a continuación:
EJEMPLOS La restricción para una función que requiere un mínimo
de tres argumentos es:
"3*" La restricción para una función que requiere NO MÁS
de cinco argumentos es:
"*5" La restricción para una función que requiere POR LO
MENOS tres y NO MÁS de cinco argumentos (cada uno de los cuales debe ser un entero o float) es:
"35n" La restricción para una función que requiere
exactamente seis argumentos (de los cuales, el primero debe ser un STRING, el tercero un INTEGER y los demás argumentos FLOATS) es:
"66fsui"