Commit 6238bf60 authored by Claes Sjofors's avatar Claes Sjofors

rt_report, new report server

parent ba705e5f
......@@ -125,6 +125,7 @@
# define cPrio_opc_server (cPrio_base + 15)
# define cPrio_statussrv (cPrio_base + 15)
# define cPrio_post (cPrio_base + 5)
# define cPrio_report (cPrio_base + 5)
# define cPrio_sevhistmon (cPrio_base + 15)
# define cPrio_sev_server (cPrio_base + 15)
# define cPrio_plc_init (cPrio_base + 5)
......@@ -2098,6 +2099,9 @@ ini_ProcTable (
pp = ini_ProcInsert(sts, cp, "pwr_post", "pwr_post_%d", 0, 1, "rt_post", cPrio_post, 0, "");
pp->proc.flags.b.system = 1;
pp = ini_ProcInsert(sts, cp, "pwr_report", "pwr_report_%d", 0, 1, "rt_report", cPrio_report, 0, "");
pp->proc.flags.b.system = 1;
pp = ini_ProcInsert(sts, cp, "pwr_sevhistmon", "pwr_sevhistmon_%d", 0, 1, "rt_sevhistmon", cPrio_sevhistmon, 0, "");
pp->proc.flags.b.system = 1;
......
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
ifndef link_rule_mk
link_rule_mk := 1
link = $(ldxx) $(linkflags) $(domap) -o $(export_exe) \
$(export_obj) $(objects) $(rt_msg_objs) \
$(pwr_obj)/rt_io_user.o\
$(pwre_conf_libdir) $(pwre_conf_libpwrrt) $(pwre_conf_lib)
endif
This diff is collapsed.
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2011 SSAB Oxelosund AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
*/
#ifndef rt_report_h
#define rt_report_h
using namespace std;
#include <string.h>
#include <vector>
#ifndef pwr_h
# include "pwr.h"
#endif
#ifndef rt_qmon_h
# include "rt_qcom.h"
#endif
#ifndef co_user_h
# include "co_user.h"
#endif
#include "pwr_baseclasses.h"
/*! \file rt_report.h
\brief Contains the rt_report class. */
/*! \addtogroup rt */
/*@{*/
typedef struct {
pwr_sClass_Report *p;
pwr_tDlid dlid;
} report_sObject;
class rt_report {
public:
rt_report();
void init( qcom_sQid *qid);
void open();
void close();
void scan();
double scantime() { return scan_time;}
void create_report( pwr_sClass_Report *o);
void replace_symbol( char *outstr, char *instr);
int replace_value( char *out, unsigned int size, char *in);
void format_cmd( char *cmd, int cmd_size, const char *format,
const char *address, const char *text, const char *subject,
const char *reportfile, const char *date);
void periodic_scan();
int periodic_check( pwr_sClass_Report *o);
double scan_time;
pwr_sClass_ReportConfig *conf;
vector<report_sObject> repv;
GeUser *udb;
char nodename[80];
char systemgroup[80];
int first_scan;
int old_sec;
int old_min;
int old_hour;
int old_mday;
int old_wday;
int old_yday;
int now_sec;
int now_min;
int now_hour;
int now_mday;
int now_wday;
int now_yday;
};
/*@}*/
#endif
......@@ -67,7 +67,7 @@ pwrs_Node_Exec (
static int supervise[60] = {
0,0,0,0,1,1,1,0,1,1,
1,1,1,0,0,1,0,1,1,1,
1,1,0,0,0,0,0,0,0,0,
1,1,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1};
......
......@@ -120,7 +120,8 @@ typedef enum {
errh_eAnix_opc_server = 19,
errh_eAnix_statussrv = 20,
errh_eAnix_post = 21,
errh_eAnix_sevhistmon = 22,
errh_eAnix_report = 22,
errh_eAnix_sevhistmon = 23,
errh_eAnix_appl1 = 41,
errh_eAnix_appl2 = 42,
errh_eAnix_appl3 = 43,
......
......@@ -76,7 +76,7 @@ SObject pwrb:Class
!/**
! Specifies the email shell command.
! The command should contain the strings $address and $text.
! $adderss will be replaced by the email address for the
! $address will be replaced by the email address for the
! specified user, and $text will be replaced by a message
! text with event text and event name.
!*/
......@@ -88,7 +88,7 @@ SObject pwrb:Class
!/**
! Specifies the SMS shell command.
! The command should contain the strings $address and $text.
! $adderss will be replaced by the sms number for the specified
! $address will be replaced by the sms number for the specified
! user, and $text will be replaced by a message text with event
! text and event name.
!*/
......
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2011 SSAB Oxelosund AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_report.wb_load -- Defines the class Report.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Servers,NodeConfiguration
! @Summary Configuration of reports.
! Configuration of reports.
!
! The Report object configures a report.
!*/
Object Report $ClassDef 551
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "Report"
EndBody
!/**
! Optional description.
!*/
Object Description $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Subject.
!*/
Object Subject $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Template file.
!*/
Object TemplateFile $Attribute 3
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Target file.
!*/
Object TargetFile $Attribute 15
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Media for report.
!*/
Object Media $Attribute 4
Body SysBody
Attr TypeRef = "pwrb:Type-ReportMediaMask"
EndBody
EndObject
!/**
! Document format for report.
!*/
Object DocumentFormat $Attribute 5
Body SysBody
Attr TypeRef = "pwrb:Type-DocumentFormatEnum"
EndBody
EndObject
!/**
! Recipient for epost and mms alarms.
! The recipient is a user defined in the user database in the
! current system group.
! Recipient can also be a list of users separated by comma, eg
! 'dennis, jimmy'. Also symbols defined in the Symbol table in
! the PostConfig object can be used. Symbols should be referenced
! with a $ sign before the symbol name, eg '$on_duty'.
!
! The users should be defined in the current system group or in a
! subgroup to this, If a subgroup is used, the subgroup should
! be specified in the recipient name, eg 'sms.dennis'.
!*/
Object Recipient $Attribute 6
Body SysBody
Attr TypeRef = "pwrs:Type-$String40"
EndBody
EndObject
!/**
! Report type daily, weekly, monthly or triggered.
!*/
Object Periodicity $Attribute 8
Body SysBody
Attr TypeRef = "pwrb:Type-PeriodicEnum"
EndBody
EndObject
!/**
! Time offset for periodicity.
!*/
Object TimeOffset $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$DeltaTime"
EndBody
EndObject
!/**
! Trigger. Set to create and send report.
!*/
Object Trigger $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! If a specific email shell command should be used for
! this report it is specified here. If EmailCmd is empty
! the email command is fetched from the ReportConfig object.
!*/
Object EmailCmd $Attribute 11
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! If a specific SMS shell command should be used for
! this report it is specified here. If SMS_Cmd is empty
! the SMS command is fetched from the ReportConfig object.
!*/
Object SMS_Cmd $Attribute 12
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! If a specific print shell command should be used for
! this report it is specified here. If PrintCmd is empty
! the print command is fetched from the ReportConfig object.
!*/
Object PrintCmd $Attribute 13
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! Report is send in this period.
!*/
Object Sent $Attribute 14
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object Template Report
Body RtBody
Attr Media = 1
Attr DocumentFormat = 1
EndBody
EndObject
EndObject
EndSObject
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2011 SSAB Oxelosund AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_reportconfig.wb_load -- Defines the class ReportConfig.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Servers,NodeConfiguration
! @Summary Configuration of report server.
! Configuration of report server.
!
! The Report server creates and send reports to printers and epost
! addresses.
!*/
Object ReportConfig $ClassDef 550
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "ReportConfig"
EndBody
!/**
! Specifies the email shell command.
! The command should contain the strings $address and $text.
! $address will be replaced by the email address for the
! specified user, and $text will be replaced by a message
! text with event text and event name.
! If document format Pdf or Html is selected the report will
! be sent as an attached file, and command should also contain
! $reportfile which will be replaced by the report filename.
!
! Example for mutt with pdf or html format
! echo '$text' | mutt $address -s '$subject' -a $reportfile
!
! Example for mutt text format
! cat $reportfile | mutt $address -s '$subject'
!
!*/
Object EmailCmd $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! Specifies the SMS shell command.
! The command should contain the strings $address and $text.
! $address will be replaced by the sms number for the specified
! user, and $text will be replaced by a message text with event
! text and event name.
!*/
Object SMS_Cmd $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! Specifies the print shell command.
! The command should contain the strings $reportfile.
! $reportfile will be replaced by the name of the generated file
! that should be printed.
!*/
Object PrintCmd $Attribute 3
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
EndBody
EndObject
!/**
! @Summary Recipient symbol definitions.
! Recipients can be defined with symbols, and the symbols will be
! replaced by their value in this table.
! Symbols are referenced with a $ sign before the name. The $ sign
! should not be present in the definition.
!
! @b Example
! The Recipient attibute in a DSup is 'john, $on_duty'. A symbol is defined
! with the name 'on_duty' and the value 'dennis, jimmy'. The resultant
! recipient string will be 'john, dennis, jimmy' and the event will be posted
! to the address of these three.
!*/
Object Symbols $Attribute 4
Body SysBody
Attr TypeRef = "pwrb:Class-SymbolDefinition"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_CLASS
Attr Elements = 20
EndBody
EndObject
!/**
! Specifies language.
! Not yet implemented.
!*/
Object Language $Attribute 5
Body SysBody
Attr TypeRef = "pwrb:Type-LanguageEnum"
EndBody
EndObject
!/**
! Server status.
!*/
Object Status $Attribute 6
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Number of sent SMS.
!*/
Object SentSMS $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Number of sent Email.
!*/
Object SentEmail $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Disable reports.
! When Disable is 0, no reports are created.
!*/
Object Disable $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
EndBody
EndObject
EndObject
Object Template ReportConfig
Body RtBody
Attr EmailCmd = "echo '$text' | mutt $address -s '$subject' -a $reportfile"
Attr PrintCmd = "lpr $reportfile"
EndBody
EndObject
EndObject
EndSObject
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2011 SSAB Oxelosund AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_td_reportmediaenum.wb_load -- Defines the enum type ReportMedia
!
SObject pwrb:Type
!/**
! @Version 1.0
! @Group Types
! Enumeration for document format.
!*/
Object DocumentFormatEnum $TypeDef 59
Body SysBody
Attr TypeRef = "pwrs:Type-$Enum"
Attr PgmName = "DocumentFormatEnum"
EndBody
!/**
! PDF
!*/
Object PDF $Value
Body SysBody
Attr PgmName = "PDF"
Attr Text = "PDF"
Attr Value = 0
EndBody
EndObject
!/**
! Html.
!*/
Object Html $Value
Body SysBody
Attr PgmName = "Html"
Attr Text = "Html"
Attr Value = 1
EndBody
EndObject
!/**
! Text.
!*/
Object Text $Value
Body SysBody
Attr PgmName = "Text"
Attr Text = "Text"
Attr Value = 2
EndBody
EndObject
!/**
! Postscript.
!*/
Object Postscript $Value
Body SysBody
Attr PgmName = "Postscript"
Attr Text = "Postscript"
Attr Value = 3
EndBody
EndObject
EndObject
EndSObject
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2011 SSAB Oxelosund AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_td_periodicenum.wb_load -- Defines the enum type PeriodicEnum
!
SObject pwrb:Type
!/**
! @Version 1.0
! @Group Types
! Enumeration for document format.
!*/
Object PeriodicEnum $TypeDef 61
Body SysBody
Attr TypeRef = "pwrs:Type-$Enum"
Attr PgmName = "PeriodicEnum"
EndBody
!/**
! Not periodic
!*/
Object No $Value
Body SysBody
Attr PgmName = "No"
Attr Text = "No"
Attr Value = 0
EndBody
EndObject
!/**
! Yearly.
!*/
Object Yearly $Value
Body SysBody
Attr PgmName = "Yearly"
Attr Text = "Yearly"
Attr Value = 1
EndBody
EndObject
!/**
! Monthly.
!*/
Object Monthly $Value
Body SysBody
Attr PgmName = "Monthly"
Attr Text = "Monthly"
Attr Value = 2
EndBody
EndObject
!/**
! Weekly.
!*/
Object Weekly $Value
Body SysBody
Attr PgmName = "Weekly"
Attr Text = "Weekly"
Attr Value = 3
EndBody
EndObject
!/**
! Daily.
!*/
Object Daily $Value
Body SysBody
Attr PgmName = "Daily"
Attr Text = "Daily"
Attr Value = 4
EndBody
EndObject
!/**
! Hourly.
!*/
Object Hourly $Value
Body SysBody
Attr PgmName = "Hourly"
Attr Text = "Hourly"
Attr Value = 5
EndBody
EndObject
EndObject
EndSObject
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2011 SSAB Oxelosund AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_reportmediamask.wb_load -- Defines the mask type ReportMeidaMask
!
SObject pwrb:Type
!/**
! @Version 1.0
! @Group Types
! Bitmask for report media.
!*/
Object ReportMediaMask $TypeDef 60
Body SysBody
Attr Type = pwr_eType_Mask
Attr Size = 4
Attr TypeRef = "pwrs:Type-$Mask"
Attr Elements = 1
EndBody
!/**
! Email.
!*/
Object Email $Bit
Body SysBody
Attr PgmName = "Email"
Attr Text = "Email"
Attr Value = 1
EndBody
EndObject
!/**
! SMS.
!*/
Object SMS $Bit
Body SysBody
Attr PgmName = "SMS"
Attr Text = "SMS"
Attr Value = 2
EndBody
EndObject
!/**
! Printer.
!*/
Object Printer $Bit
Body SysBody
Attr PgmName = "Printer"
Attr Text = "Printer"
Attr Value = 4
EndBody
EndObject
!/**
! File.
!*/
Object File $Bit
Body SysBody
Attr PgmName = "File"
Attr Text = "File"
Attr Value = 8
EndBody
EndObject
EndObject
EndSObject
This diff is collapsed.
This diff is collapsed.
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