Las funciones de slot están contenidas en un fichero de cabecera incluído por la máscara correspondiente. Estas son las funciones que debes rellenar para introducir tu lógica en el pvserver. Muchas funciones interesantes se introducirán en este wiki. Estos templates puedes emplearlos utilizando Copiar&Pegar en tu propio pvserver y adaptarlos a tus necesidades.
DATA define tu estructura de datos local en la máscara. Esta estructura se puede comparar con la zona de datos privada de una clase C++, pero en ANSI C.
slot<X> manejará los eventos que ocurran. Dentro del slot<X> puedes evaluar los nombres de los widgets, que están en el enum de la máscara mask<X>.
//############################################################### //# mask1_slots.h for ProcessViewServer created: Sun May 14 10:23:11 2006 //# please fill out these slots //# here you find all possible events //# Yours: Lehrig Software Engineering //############################################################### // todo: uncomment me if you want to use this data aquisiton // also uncomment this classes in main.cpp and pvapp.h // also remember to uncomment rllib in the project file //extern rlModbusClient modbus; //extern rlSiemensTCPClient siemensTCP; //extern rlPPIClient ppi; typedef struct // (todo: define your data structure here) { } DATA; static int slotInit(PARAM *p, DATA *d) { if(p == NULL || d == NULL) return -1; //memset(d,0,sizeof(DATA)); return 0; } static int slotNullEvent(PARAM *p, DATA *d) { if(p == NULL || d == NULL) return -1; return 0; } static int slotButtonEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotButtonPressedEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotButtonReleasedEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotTextEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotSliderEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotCheckboxEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotRadioButtonEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotGlInitializeEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotGlPaintEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotGlResizeEvent(PARAM *p, int id, DATA *d, int width, int height) { if(p == NULL || id == 0 || d == NULL || width < 0 || height < 0) return -1; return 0; } static int slotGlIdleEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotTabEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotTableTextEvent(PARAM *p, int id, DATA *d, int x, int y, const char *text) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000 || text == NULL) return -1; return 0; } static int slotTableClickedEvent(PARAM *p, int id, DATA *d, int x, int y, int button) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000 || button < 0) return -1; return 0; } static int slotSelectionEvent(PARAM *p, int id, DATA *d, int val, const char *text) { if(p == NULL || id == 0 || d == NULL || val < -1000 || text == NULL) return -1; return 0; } static int slotClipboardEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotRightMouseEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; //pvPopupMenu(p,-1,"Menu1,Menu2,,Menu3"); return 0; } static int slotKeyboardEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotMouseMovedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotMousePressedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotMouseReleasedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotUserEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; }