Commit 54249fed authored by Claes Sjofors's avatar Claes Sjofors

Mh event types MaintainanceAlarm, SystemAlarm, UserAlarm1-4 added

parent e265ca85
......@@ -90,6 +90,12 @@ typedef struct HistQueryStruct
bool eventType_Ack;
bool eventType_Alarm;
bool eventType_MaintenanceAlarm;
bool eventType_SystemAlarm;
bool eventType_UserAlarm1;
bool eventType_UserAlarm2;
bool eventType_UserAlarm3;
bool eventType_UserAlarm4;
bool eventType_Info;
bool eventType_Return;
bool eventType_Cancel;
......@@ -132,7 +138,7 @@ JNIEXPORT void JNICALL Java_jpwr_rt_Hist_initHistIDs
* Signature: (Ljava/lang/String;Ljava/lang/String;ZZZZZZZZLjava/lang/String;Ljava/lang/String;)[Ljpwr/rt/MhrEvent;
*/
JNIEXPORT jobjectArray JNICALL Java_jpwr_rt_Hist_getHistList
(JNIEnv *env, jclass obj, jstring jstartTime, jstring jstopTime, jboolean jtypeAlarm, jboolean jtypeInfo, jboolean jtypeReturn, jboolean jtypeAck, jboolean jprioA, jboolean jprioB, jboolean jprioC, jboolean jprioD, jstring jname, jstring jtext)
(JNIEnv *env, jclass obj, jstring jstartTime, jstring jstopTime, jboolean jtypeInfo, jboolean jtypeAlarm, jboolean jtypeMaintenanceAlarm, jboolean jtypeSystemAlarm, jboolean jtypeUserAlarm1, jboolean jtypeUserAlarm2, jboolean jtypeUserAlarm3, jboolean jtypeUserAlarm4, jboolean jtypeReturn, jboolean jtypeAck, jboolean jprioA, jboolean jprioB, jboolean jprioC, jboolean jprioD, jstring jname, jstring jtext)
{
#ifdef PWRE_CONF_LIBDB_CXX
const char *str;
......@@ -191,6 +197,12 @@ JNIEXPORT jobjectArray JNICALL Java_jpwr_rt_Hist_getHistList
query.eventType_Ack = jtypeAck;
query.eventType_Alarm = jtypeAlarm;
query.eventType_MaintenanceAlarm = jtypeMaintenanceAlarm;
query.eventType_SystemAlarm = jtypeSystemAlarm;
query.eventType_UserAlarm1 = jtypeUserAlarm1;
query.eventType_UserAlarm2 = jtypeUserAlarm2;
query.eventType_UserAlarm3 = jtypeUserAlarm3;
query.eventType_UserAlarm4 = jtypeUserAlarm4;
query.eventType_Return = jtypeReturn;
query.eventType_Info = jtypeInfo;
query.eventPrio_A = jprioA;
......@@ -297,6 +309,12 @@ JNIEXPORT jobjectArray JNICALL Java_jpwr_rt_Hist_getHistList
switch (ev.EventType) {
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
case mh_eEvent_Info:
env->SetObjectArrayElement(jobjectArr, i, convertAlarmOrInfoToMhrEvent( (mh_sMessage *)(&(ev.Mess) ) ) );
//printMess(sp, outFile);
......@@ -366,6 +384,12 @@ int check_conditions(sEvent *evp, HistQuery *query)
//then we compare the EventType if nothing is selected everything is selected
if(query->eventType_Ack ||
query->eventType_Alarm ||
query->eventType_MaintenanceAlarm ||
query->eventType_SystemAlarm ||
query->eventType_UserAlarm1 ||
query->eventType_UserAlarm2 ||
query->eventType_UserAlarm3 ||
query->eventType_UserAlarm4 ||
query->eventType_Info ||
query->eventType_Return ||
query->eventType_Cancel ||
......@@ -380,6 +404,30 @@ int check_conditions(sEvent *evp, HistQuery *query)
if(!query->eventType_Alarm)
ret = true;
break;
case mh_eEvent_MaintenanceAlarm:
if(!query->eventType_MaintenanceAlarm)
ret = true;
break;
case mh_eEvent_SystemAlarm:
if(!query->eventType_SystemAlarm)
ret = true;
break;
case mh_eEvent_UserAlarm1:
if(!query->eventType_UserAlarm1)
ret = true;
break;
case mh_eEvent_UserAlarm2:
if(!query->eventType_UserAlarm2)
ret = true;
break;
case mh_eEvent_UserAlarm3:
if(!query->eventType_UserAlarm3)
ret = true;
break;
case mh_eEvent_UserAlarm4:
if(!query->eventType_UserAlarm4)
ret = true;
break;
case mh_eEvent_Info:
if(!query->eventType_Info)
ret = true;
......@@ -428,6 +476,12 @@ int check_conditions(sEvent *evp, HistQuery *query)
switch (evp->EventType)
{
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
case mh_eEvent_Info:
msgInfop = &(evp->Mess.message.Info);
mp = &(evp->Mess.message);
......
......@@ -80,7 +80,7 @@ JNIEXPORT void JNICALL Java_jpwr_rt_Hist_initHistIDs
* Signature: (Ljava/lang/String;Ljava/lang/String;ZZZZZZZZLjava/lang/String;Ljava/lang/String;)[Ljpwr/rt/MhrEvent;
*/
JNIEXPORT jobjectArray JNICALL Java_jpwr_rt_Hist_getHistList
(JNIEnv *, jclass, jstring, jstring, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jstring, jstring);
(JNIEnv *, jclass, jstring, jstring, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jstring, jstring);
#ifdef __cplusplus
}
......
......@@ -40,17 +40,17 @@ import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import jpwr.rt.Mh;
import jpwr.rt.MhrEvent;
/* This class is used to make sure an EventTableModel in a JaTable is presented
* in a graphically appealing manner. */
public class EventTableCellRender extends DefaultTableCellRenderer
{
public class EventTableCellRender extends DefaultTableCellRenderer {
Color ALarmColor = Color.red;
Color BLarmColor = Color.yellow;
Color CLarmColor = Color.blue;
Color DLarmColor = Color.cyan;
Color InfoColor = Color.green;
Color ALarmColor = new Color(255,100,100); // red;
Color BLarmColor = Color.yellow;
Color CLarmColor = new Color(135,206,235); // blue;
Color DLarmColor = new Color(177,156,217); // purple;
Color InfoColor = Color.green;
/**
* Gets the tableCellRendererComponent attribute of the
......@@ -65,75 +65,52 @@ public class EventTableCellRender extends DefaultTableCellRenderer
*@return The tableCellRendererComponent value
*/
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
//I will assume that the number is stored as a string. if it is stored as an Integer, you can change this easily.
//if(column == 0)
//{
String number = (String)value;
//cast to a string
//int val = Integer.parseInt(number);//convert to an integer
MhrEvent ev = ((EventTableModel)table.getModel()).getRowObject(row);
this.setBackground(Color.white);
if(ev == null)
{
this.setText(" ");
return this;
}
boolean isSelected, boolean hasFocus, int row, int column) {
String prio = (String)value;
MhrEvent ev = ((EventTableModel)table.getModel()).getRowObject(row);
boolean setColor = false;
if( ev.eventType == Mh.mh_eEvent_Alarm||ev.eventType == Mh.mh_eEvent_Info )
setColor = true;
this.setBackground(Color.white);
if (ev == null) {
this.setText(" ");
return this;
}
//System.out.println("i eventTable.getTableCellRendererComponent(row " + row + "value" + number + ")");
if(number.compareTo("A") == 0)
{
if(setColor)
{
this.setBackground(ALarmColor);
}
this.setText("A");
}
else if(number.compareTo("B") == 0)
{
if(setColor)
{
this.setBackground(BLarmColor);
}
this.setText("B");
}
else if(number.compareTo("C") == 0)
{
if(setColor)
{
this.setBackground(CLarmColor);
}
this.setText("C");
}
else if(number.compareTo("D") == 0)
{
if(setColor)
{
this.setBackground(DLarmColor);
}
this.setText("D");
}
//annars måste det vara ett meddelande qqq??
else
{
if(setColor)
{
this.setBackground(InfoColor);
}
this.setText(" ");
}
boolean setColor = false;
if( ev.eventType == Mh.mh_eEvent_Alarm || ev.eventType == Mh.mh_eEvent_Info ||
ev.eventType == Mh.mh_eEvent_MaintenanceAlarm || ev.eventType == Mh.mh_eEvent_SystemAlarm ||
ev.eventType == Mh.mh_eEvent_UserAlarm1 || ev.eventType == Mh.mh_eEvent_UserAlarm2 ||
ev.eventType == Mh.mh_eEvent_UserAlarm3 || ev.eventType == Mh.mh_eEvent_UserAlarm4)
setColor = true;
//}
//else
// this.setBackground(Color.white);
// System.out.println("i eventTable.getTableCellRendererComponent(row " + row + " value " + value + ")");
return this;
if ( setColor) {
if ( ev.eventType == Mh.mh_eEvent_Info) {
this.setBackground(InfoColor);
setText("");
}
else {
setText( " " + prio);
switch ( ev.eventPrio) {
case Mh.mh_eEventPrio_A:
this.setBackground(ALarmColor);
break;
case Mh.mh_eEventPrio_B:
this.setBackground(BLarmColor);
break;
case Mh.mh_eEventPrio_C:
this.setBackground(CLarmColor);
break;
case Mh.mh_eEventPrio_D:
this.setBackground(DLarmColor);
break;
}
}
}
else
setText("");
return this;
}
}
}
This diff is collapsed.
......@@ -99,10 +99,10 @@ public class HElogTable extends JPanel
"Hndelsetext",
"Objekt"};
//JLabel eventTableLbl = new JLabel("Hndelselista");
Color ALarmColor = Color.red;
Color ALarmColor = new Color(255,100,100); // red;
Color BLarmColor = Color.yellow;
Color CLarmColor = Color.blue;
Color DLarmColor = Color.cyan;
Color CLarmColor = new Color(135,206,235); // blue;
Color DLarmColor = new Color(177,156,217); // purple;
Color InfoColor = Color.green;
/**
* Constructor for the HElogTable object
......@@ -734,41 +734,59 @@ public class HElogTable extends JPanel
switch (ev.eventType)
{
case Mh.mh_eEvent_Alarm:
returnString = "Larm";
break;
returnString = "Alarm";
break;
case Mh.mh_eEvent_MaintenenceAlarm:
returnString = "MantenanceAlarm";
break;
case Mh.mh_eEvent_SystemAlarm:
returnString = "SystemAlarm";
break;
case Mh.mh_eEvent_UserAlarm1:
returnString = "UserAlarm1";
break;
case Mh.mh_eEvent_UserAlarm2:
returnString = "UserAlarm2";
break;
case Mh.mh_eEvent_UserAlarm3:
returnString = "UserAlarm3";
break;
case Mh.mh_eEvent_UserAlarm4:
returnString = "UserAlarm4";
break;
case Mh.mh_eEvent_Ack:
returnString = "Kvittens";
break;
returnString = "Acknowlege";
break;
case Mh.mh_eEvent_Block:
returnString = "Block";
break;
break;
case Mh.mh_eEvent_Cancel:
returnString = "Cancel";
break;
break;
case Mh.mh_eEvent_CancelBlock:
returnString = "CancelBlock";
break;
break;
case Mh.mh_eEvent_Missing:
returnString = "Missing";
break;
break;
case Mh.mh_eEvent_Reblock:
returnString = "Reblock";
break;
break;
case Mh.mh_eEvent_Return:
returnString = "Retur";
break;
returnString = "Return";
break;
case Mh.mh_eEvent_Unblock:
returnString = "Unblock";
break;
break;
case Mh.mh_eEvent_Info:
returnString = "Info";
break;
break;
case Mh.mh_eEvent_:
returnString = "?";
break;
break;
default:
returnString = " ";
break;
break;
}
return returnString;
}
......@@ -1188,7 +1206,10 @@ public class HElogTable extends JPanel
}
boolean setColor = false;
if( ev.eventType == Mh.mh_eEvent_Alarm||ev.eventType == Mh.mh_eEvent_Info )
if( ev.eventType == Mh.mh_eEvent_Alarm || ev.eventType == Mh.mh_eEvent_Info ||
ev.eventType == Mh.mh_eEvent_MaintenanceAlarm || ev.eventType == Mh.mh_eEvent_SystemAlarm ||
ev.eventType == Mh.mh_eEvent_UserAlarm1 || ev.eventType == Mh.mh_eEvent_UserAlarm2 ||
ev.eventType == Mh.mh_eEvent_UserAlarm3 || ev.eventType == Mh.mh_eEvent_UserAlarm4)
setColor = true;
//System.out.println("i eventTable.getTableCellRendererComponent(row " + row + "value" + number + ")");
......
This diff is collapsed.
......@@ -55,104 +55,93 @@ public class HistSender {
final static int PORT = 4447;
public HistSender(Object r){
root=r;
setup();
root=r;
setup();
}
// initiate the socket to the server
private void setup(){
private void setup() {
try {
URL url;
try {
URL url;
String urlString = "192.168.60.16";
try {
url = ((JApplet)root).getCodeBase();
if(url != null)
urlString = url.getHost();
}
catch(Exception e)
{
System.out.println("Program not run from applet..."+e);
}
try {
url = ((JApplet)root).getCodeBase();
if(url != null)
urlString = url.getHost();
}
catch( Exception e) {
System.out.println("Program not run from applet..."+e);
}
socket = new Socket(urlString, PORT);
socket = new Socket(urlString, PORT);
}
catch(UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
//System.exit(1);
}
catch(IOException e) {
JOptionPane.showMessageDialog(null,"Couldn't get contact with the server (HistServer). \n Kunde inte ansluta till servern(HistServer).","I/O Error",JOptionPane.ERROR_MESSAGE);
catch( UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
//System.exit(1);
}
catch( IOException e) {
JOptionPane.showMessageDialog(null,"Couldn't get contact with the server (HistServer).","I/O Error",JOptionPane.ERROR_MESSAGE);
}
}
public MhData SearchRequest(HistQuery search){
// Open output and input streams.
try
{
out = new ObjectOutputStream( socket.getOutputStream() );
out.flush();
//varför???
in = new ObjectInputStream( socket.getInputStream() );
// Open output and input streams.
try {
out = new ObjectOutputStream( socket.getOutputStream() );
out.flush();
//varför???
in = new ObjectInputStream( socket.getInputStream() );
}
catch(Exception e)
{
System.out.println("IOException vid skapande av strömmar mot server");
//errh.error("DataStream failed");
return new MhData(100,100);
catch(Exception e) {
System.out.println("IOException vid skapande av strömmar mot server");
//errh.error("DataStream failed");
return new MhData(100,100);
}
//Send search request
//Send search request
try
{
out.writeObject(search);
out.flush();
try {
out.writeObject(search);
out.flush();
}
catch(Exception e)
{
System.out.println("Search send Exception");
catch(Exception e) {
System.out.println("Search send Exception");
}
// Start receiving data
MhData answer = new MhData(0,0);
// Start receiving data
MhData answer = new MhData(0,0);
try
{
MhrEvent[] result = (MhrEvent[])in.readObject();
int i = 0;
while(i < result.length)
{
answer.addMessToVectorInSortedOrder(answer.eventVec, result[i++]);
try {
MhrEvent[] result = (MhrEvent[])in.readObject();
int i = 0;
while(i < result.length) {
answer.addMessToVectorInSortedOrder(answer.eventVec, result[i++]);
}
}
catch(Exception e) {
System.out.println("#"+e.toString());
}
//Close input and output streams
try
{
in.close();
out.close();
catch(Exception e) {
System.out.println("#"+e.toString());
}
//Close input and output streams
try {
in.close();
out.close();
}
catch(Exception e)
{
System.out.println("Error while closing streams: " + e);
catch(Exception e) {
System.out.println("Error while closing streams: " + e);
}
return answer;
}
return answer;
}
}
......@@ -71,9 +71,15 @@ public class HistStatModel1 extends AbstractTableModel{
for(int i=0; i<m.eventVec.size();i++){
boolean found=false;
for (int j = 0; j<result.size();j++){
if (((MhrEvent) m.eventVec.get(i)).eventName.equals(((MhrEvent)(result.get(j))).eventName)){
if(((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_Alarm){
for ( int j = 0; j<result.size();j++){
if ( ((MhrEvent) m.eventVec.get(i)).eventName.equals(((MhrEvent)(result.get(j))).eventName)){
if ( ((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_Alarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_MaintenanceAlarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_SystemAlarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm1 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm2 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm3 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm4){
((MhrEvent)(result.get(j))).eventFlags++;
found=true;
}
......@@ -81,12 +87,18 @@ public class HistStatModel1 extends AbstractTableModel{
if (found) break;
}
if (! found){
if(((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_Alarm){
result.add(((MhrEvent)(m.eventVec.get(i))).getCopy());
((MhrEvent)result.get(result.size()-1)).eventFlags=1;
}
}
if ( ((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_Alarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_MaintenanceAlarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_SystemAlarm ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm1 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm2 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm3 ||
((MhrEvent) m.eventVec.get(i)).eventType == Mh.mh_eEvent_UserAlarm4){
result.add(((MhrEvent)(m.eventVec.get(i))).getCopy());
((MhrEvent)result.get(result.size()-1)).eventFlags=1;
}
}
}
}
......
......@@ -52,13 +52,13 @@ import jpwr.rt.*;
* the alarmTable to an excel file, and for performing a search in the historic
* event list using a HistSender */
public class HistTable extends JScrollPane{
public class HistTable extends JScrollPane {
JopSession session;
boolean DEBUG=false;
public EventTableModel atModel;
public JTable alarmTable;
String[] columnNamesEventTable = {"","Type","Time","Event text","Event name"};
String[] columnNamesEventTable = {"Prio","Type","Time","Event text","Event name"};
String[] excelMess= {JopLang.transl("Export to Excel"),
JopLang.transl("The result is put into the Clipboard. Open a new Excel document and use Paste to insert it.")};
......@@ -73,19 +73,20 @@ public class HistTable extends JScrollPane{
//and set it up to support JopMethodsMenu.
private void setup(){
atModel = new EventTableModel();
alarmTable = new JTable(atModel);
alarmTable.setCellEditor(null);
this.initColumnSizes(alarmTable, atModel);
alarmTable.getTableHeader().setReorderingAllowed(false);
alarmTable.getColumn((Object)columnNamesEventTable[0]).setCellRenderer(new EventTableCellRender());
atModel = new EventTableModel();
alarmTable = new JTable(atModel);
alarmTable.setCellEditor(null);
alarmTable.setIntercellSpacing(new Dimension(8, 2));
this.initColumnSizes(alarmTable, atModel);
alarmTable.getTableHeader().setReorderingAllowed(false);
alarmTable.getColumn((Object)columnNamesEventTable[0]).setCellRenderer(new EventTableCellRender());
this.setViewportView(alarmTable);
this.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.getViewport().setBackground(Color.white);
((EventTableModel)alarmTable.getModel()).updateTable();
this.setViewportView(alarmTable);
this.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.getViewport().setBackground(Color.white);
((EventTableModel)alarmTable.getModel()).updateTable();
}
......@@ -94,81 +95,78 @@ public class HistTable extends JScrollPane{
the clipboard. Display a message telling how to paste the string to
excel*/
public void exportExcel(){
StringBuffer copybuffer = new StringBuffer("");
for(int i=0;i<alarmTable.getRowCount();i++){
for (int j=0; j<alarmTable.getColumnCount();j++){
copybuffer.append((String) alarmTable.getValueAt(i,j));
copybuffer.append("\t");
}
copybuffer.append("\n");
}
Clipboard cb= Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection output = new StringSelection(copybuffer.toString());
cb.setContents(output, output);
JOptionPane.showMessageDialog(this.getParent(),excelMess[1],excelMess[0],JOptionPane.INFORMATION_MESSAGE);
public void exportExcel() {
StringBuffer copybuffer = new StringBuffer("");
for( int i = 0; i < alarmTable.getRowCount(); i++){
for ( int j = 0; j < alarmTable.getColumnCount(); j++){
copybuffer.append((String) alarmTable.getValueAt(i,j));
copybuffer.append("\t");
}
copybuffer.append("\n");
}
Clipboard cb= Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection output = new StringSelection(copybuffer.toString());
cb.setContents(output, output);
JOptionPane.showMessageDialog(this.getParent(),excelMess[1],excelMess[0],JOptionPane.INFORMATION_MESSAGE);
}
//XLS
//Creates a String for sending to a javascript which can save to a file.
public String exportExcelFromApplet(){
public String exportExcelFromApplet() {
String copyString = "";
for(int i=0;i<alarmTable.getRowCount();i++){
for (int j=0; j<alarmTable.getColumnCount();j++){
for( int i = 0; i < alarmTable.getRowCount(); i++){
for ( int j = 0; j < alarmTable.getColumnCount(); j++){
copyString = copyString +(String) alarmTable.getValueAt(i,j);
copyString = copyString+"\t";
}
copyString = copyString + "\n" ;
}
}
return copyString;
}
//Set column sizes to fit the table contents...
private void initColumnSizes(JTable table, AbstractTableModel model)
{
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
int cellWidth = 0;
Object[] longValues;
private void initColumnSizes(JTable table, AbstractTableModel model) {
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
int cellWidth = 0;
Object[] longValues;
longValues = ((EventTableModel)(model)).longValues;
longValues = ((EventTableModel)(model)).longValues;
for(int i = 0; i < longValues.length; i++)
{
column = table.getColumnModel().getColumn(i);
for( int i = 0; i < longValues.length; i++) {
column = table.getColumnModel().getColumn(i);
comp = table.getDefaultRenderer(model.getColumnClass(i)).
getTableCellRendererComponent(
table, longValues[i],
false, false, 0, i);
cellWidth = comp.getPreferredSize().width;
comp = table.getDefaultRenderer(model.getColumnClass(i)).
getTableCellRendererComponent(
table, longValues[i],
false, false, 0, i);
cellWidth = comp.getPreferredSize().width;
if(DEBUG)
{
System.out.println("Initializing width of column "
+ i + ". "
+ "headerWidth = " + headerWidth
+ "; cellWidth = " + cellWidth);
if(DEBUG) {
System.out.println("Initializing width of column "
+ i + ". "
+ "headerWidth = " + headerWidth
+ "; cellWidth = " + cellWidth);
}
//XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
if(i == 0)
{
column.setMaxWidth(Math.max(headerWidth, cellWidth));
column.setResizable(false);
//XXX: Before Swing 1.1 Beta 2, use setMinWidth instead.
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
if(i == 0) {
column.setPreferredWidth(30);
column.setMaxWidth(30);
column.setResizable(false);
}
}
}
public void presentStat(){
public void presentStat() {
// Derive interesting statistics from the current searchresult and
//display it in a JFrame...
HistStatistics statistics = new HistStatistics(atModel.mhData,session);
......@@ -181,11 +179,11 @@ public class HistTable extends JScrollPane{
}
public int getNrOfResults(){
return alarmTable.getRowCount();
public int getNrOfResults() {
return alarmTable.getRowCount();
}
// Make a search in the Historical Event list based on the HistQuery search
public void performSearch(Object root, HistQuery search){
public void performSearch(Object root, HistQuery search) {
HistSender sender = new HistSender(root);
atModel.setMhData(sender.SearchRequest(search));
}
......
......@@ -96,10 +96,10 @@ public class MhTable extends JPanel
JopLang.transl("Event Text"),
JopLang.transl("Object")};
//JLabel eventTableLbl = new JLabel("Hndelselista");
Color ALarmColor = Color.red;
Color ALarmColor = new Color(255,100,100); // Color.red;
Color BLarmColor = Color.yellow;
Color CLarmColor = Color.blue;
Color DLarmColor = Color.cyan;
Color CLarmColor = new Color(135,206,235); // Color.blue;
Color DLarmColor = new Color(177,156,217); // Color.cyan;
Color InfoColor = Color.green;
/**
* Constructor for the MhTable object
......@@ -733,6 +733,24 @@ public class MhTable extends JPanel
case Mh.mh_eEvent_Alarm:
returnString = JopLang.transl("Alarm");
break;
case Mh.mh_eEvent_MaintenanceAlarm:
returnString = JopLang.transl("MaintenanceAlarm");
break;
case Mh.mh_eEvent_SystemAlarm:
returnString = JopLang.transl("SystemAlarm");
break;
case Mh.mh_eEvent_UserAlarm1:
returnString = JopLang.transl("UserAlarm1");
break;
case Mh.mh_eEvent_UserAlarm2:
returnString = JopLang.transl("UserAlarm2");
break;
case Mh.mh_eEvent_UserAlarm3:
returnString = JopLang.transl("UserAlarm3");
break;
case Mh.mh_eEvent_UserAlarm4:
returnString = JopLang.transl("UserAlarm4");
break;
case Mh.mh_eEvent_Ack:
returnString = JopLang.transl("Acknowledge");
break;
......@@ -1151,7 +1169,10 @@ public class MhTable extends JPanel
}
boolean setColor = false;
if( ev.eventType == Mh.mh_eEvent_Alarm||ev.eventType == Mh.mh_eEvent_Info )
if( ev.eventType == Mh.mh_eEvent_Alarm || ev.eventType == Mh.mh_eEvent_Info ||
ev.eventType == Mh.mh_eEvent_MaintenanceAlarm || ev.eventType == Mh.mh_eEvent_SystemAlarm ||
ev.eventType == Mh.mh_eEvent_UserAlarm1 || ev.eventType == Mh.mh_eEvent_UserAlarm2 ||
ev.eventType == Mh.mh_eEvent_UserAlarm3 || ev.eventType == Mh.mh_eEvent_UserAlarm4)
setColor = true;
//System.out.println("i eventTable.getTableCellRendererComponent(row " + row + "value" + number + ")");
......
......@@ -159,8 +159,14 @@ public class Hist
public native static MhrEvent[] getHistList(String startTime,
String stopTime,
boolean typeAlarm,
boolean typeInfo,
boolean typeAlarm,
boolean typeMaintenanceAlarm,
boolean typeSystemAlarm,
boolean typeUserAlarm1,
boolean typeUserAlarm2,
boolean typeUserAlarm3,
boolean typeUserAlarm4,
boolean typeReturn,
boolean typeAck,
boolean prioA,
......
This diff is collapsed.
......@@ -129,7 +129,13 @@ public class Mh
public static final int mh_eEvent_Unblock = 8;
public static final int mh_eEvent_Info = 32;
public static final int mh_eEvent_Alarm = 64;
public static final int mh_eEvent_ = 65;
public static final int mh_eEvent_MaintenanceAlarm = 128;
public static final int mh_eEvent_SystemAlarm = 256;
public static final int mh_eEvent_UserAlarm1 = 512;
public static final int mh_eEvent_UserAlarm2 = 1024;
public static final int mh_eEvent_UserAlarm3 = 2048;
public static final int mh_eEvent_UserAlarm4 = 4096;
public static final int mh_eEvent_ = 4097;
public static final int EventType_ClearAlarmList = 66;
//public static final int EventType_Return = 1;
......
......@@ -113,6 +113,12 @@ public class MhData
switch (ev.eventType)
{
case Mh.mh_eEvent_Alarm:
case Mh.mh_eEvent_MaintenanceAlarm:
case Mh.mh_eEvent_SystemAlarm:
case Mh.mh_eEvent_UserAlarm1:
case Mh.mh_eEvent_UserAlarm2:
case Mh.mh_eEvent_UserAlarm3:
case Mh.mh_eEvent_UserAlarm4:
// Add to alarm list
this.addMessToVectorInSortedOrder(alarmVec, ev);
// Add copy to event list
......
......@@ -6186,6 +6186,7 @@ popup menu for an object in the operator environment (method 'Help').
<option> printdisable
<b>Syntax <link> helpfile syntax
<b>Conversion <link> helpfile conversion
<b>Encoding <link> helpfile encoding
<option> printenable
</topic>
......@@ -6224,6 +6225,16 @@ A helpfile is converted to PDF with the command
<c>co_convert -f -d $pwrp_lis $pwrp_exe/xtt_help.dat
</topic>
<topic> helpfile encoding
Encoding
The default encoding of the help file is ISO 8859-1. UTF-8 can be specified with a Coding
statement on the first line of the help-file, eg
<c>Coding:UTF-8
Supported values for Coding are UTF-8 and ISO8859-1.
</topic>
<topic> helpfile syntax
Syntax
There are a number of different tags that influence the search
......@@ -9886,6 +9897,8 @@ GetClassList() <LINK> getclasslist()
GetNextObject() <LINK> getnextobject()
GetClassListAttrRef() <LINK> getclasslistattrref()
GetNextAttrRef() <LINK> getnextattrref()
GetTemplateObject() <LINK> gettemplateobject()
GetNextTemplateAttrRef() <LINK> getnexttemplateattrref()
GetObjectClass() <LINK> getobjectclass()
GetNodeObject() <LINK> getnodeobject()
GetRootList() <LINK> getrootlist()
......@@ -10875,6 +10888,8 @@ GetClassList() <t>Get first instance of a class. <LINK> getclasslist()
GetNextObject() <t>Get next instance of a class. <LINK> getnextobject()
GetClassListAttrRef() <t>Get first instance of a class, attribute objects included. <LINK> getclasslistattrref()
GetNextAttrRef() <t>Get next instance of a class, attribute objects included. <LINK> getnextattrref()
GetTemplateObject() <t>Get the template object for a class. <LINK> gettemplateobject()
GetNextTemplateAttrRef() <t>Get the next instance in a template object . <LINK> getnexttemplateattrref()
GetObjectClass() <t>Get class of an object. <LINK> getobjectclass()
GetNodeObject() <t>Get node object. <LINK> getnodeobject()
GetRootList() <t>Get first object in root list. <LINK> getrootlist()
......@@ -11084,7 +11099,55 @@ string <t>name <t>name of object or attribute object.
<c> name = GetClassListAttrRef("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextAttrRef(name);
<c> name = GetNextAttrRef( "Di", name);
<c> endwhile
</TOPIC>
<TOPIC> gettemplateobject() <style> function
GetTemplateObject()
string GetTemplateObject( string class)
<b>Description
Get the template object of a specified class.
<b>Arguments
string <t>name <t>name of class.
<b>Example
<c> string name;
<c> name = GetTemplateObject("Dv");
</TOPIC>
<TOPIC> getnexttemplateattrref() <style> function
GetNextTemplateAttrRef()
string GetNextTemplateAttrRef( string class, string name)
<b>Description
Get the next attribute object of the specified class in a template object. Returns
the name of the attribute object. If no next object exist a null-string is returned.
The first template object is fetched with GetTemplateObject().
<b>Arguments
string <t>class <t>name of class.
string <t>name <t>name of template object or template attribute object.
<b>Example
<c> string name;
<c> name = GetTemplateObject("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextTemplateAttrRef( "Di", name);
<c> endwhile
</TOPIC>
......
......@@ -6131,6 +6131,7 @@ fr
<option> printdisable
<b>Syntax <link> helpfile syntax
<b>Konvertering <link> helpfile conversion
<b>Encoding <link> helpfile encoding
<option> printenable
</topic>
......@@ -6169,6 +6170,16 @@ En hj
<c>co_convert -f -d $pwrp_lis $pwrp_exe/xtt_help.dat
</topic>
<topic> helpfile encoding
Encoding
Standard kodningen på hjälpfilen är ISO 8859-1. UTF-8 kan anges med en Coding specifikation
på först raden, t ex
<c>Coding:UTF-8
Tillåtna värden på Coding är UTF-8 och ISO8859-1.
</topic>
<topic> helpfile syntax
Syntax
Det finns ett antal olika taggar som påverkar sökningen och konverteringen av hjälpfiler.
......@@ -9754,6 +9765,8 @@ GetClassList() <LINK> getclasslist()
GetNextObject() <LINK> getnextobject()
GetClassListAttrRef() <LINK> getclasslistattrref()
GetNextAttrRef() <LINK> getnextattrref()
GetTemplateObject() <LINK> gettemplateobject()
GetNextTemplateAttrRef() <LINK> getnexttemplateattrref()
GetObjectClass() <LINK> getobjectclass()
GetNodeObject() <LINK> getnodeobject()
GetRootList() <LINK> getrootlist()
......@@ -10735,6 +10748,8 @@ GetClassList() <t>H
GetNextObject() <t>Hämta nästa instans av en klass. <LINK> getnextobject()
GetClassListAttrRef() <t>Hämta första instansen av en klass, attribut-object inkluderade. <LINK> getclasslistattrref()
GetNextAttrRef() <t>Hämta nästa instans av en klass, attribut-objekt inkluderade. <LINK> getnextattrref()
GetTemplateObject() <t>Hämta template objektet för en klass. <LINK> gettemplateobject()
GetNextTemplateAttrRef() <t>Hämta nästa instance i ett template objekt. <LINK> getnexttemplateattrref()
GetObjectClass() <t>Hämta klassen för ett objekt. <LINK> getobjectclass()
GetNodeObject() <t>Hämta nod-objektet. <LINK> getnodeobject()
GetRootList() <t>Hämta första objektet i rot-listan. <LINK> getrootlist()
......@@ -10963,7 +10978,55 @@ string <t>name <t>namn p
<c> name = GetClassListAttrRef("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextAttrRef(name);
<c> name = GetNextAttrRef( "Di", name);
<c> endwhile
</TOPIC>
<TOPIC> gettemplateobject() <style> function
GetTemplateObject()
string GetTemplateObject( string class)
<b>Beskrivning
Hämta template objektet för en specifik klass.
<b>Argument
string <t>name <t>namn på klassen.
<b>Exempel
<c> string name;
<c> name = GetTemplateObject("Dv");
</TOPIC>
<TOPIC> getnexttemplateattrref() <style> function
GetNextTemplateAttrRef()
string GetNextTemplateAttrRef( string class, string name)
<b>Beskrivning
Hämta nästa attribute objekt av den angivna klassen i ett template objekt. Returnerar
namnet på attribut objektet. Om det inte finns något nästa objekt returneras en
null-sträng. Det första template objektet hämtas med GetTemplateObject().
<b>Argument
string <t>class <t>namn på klassen.
string <t>name <t>namn på template objekt och template attribute objekt.
<b>Exempel
<c> string name;
<c> name = GetTemplateObject("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextTemplateAttrRef( "Di", name);
<c> endwhile
</TOPIC>
......
......@@ -447,6 +447,12 @@ CopyEvent (
switch (ip->EventType) {
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
case mh_eEvent_Info:
sp->Mess.message = *mp;
break;
......
This diff is collapsed.
This diff is collapsed.
......@@ -79,7 +79,11 @@ enum mh_eEvent {
mh_eEvent_Alarm = 64,
mh_eEvent_MaintenanceAlarm = 128,
mh_eEvent_SystemAlarm = 256,
mh_eEvent_ = 257
mh_eEvent_UserAlarm1 = 512,
mh_eEvent_UserAlarm2 = 1024,
mh_eEvent_UserAlarm3 = 2048,
mh_eEvent_UserAlarm4 = 4096,
mh_eEvent_ = 4097
};
%/**
......@@ -400,7 +404,8 @@ struct mh_sReturn {
#ifdef RPC_HDR
%struct mh_sOutunitInfo {
% mh_eOutunitType type;
% pwr_tUInt16 type;
% pwr_tUInt16 selEventType;
% pwr_tUInt32 selGen;
% pwr_tUInt32 selSize;
% /* Here comes select list if needed */
......@@ -426,7 +431,10 @@ struct mh_sReturn {
% selSize = op->selSize;
% }
%
% if (!xdr_mh_eOutunitType(xdrs, &op->type)) {
% if (!xdr_pwr_tUInt16(xdrs, &op->type)) {
% return (FALSE);
% }
% if (!xdr_pwr_tUInt16(xdrs, &op->selEventType)) {
% return (FALSE);
% }
% if (!xdr_pwr_tUInt32(xdrs, &op->selGen)) {
......
......@@ -122,7 +122,9 @@ typedef struct {
pwr_tUInt32 selGen;
pwr_tUInt32 selSize;
pwr_tString80 (*pSelL)[];
pwr_mEventTypeMask *pSelEventType;
mh_sSelL selL[mh_cSelLSize];
pwr_mEventTypeMask selEventType;
pwr_tBoolean *SelectListIsUpdated;
} sContext;
......@@ -286,37 +288,40 @@ mh_OutunitConnect (
switch (cid) {
case pwr_cClass_User:
type = mh_eOutunitType_Operator;
l.pSelL = (void *)&((pwr_sClass_User*) p)->SelectList[0];
l.SelectListIsUpdated = (pwr_tBoolean *)&((pwr_sClass_User*) p)->SelectListIsUpdated;
l.pSelL = (void *)&((pwr_sClass_User*)p)->SelectList[0];
l.SelectListIsUpdated = (pwr_tBoolean *)&((pwr_sClass_User*)p)->SelectListIsUpdated;
break;
case pwr_cClass_OpPlace:
type = mh_eOutunitType_Operator;
l.pSelL = (void *)&((pwr_sClass_OpPlace*) p)->EventSelectList[0];
l.pSelL = (void *)&((pwr_sClass_OpPlace *)p)->EventSelectList[0];
l.pSelEventType = &((pwr_sClass_OpPlace *)p)->EventSelectType;
l.SelectListIsUpdated = (pwr_tBoolean *)&((pwr_sClass_OpPlace*) p)->SelectListIsUpdated;
break;
case pwr_cClass_WebHandler:
type = mh_eOutunitType_Operator;
l.pSelL = (void *)&((pwr_sClass_WebHandler*) p)->EventSelectList[0];
l.pSelL = (void *)&((pwr_sClass_WebHandler *)p)->EventSelectList[0];
l.pSelEventType = &((pwr_sClass_WebHandler *)p)->EventSelectType;
l.SelectListIsUpdated = NULL;
break;
case pwr_cClass_RttConfig:
type = mh_eOutunitType_Operator;
l.pSelL = (void *)&((pwr_sClass_RttConfig*) p)->EventSelectList[0];
l.pSelL = (void *)&((pwr_sClass_RttConfig *)p)->EventSelectList[0];
l.SelectListIsUpdated = NULL;
break;
case pwr_cClass_EventPrinter:
type = mh_eOutunitType_Printer;
l.pSelL = (void *)&((pwr_sClass_EventPrinter*) p)->SelectList[0];
l.pSelL = (void *)&((pwr_sClass_EventPrinter *)p)->SelectList[0];
l.SelectListIsUpdated = NULL;
break;
case pwr_cClass_PostConfig:
type = mh_eOutunitType_Post;
l.pSelL = (void *)&((pwr_sClass_PostConfig*) p)->EventSelectList[0];
l.pSelL = (void *)&((pwr_sClass_PostConfig *)p)->EventSelectList[0];
l.SelectListIsUpdated = NULL;
break;
case pwr_cClass_SevHistEvents:
type = mh_eOutunitType_SevHistEvents;
l.pSelL = (void *)&((pwr_sClass_SevHistEvents*) p)->EventSelectList[0];
l.pSelL = (void *)&((pwr_sClass_SevHistEvents *)p)->EventSelectList[0];
l.pSelEventType = &((pwr_sClass_SevHistEvents *)p)->EventSelectType;
l.SelectListIsUpdated = NULL;
break;
default:
......@@ -822,6 +827,9 @@ getSelectList ()
}
l.selSize = j;
l.selGen++;
if ( l.pSelEventType)
l.selEventType = *l.pSelEventType;
}
static void
......@@ -873,6 +881,10 @@ handlerEvent (
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
if (l.cbAlarm != NULL)
sts = l.cbAlarm((mh_sMessage*) mp);
break;
......@@ -919,7 +931,7 @@ handlerLog (
)
{
errh_Info("%s, (%s)", s, qcom_QidToString(NULL, &hp->qid, 1));
errh_Info("%s, %s (%s)", s, qcom_NodeName( hp->qid.nid), qcom_QidToString(NULL, &hp->qid, 1));
}
static void
......@@ -1085,7 +1097,8 @@ sendInfo (
return;
ip = (mh_sOutunitInfo *)mp;
ip->type = l.type;
ip->type = (pwr_tUInt16)l.type;
ip->selEventType = (pwr_tUInt16)l.selEventType;
ip->selGen = l.selGen;
ip->selSize = l.selSize;
......@@ -1167,7 +1180,11 @@ static void msgFromV3( mh_sHead *hp)
case mh_eEvent_Info:
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm: {
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4: {
mh_sMessage *mp = (mh_sMessage *)ip;
mp->Object = cdh_ObjidToAref( ip->Object_V3);
......
......@@ -495,6 +495,51 @@ qcom_MyNode (
return YES;
}
char *qcom_NodeName(
pwr_tNodeId nid
)
{
static char name[80];
qcom_sNode node;
pwr_tStatus sts;
qcom_Node( &sts, &node, nid);
if (EVEN(sts))
strcpy( name, "");
else
strncpy( name, node.name, sizeof(name));
return name;
}
pwr_tBoolean
qcom_Node (
pwr_tStatus *status,
qcom_sNode *node,
pwr_tNodeId nid
)
{
qdb_sNode *np = NULL;
pwr_dStatus (sts, status, QCOM__SUCCESS);
if (node == NULL)
pwr_Return(NO, sts, QCOM__BADARG);
qdb_ScopeLock {
np = hash_Search(sts, &qdb->nid_ht, &nid);
if (np == NULL) {
*sts = QCOM__NOSUCHNODE;
}
qdb_NodeInfo(NULL, node, np);
} qdb_ScopeUnlock;
return (np != NULL);
}
pwr_tBoolean
qcom_NextNode (
......
......@@ -385,6 +385,16 @@ pwr_tBoolean qcom_MyNode (
qcom_sNode *node
);
char *qcom_NodeName (
pwr_tNodeId nid
);
pwr_tBoolean qcom_Node (
pwr_tStatus *sts,
qcom_sNode *node,
pwr_tNodeId nid
);
pwr_tBoolean qcom_NextNode (
pwr_tStatus *sts,
qcom_sNode *node,
......
......@@ -85,6 +85,14 @@ SObject pwrb:Class
Attr Elements = 100
EndBody
EndObject
!/**
! Event type.
!*/
Object EventType $Attribute 5
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
EndObject
EndObject
Object Template AlarmCategory
Body RtBody
......
......@@ -285,6 +285,15 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Specifies the type of events that are sent to the user.
! If no type is specified, all types av events are sent.
!*/
Object EventSelectType $Attribute 49
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
EndObject
!/**
! Specifies the type of events viewed in the eventlist.
!*/
Object EventListEvents $Attribute 43
......
......@@ -83,7 +83,16 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Specifies type of stored events.
! Specifies the type of events that are sent to the user.
! If no type is specified, all types av events are sent.
!*/
Object EventSelectType $Attribute 8
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
EndObject
!/**
! Specifies if acknowledge or return events are stored.
!*/
Object EventTypes $Attribute 3
Body SysBody
......
......@@ -297,6 +297,15 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Specifies the type of events that are sent to the user.
! If no type is specified, all types av events are sent.
!*/
Object EventSelectType $Attribute 43
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
EndObject
!/**
! Specifies the maximum number of contemporary alarms in
! the user's alarm list.
! The number should exceed the maximum number of
......
......@@ -93,6 +93,46 @@ SObject pwrb:Type
Attr Value = 256
EndBody
EndObject
!/**
! Type UserAlarm1.
!*/
Object UserAlarm1 $Value
Body SysBody
Attr PgmName = "UserAlarm1"
Attr Text = "UserAlarm1"
Attr Value = 512
EndBody
EndObject
!/**
! Type UserAlarm2.
!*/
Object UserAlarm2 $Value
Body SysBody
Attr PgmName = "UserAlarm2"
Attr Text = "UserAlarm2"
Attr Value = 1024
EndBody
EndObject
!/**
! Type UserAlarm3.
!*/
Object UserAlarm3 $Value
Body SysBody
Attr PgmName = "UserAlarm3"
Attr Text = "UserAlarm3"
Attr Value = 2048
EndBody
EndObject
!/**
! Type UserAlarm4.
!*/
Object UserAlarm4 $Value
Body SysBody
Attr PgmName = "UserAlarm4"
Attr Text = "UserAlarm4"
Attr Value = 4096
EndBody
EndObject
EndObject
EndSObject
......
......@@ -88,6 +88,46 @@ SObject pwrb:Type
Attr Value = 256
EndBody
EndObject
!/**
! Type UserAlarm1.
!*/
Object UserAlarm1 $Bit
Body SysBody
Attr PgmName = "UserAlarm1"
Attr Text = "UserAlarm1"
Attr Value = 512
EndBody
EndObject
!/**
! Type UserAlarm2.
!*/
Object UserAlarm2 $Bit
Body SysBody
Attr PgmName = "UserAlarm2"
Attr Text = "UserAlarm2"
Attr Value = 1024
EndBody
EndObject
!/**
! Type UserAlarm3.
!*/
Object UserAlarm3 $Bit
Body SysBody
Attr PgmName = "UserAlarm3"
Attr Text = "UserAlarm3"
Attr Value = 2048
EndBody
EndObject
!/**
! Type UserAlarm4.
!*/
Object UserAlarm4 $Bit
Body SysBody
Attr PgmName = "UserAlarm4"
Attr Text = "UserAlarm4"
Attr Value = 4096
EndBody
EndObject
EndObject
EndSObject
......
......@@ -333,7 +333,7 @@ EvGtk::EvGtk( void *ev_parent_ctx,
eve_methodtoolbar->get_select_cb = eve->get_select;
eve_sup_methodtoolbar = new XttMethodToolbarGtk(0, 0, mt_mMethod_OpenPlc | mt_mMethod_RtNavigator,
"for supervisory object");
" for supervisory object");
GtkToolbar *tools_sup = (GtkToolbar *) ((XttMethodToolbarGtk *)eve_sup_methodtoolbar)->build();
eve_sup_methodtoolbar->m_xnav = (XNav *)parent_ctx;
eve_sup_methodtoolbar->m_parent_ctx = eve;
......@@ -342,9 +342,9 @@ EvGtk::EvGtk( void *ev_parent_ctx,
GtkWidget *eve_toolsbox = gtk_hbox_new( FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(tools), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(gtk_separator_tool_item_new()), FALSE, FALSE, 4);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(tools_meth), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(gtk_separator_tool_item_new()), FALSE, FALSE, 4);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(tools_sup), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(gtk_separator_tool_item_new()), FALSE, FALSE, 4);
gtk_box_pack_start( GTK_BOX(eve_toolsbox), GTK_WIDGET(tools_meth), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(eve_vbox), GTK_WIDGET(eve_toolsbox), FALSE, FALSE, 0);
......
......@@ -318,10 +318,22 @@ HistGtk::HistGtk( void *hist_parent_ctx,
gtk_widget_set_size_request( sea_type_label, 120, -1);
gtk_misc_set_alignment( GTK_MISC(sea_type_label), 0.0, 0.5);
alarm_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Active"));
gtk_widget_set_size_request( alarm_toggle_w, 120, -1);
info_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Message"));
info_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Info"));
gtk_widget_set_size_request( info_toggle_w, 120, -1);
alarm_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Alarm"));
gtk_widget_set_size_request( alarm_toggle_w, 120, -1);
mnt_alarm_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("MaintenanceAlarm"));
gtk_widget_set_size_request( mnt_alarm_toggle_w, 120, -1);
sys_alarm_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("SystemAlarm"));
gtk_widget_set_size_request( sys_alarm_toggle_w, 120, -1);
user_alarm1_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("UserAlarm1"));
gtk_widget_set_size_request( user_alarm1_toggle_w, 120, -1);
user_alarm2_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("UserAlarm2"));
gtk_widget_set_size_request( user_alarm2_toggle_w, 120, -1);
user_alarm3_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("UserAlarm3"));
gtk_widget_set_size_request( user_alarm3_toggle_w, 120, -1);
user_alarm4_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("UserAlarm4"));
gtk_widget_set_size_request( user_alarm4_toggle_w, 120, -1);
ret_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Return"));
gtk_widget_set_size_request( ret_toggle_w, 120, -1);
ack_toggle_w = gtk_check_button_new_with_label( CoWowGtk::translate_utf8("Ack"));
......@@ -329,8 +341,14 @@ HistGtk::HistGtk( void *hist_parent_ctx,
GtkWidget *sea_typebox = gtk_hbox_new( FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), sea_type_label, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), alarm_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), info_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), alarm_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), mnt_alarm_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), sys_alarm_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), user_alarm1_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), user_alarm2_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), user_alarm3_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), user_alarm4_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), ret_toggle_w, FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(sea_typebox), ack_toggle_w, FALSE, FALSE, 0);
......@@ -476,11 +494,23 @@ void HistGtk::ok_btn( GtkWidget *w, gpointer data)
Hist *histOP = (Hist *)data;
brow_DeleteAll(histOP->hist->brow->ctx);
histOP->eventType_Info = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->info_toggle_w));
histOP->eventType_Alarm = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(((HistGtk *)histOP)->alarm_toggle_w));
histOP->eventType_Ack = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->ack_toggle_w));
histOP->eventType_MaintenanceAlarm = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->mnt_alarm_toggle_w));
histOP->eventType_Info = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->info_toggle_w));
histOP->eventType_SystemAlarm = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->sys_alarm_toggle_w));
histOP->eventType_UserAlarm1 = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->user_alarm1_toggle_w));
histOP->eventType_UserAlarm2 = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->user_alarm2_toggle_w));
histOP->eventType_UserAlarm3 = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->user_alarm3_toggle_w));
histOP->eventType_UserAlarm4 = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->user_alarm4_toggle_w));
histOP->eventType_Ack = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->ack_toggle_w));
histOP->eventType_Return = (bool)gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( ((HistGtk *)histOP)->ret_toggle_w));
......
......@@ -66,6 +66,12 @@ class HistGtk : public Hist {
GtkWidget *event_name_entry_w;
GtkWidget *alarm_toggle_w;
GtkWidget *info_toggle_w;
GtkWidget *mnt_alarm_toggle_w;
GtkWidget *sys_alarm_toggle_w;
GtkWidget *user_alarm1_toggle_w;
GtkWidget *user_alarm2_toggle_w;
GtkWidget *user_alarm3_toggle_w;
GtkWidget *user_alarm4_toggle_w;
GtkWidget *ack_toggle_w;
GtkWidget *ret_toggle_w;
GtkWidget *prioA_toggle_w;
......
......@@ -136,6 +136,7 @@ union alau_Event
mh_sBlock Block;
};
static unsigned int prio_enum_to_mask( unsigned int prio);
//
// Free pixmaps
......@@ -493,6 +494,7 @@ void EvListBrow::create_nodeclasses()
brow_AddAnnotPixmap( nc_event, 0, 1.6, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmap( nc_event, 1, 2.2, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmapButton( nc_event, 2, 3.0, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnotPixmap( nc_event, 3, 3.8, 0.1, flow_eDrawType_Line, 2, 0);
brow_AddAnnot( nc_event, 4.8, 0.6, 1,
flow_eDrawType_TextHelvetica, 2, flow_eAnnotType_OneLine,
0);
......@@ -1996,7 +1998,7 @@ void ItemAlarm::update_text( int use_treenode)
ItemCategory::ItemCategory( EvList *item_evlist, const char *item_name, pwr_sClass_AlarmCategory *cop,
brow_tNode dest, flow_eDest dest_code, int *rsts) :
evlist(item_evlist), prio(0), notacked_child(0)
evlist(item_evlist), prio(0), base_nc(0), notacked_child(0)
{
pwr_tStatus sts;
......@@ -2005,7 +2007,8 @@ ItemCategory::ItemCategory( EvList *item_evlist, const char *item_name, pwr_sCla
*rsts = 1;
strcpy( name, item_name);
strcpy( text, cop->Text);
event_priority = cop->EventPriority;
select_priority = cop->EventPriority;
select_eventtype = cop->EventType;
member_cnt = 0;
for ( unsigned int i = 0; i < sizeof(cop->Members)/sizeof(cop->Members[0]); i++) {
......@@ -2055,6 +2058,11 @@ void ItemCategory::configure( EvList *evlist)
switch( item->type) {
case evlist_eItemType_Alarm: {
for ( int j = 0; j < member_cnt; j++) {
if ( item->eventtype != mh_eEvent_Info && select_priority != 0 && !(select_priority & prio_enum_to_mask( item->eventprio)))
continue;
if ( select_eventtype != 0 && !(select_eventtype & item->eventtype))
continue;
if ( strncmp( members[j], item->eventname, strlen(members[j])) == 0) {
// Presupmtive child
if ( item->event_type == evlist_eEventType_Info) {
......@@ -2098,6 +2106,9 @@ void ItemCategory::configure( EvList *evlist)
brow_ChangeObjectNodeClass( node, base_nc);
}
if ( base_nc == 0)
base_nc = evlist->brow->nc_category;
if ( prio == 0) {
brow_SetAnnotPixmap( node, 0, evlist->brow->pixmap_leaf);
if ( brow_IsOpen( node) & evlist_mOpen_Children)
......@@ -2213,6 +2224,11 @@ int ItemCategory::open_children( EvList *evlist, double x, double y)
case evlist_eItemType_Alarm: {
if ( item->tree_node)
continue;
if ( item->eventtype != mh_eEvent_Info && select_priority != 0 && !(select_priority & prio_enum_to_mask( item->eventprio)))
continue;
if ( select_eventtype != 0 && !(select_eventtype & item->eventtype))
continue;
for ( int j = 0; j < member_cnt; j++) {
if ( strncmp( members[j], item->eventname, strlen(members[j])) == 0) {
// Insert item
......@@ -2293,6 +2309,10 @@ void ItemCategory::flash( EvList *evlist)
brow_GetUserData( object_list[i], (void **)&item);
switch( item->type) {
case evlist_eItemType_Alarm: {
if ( select_priority != 0 && !(select_priority & prio_enum_to_mask( item->eventprio)))
continue;
if ( select_eventtype != 0 && !(select_eventtype & item->eventtype))
continue;
for ( int j = 0; j < member_cnt; j++) {
if ( strncmp( members[j], item->eventname, strlen(members[j])) == 0) {
// Presupmtive child
......@@ -3054,8 +3074,8 @@ void EvList::fill_alarm_tables()
skip = 1;
break;
case evlist_eEventType_Alarm:
if ( alarm_tables[j]->EventType & pwr_mEventTypeMask_Alarm) {
eventtype = pwr_eEventTypeEnum_Alarm;
if ( alarm_tables[j]->EventType & item->eventtype) {
eventtype = item->eventtype;
if ( !(alarm_tables[j]->EventPriority & item->eventprio))
skip = 1;
}
......@@ -3094,3 +3114,18 @@ void EvList::fill_alarm_tables()
sizeof(at) - offsetof(pwr_sClass_AlarmTable, NoOfAlarms));
}
}
static unsigned int prio_enum_to_mask( unsigned int prio)
{
switch ( prio) {
case mh_eEventPrio_A:
return pwr_mEventPrioMask_A;
case mh_eEventPrio_B:
return pwr_mEventPrioMask_B;
case mh_eEventPrio_C:
return pwr_mEventPrioMask_C;
case mh_eEventPrio_D:
return pwr_mEventPrioMask_D;
}
return 0;
}
......@@ -319,7 +319,8 @@ class ItemCategory : public ItemEvBase {
char name[80];
char text[80];
unsigned int prio;
unsigned int event_priority;
unsigned int select_priority;
unsigned int select_eventtype;
pwr_tAName members[100];
int member_cnt;
brow_tNodeClass base_nc;
......
......@@ -409,6 +409,12 @@ void Hist::get_hist_list()
switch (it->EventType)
{
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
hist_add_alarm_mess( &(it->Mess.message) );
break;
case mh_eEvent_Info:
......@@ -563,6 +569,12 @@ void Hist::stat()
switch (evv[i].event.EventType) {
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
hist_add_alarm_mess( &evv[i].event.Mess.message);
break;
case mh_eEvent_Info:
......@@ -609,7 +621,9 @@ int Hist::check_conditions(sEvent *evp)
}
bool ret = false;
//then we compare the EventType if nothing is selected everything is selected
if(eventType_Ack || eventType_Alarm || eventType_Info || eventType_Return || eventType_Cancel || eventType_Block ||
if(eventType_Ack || eventType_Alarm || eventType_MaintenanceAlarm || eventType_SystemAlarm ||
eventType_UserAlarm1 || eventType_UserAlarm2 || eventType_UserAlarm3 || eventType_UserAlarm4 ||
eventType_Info || eventType_Return || eventType_Cancel || eventType_Block ||
eventType_Unblock || eventType_Reblock || eventType_CancelBlock)
{
switch(evp->EventType)
......@@ -618,6 +632,30 @@ int Hist::check_conditions(sEvent *evp)
if(!eventType_Alarm)
ret = true;
break;
case mh_eEvent_SystemAlarm:
if(!eventType_SystemAlarm)
ret = true;
break;
case mh_eEvent_MaintenanceAlarm:
if(!eventType_MaintenanceAlarm)
ret = true;
break;
case mh_eEvent_UserAlarm1:
if(!eventType_UserAlarm1)
ret = true;
break;
case mh_eEvent_UserAlarm2:
if(!eventType_UserAlarm2)
ret = true;
break;
case mh_eEvent_UserAlarm3:
if(!eventType_UserAlarm3)
ret = true;
break;
case mh_eEvent_UserAlarm4:
if(!eventType_UserAlarm4)
ret = true;
break;
case mh_eEvent_Info:
if(!eventType_Info)
ret = true;
......@@ -666,6 +704,12 @@ int Hist::check_conditions(sEvent *evp)
switch (evp->EventType)
{
case mh_eEvent_Alarm:
case mh_eEvent_MaintenanceAlarm:
case mh_eEvent_SystemAlarm:
case mh_eEvent_UserAlarm1:
case mh_eEvent_UserAlarm2:
case mh_eEvent_UserAlarm3:
case mh_eEvent_UserAlarm4:
case mh_eEvent_Info:
msgInfop = &(evp->Mess.message.Info);
eventNamep = evp->Mess.message.EventName;
......
......@@ -93,6 +93,12 @@ class Hist {
bool eventType_Ack;
bool eventType_Alarm;
bool eventType_Info;
bool eventType_MaintenanceAlarm;
bool eventType_SystemAlarm;
bool eventType_UserAlarm1;
bool eventType_UserAlarm2;
bool eventType_UserAlarm3;
bool eventType_UserAlarm4;
bool eventType_Return;
bool eventType_Cancel;
bool eventType_Block;
......
......@@ -694,6 +694,23 @@ int ItemBaseAttr::open_children( XNavBrow *brow, double x, double y)
brow_RemoveAnnotPixmap( node, 1);
brow_ResetNodraw( brow->ctx);
brow_Redraw( brow->ctx, node_y);
switch( type_id)
{
case pwr_eType_Objid:
brow_SetAnnotPixmap( node, 0, brow->pixmap_ref);
break;
case pwr_eType_AttrRef:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrref);
break;
case pwr_eType_Enum:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrenum);
break;
case pwr_eType_Mask:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrmask);
break;
default:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attr);
}
}
else {
int sts;
......@@ -738,7 +755,7 @@ int ItemBaseAttr::open_children( XNavBrow *brow, double x, double y)
return 0;
brow_SetOpen( node, xnav_mOpen_Children);
brow_SetAnnotPixmap( node, 1, brow->pixmap_openmap);
brow_SetAnnotPixmap( node, 0, brow->pixmap_openmap);
brow_ResetNodraw( brow->ctx);
brow_Redraw( brow->ctx, node_y);
}
......@@ -757,6 +774,23 @@ void ItemBaseAttr::close( XNavBrow *brow, double x, double y)
brow_ResetOpen( node, xnav_mOpen_All);
brow_ResetNodraw( brow->ctx);
brow_Redraw( brow->ctx, node_y);
switch( type_id)
{
case pwr_eType_Objid:
brow_SetAnnotPixmap( node, 0, brow->pixmap_ref);
break;
case pwr_eType_AttrRef:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrref);
break;
case pwr_eType_Enum:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrenum);
break;
case pwr_eType_Mask:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrmask);
break;
default:
brow_SetAnnotPixmap( node, 0, brow->pixmap_attr);
}
}
}
......@@ -768,7 +802,7 @@ ItemAttr::ItemAttr( XNavBrow *brow, pwr_tObjid item_objid,
ItemBaseAttr( item_objid, attr_name,
attr_type_id, attr_tid, attr_size, attr_flags, item_is_root, item_display_type)
{
pwr_tObjName obj_name;
pwr_tOName obj_name;
pwr_tAName annot;
int sts;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment