|
void | fwAlarmScreenGeneric_initAlarmCounter () |
|
void | _fwAlarmScreenGeneric_alarmCount () |
|
void | _fwAlarmScreenGeneric_acknowledgeAll (bool bVisibleRangeOnly=false) |
|
dyn_string | fwAlarmScreenGeneric_getConnectedSystems () |
|
void | fwAlarmScreenGeneric_initSystemInfo () |
|
void | _fwAlarmScreenGeneric_systemStateCB (string sDpe, bool bState) |
|
void | _fwAlarmScreenGeneric_filteredSystemsCB (string sDpe, dyn_string dsSystems) |
|
void | _fwAlarmScreenGeneric_updateSystemState () |
|
void | fwAlarmScreenGeneric_config_openConfigPanel () |
|
string | _fwAlarmScreenGeneric_config_getDpName () |
|
void | _fwAlarmScreenGeneric_config_init (const string sDp) |
|
void | _fwAlarmScreenGeneric_config_set (const string sParameter, const anytype aValue) |
|
anytype | _fwAlarmScreenGeneric_config_get (const string sParameter) |
|
bool | _fwAlarmScreenGeneric_config_authorizedUser () |
|
bool | _fwAlarmScreenGeneric_config_isAdmin () |
|
void | fwAlarmScreenGeneric_config_triggerEvent (const int iEvent) |
|
void | _fwAlarmScreenGeneric_config_connectEvent (const string sWork) |
|
void | _fwAlarmScreenGeneric_config_disconnectEvent (const string sWork, string sUser) |
|
void | fwAlarmScreenGeneric_config_save (const bool bSaveToDisk=false) |
|
void | fwAlarmScreenGeneric_config_load () |
|
void | fwAlarmScreenGeneric_config_reduce (const string sWidget) |
|
void | fwAlarmScreenGeneric_config_expand (const string sWidget) |
|
void | fwAlarmScreenGeneric_combocheckbox_setItems (const string sReference, dyn_string dsElementList) |
|
dyn_string | fwAlarmScreenGeneric_combocheckbox_getItems (const string sReference) |
|
dyn_string | fwAlarmScreenGeneric_combocheckbox_setSelectedItems (const string sReference, const dyn_string dsSelectedItemList, bool bAllAreSelected=false) |
|
dyn_string | fwAlarmScreenGeneric_combocheckbox_getSelectedItems (const string sReference, bool &bAllAreSelected) |
|
void | fwAlarmScreenGeneric_combocheckbox_showWidget (const string sReference, const bool bShow) |
|
void | fwAlarmScreenGeneric_combocheckbox_moveWidget (const string sReference, const int iDeltaX, const int iDeltaY) |
|
void | fwAlarmScreenGeneric_combocheckbox_enableWidget (const string sReference, const bool bEnabled) |
|
void | _fwAlarmScreenGeneric_combocheckbox_show () |
|
void | _fwAlarmScreenGeneric_combocheckbox_saveSelection (const dyn_string dsSelectedElementList, const bool bForceSingle, const string sReferenceParam="") |
|
void | _fwAlarmScreenGeneric_combocheckbox_hideTable (const int iClickedRow=-1) |
|
void | _fwAlarmScreenGeneric_combocheckbox_filterTable (const string sFilter) |
|
void | _fwAlarmScreenGeneric_combocheckbox_selectAll (const bool bSelect) |
|
void | _fwAlarmScreenGeneric_combocheckbox_checkAll () |
|
void | _fwAlarmScreenGeneric_combocheckbox_chooseAllVisible () |
|
void | _fwAlarmScreenGeneric_rearrangeScreen () |
|
void | _fwAlarmScreenGeneric_disableActions () |
|
void | fwAlarmScreenGeneric_expandOrReduceFrame (string sFrame) |
|
void | fwAlarmScreenGeneric_resizeTable () |
|
void | fwAlarmScreenGeneric_expand () |
|
void | fwAlarmScreenGeneric_closePanel () |
|
void | _fwAlarmScreenGeneric_moveWidgetTo (string sShape1, string sShape2) |
|
bool | _fwAlarmScreenGeneric_isReduced (string sFrame) |
|
string | fwAlarmScreenGeneric_getAlarmClass () |
|
void | fwAlarmScreenGeneric_wait (bool bWait) |
|
bool | fwAlarmScreenGeneric_isHeaderReduced () |
|
bool | fwAlarmScreenGeneric_isInfoReduced () |
|
bool | fwAlarmScreenGeneric_isTableFilterReduced () |
|
bool | fwAlarmScreenGeneric_isAlarmFilterReduced () |
|
bool | fwAlarmScreenGeneric_screenReady () |
|
void | fwAlarmScreenGeneric_copyLineToClipboard (const dyn_int diRows, const string sTableName) |
|
void | fwAlarmScreenGeneric_showHeader (const bool bShow) |
|
void | fwAlarmScreenGeneric_showInfo (const bool bShow) |
|
void | fwAlarmScreenGeneric_showTableFilter (const bool bShow) |
|
void | fwAlarmScreenGeneric_showAlertFilter (const bool bShow) |
|
New version of the alarm panel. The goal is to have a single panel (instead of one for JCOP, one for UNICOS, one for anything else).
— Customization: —
The panel is made of the AES table and 4 customisable widgets:
- A header.
- A filter on the alarm (AES internally managed).
- A filter on the table (just locally hide lines).
- One to add any other information you would like to.
However, you can use each widget to put anything you want, the list is just based on what is commonly needed in an alarm panel.
Each of those widget is independent from the main panel, so that you can change them at your will. However, certain rules must be followed when creating a custom alert panel.
- You need to identify your panel (e.g. "fwAlarmScreen") and pass this identifier by the $parameter $sAlarmType.
- You need to define a set of functions with a specific name "xxAlarm_function" where "xxAlarm" refers to the identifier mentioned above (e.g. "fwAlarmScreen"). The constants FW_ALARM_GENERIC_FUNCTION_XXX give a list of available functions. Some of them are mandatory, without them the alarm panel will not work. The mandatory functions are those concerning those 4 widgets. However, they are mandatory only if the concerned widgets exist.
— Event management: —
Any alarm panel can send different events (see FWALARMSCREEN_GENERIC_CONFIG_EVENT_***). To handle those events, a function xxAlarm_eventHandler(string, int) must be defined. Event handling is implemented through the WinCC OA callback feature. Each time an event is triggered, this function will be called with the event as second parameter. Like this, it is possible to add a custom behaviour when the configuration changes, when the screen is expanded, etc.
If you wish to use custom events, start after 100.
-— Configuration: -—
A button is already in place to open a configuration panel where we define things for the current alarm screen like:
- Custom right-click menu entries
- Column visibility and width
- Access control set-up
- ...
By default, only the basic settings can be changed (i.e. the UI ones). It is possible to extend this by providing a function xxAlarm_getConfigPanels(). This function has to return a dyn_string, each element following this format: PanelFile;PanelTitle;
- P1:
- XX;
P2:YYY–... where
- PanelFile is the path to the configuration panel (e.g. "vision/myAlarm/myConfigPanel.pnl"). The size of the panel must be 600x500 to fit the main config panel.
- PanelTitle is the text to display for this configuration panel (e.g. "MyAlarm configuration")
- $Pxxx are all the dollar parameters to pass to the config panel (and their value)
- The ; is defined through FWALARMSCREEN_GENERIC_CONFIGURATION_PANEL_SEPARATOR, use this instead of plain text. For each line in the returned dyn_string a new configuration panel will be added. When everything is closed, the event FWALARMSCREEN_GENERIC_CONFIG_EVENT_CONFIG_CHANGED is triggered.
Note that the user must be authorized to write datapoints in order to save any configuration.
-— Custom right click configuration: -—
The user can save a set of custom right click menu entries to be added dynamically to a panel. To each new right click entry you must provide a function to call. This function has to take the following parameters (in the following order):
- string sAlarmDpe : The DPE in alarm.
- atime atAlertTime : The ID of the alarm.
- anytype aCellValue : The content of the cell that was clicked.
- string sClickedColumnName : The name of the clicked column.
- int iClickedRow : The clicked row.
— Access control: —
If access control is set up (i.e. fwAccessControl is installed), a function xxAlarm_userChanged(string sUser) can be defined. If defined, this function will be called every time a new user logs in. Remember that this function will be called from the reference panel so all variables defined in the scopelib of your alarm panel will not be visible.
-— Busy callback: -—
If defined, the function xxAlarm_busyStateChanged(int iState) will be called every time the busy state of the alarm changes.
-— Distributed control: -—
The "systemInfo" widget provides help with distributed system monitoring. You don't need to worry about how to manage your system connections any-more. If defined, the function xxxAlarm_systemConnected(string sSystemName) will be called when a system comes online. The parameter is the name of this new system. The function xxxAlarm_systemDisconnected(string sSystemName) will be called when a system goes offline. The parameter is the name of this system.
- Creation Date
- 07/01/2013
- Modification History
- 24/05/2017 Adrian Crestar Santome
- There are certain columns that have to be "enabled" via the "AE-Row/Screen" config panel in order to be shown in the AlarmScreen. For example, by default, the "alarmPanel" column is not enabled, so even if the user wants to show it, it will get hidden again automatically. In order to make it visible permanently, these columns will be added to the PropertiesDP ".Both.Visible.VisibleColumns" element when the user decides to save the column configuration.
- The DPE FWALARMSCREEN_GENERIC_CONFIGURATION_COLUMNS_VISIBILITY is connected to a function from 'fwAlarmScreen.ctl'. Every time there is a change in that DPE, the function will be called to update the ".Both.Visible.VisibleColumns" element in the AES Properties DP.
19/05/2017 Adrian Crestar Santome
- Author
- Cyril Caillaba (EN-ICE-SCD)