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