These are the "slot"-functions that must be filled out by the programmer of the visualization. The framework is initially generated by pvdevelop.
//############################################################### //# mask1_slots.h for ProcessViewServer created: Mi Mrz 28 18:50:07 2007 //# 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) { char s[6]; // switches } DATA; static int slotInit(PARAM *p, DATA *d) { if(p == NULL || d == NULL) return -1; memset(d,0,sizeof(DATA)); d->s[0] = -1; d->s[1] = -1; d->s[2] = -1; d->s[3] = -1; d->s[4] = -1; d->s[5] = -1; pvTablePrintf(p,table1,-1,0,"L1"); pvTablePrintf(p,table1,-1,1,"L2"); pvTablePrintf(p,table1,-1,2,"L3"); pvTablePrintf(p,table1,-1,3,"L4"); pvTablePrintf(p,table1,-1,4,"L5"); pvTablePrintf(p,table1,-1,5,"L6"); pvTablePrintf(p,table1,0,-1,"Lamp"); pvTablePrintf(p,table1,1,-1,"Switch"); pvSetTablePixmap(p,table1,0,0,"icon_green.bmp"); pvSetTablePixmap(p,table1,0,1,"icon_green.bmp"); pvSetTablePixmap(p,table1,0,2,"icon_green.bmp"); pvSetTablePixmap(p,table1,0,3,"icon_green.bmp"); pvSetTablePixmap(p,table1,0,4,"icon_green.bmp"); pvSetTablePixmap(p,table1,0,5,"icon_green.bmp"); pvSetTableCheckBox(p,table1,1,0,0,"S1"); pvSetTableCheckBox(p,table1,1,1,0,"S2"); pvSetTableCheckBox(p,table1,1,2,0,"S3"); pvSetTableCheckBox(p,table1,1,3,0,"S4"); return 0; } static int slotNullEvent(PARAM *p, DATA *d) { int i, val; if(p == NULL || d == NULL) return -1; for(i=0; i<6; i++) { val = modbus.readBit(0,i+4); // the first 4 bits are outputs if(d->s[i] != val) { if(val == 1) pvSetTablePixmap(p,table1,0,i,"icon_green.bmp"); else pvSetTablePixmap(p,table1,0,i,"icon_red.bmp"); d->s[i] = val; } } 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; if(id == table1 && x == 1) { int val; sscanf(text,"%d",&val); modbus.writeSingleCoil(1,y,val); } 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, int modifier) { if(p == NULL || id == 0 || d == NULL || val < -1000 || modifier < -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 slotMouseOverEvent(PARAM *p, int id, DATA *d, int enter) { if(p == NULL || id == 0 || d == NULL || enter < -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; }