|
|
4. Configuratie
De configuratie van CasPPer staat opgeslagen in twee bestanden (caspper.ini|conf en logging.ini|conf. Deze bestanden hebben het formaat van een windows ’ini’ bestand. Dat wil zeggen dat het bestand bestaat uit velden met een veldnaam en een waarde, gescheiden door een = teken.
Groepen van deze velden zijn gegroepeerd in secties. De secties worden aangegeven door een naam in vierkante haken.
4.1 caspper.ini | conf
Dit bestand bevat de volledige configuratie van de applicatie. Het bevat
- Globale secties
- ’Super’ secties
- Onderdeel secties
4.1.1 Globale secties
Globale secties bevatten algemene instelling voor het gehele programma
-
customer. Bevat klant specifieke instellingen
-
activation. Beval instelling ten behoeve van de programma activatie
4.1.2 ’Super’ secties
’Super’ secties zijn catergorieën van onderdelen in CasPPer. Iedere veldnaam in een ’super’ sectie is de naam van een onderdeel sectie. De waarde van het veld bepaalt of het onderdeel actief is (0 of 1)
Alle ’super’ secties zijn verplicht in het configuratie bestand
-
schedules. Bevat bloktijden schemas. Bijvoorbeeld ten behoeve van happy hour.
-
loggers. Bevat buffers met log teksten.
-
ios. Bevat digitale IO modules
-
events. Bevat objecten die een externe gebeurtenis representeren. Zoals opkomen van een digitale input.
-
functions. Bevat uitsturingen. Dit kan bijvoorbeeld een digitale uitsturing zijn, maar kan ook het versturen van een tekst over het netwerk zijn.
-
statuses. Bevat objecten die een externe waarde representeren, zoals de status van een digitale ingang of de waarden van een teller.
-
queues. Bevat wachtrij objecten.
-
controllers. Bevat objecten die communiceren met wasstraat besturingen.
-
transactions. Bevat object die opslag van transactie presenteren.
-
monitors. Bevat objecten die een transactie log bijhouden op basis van (besturings)tellers.
-
conveyors. Bevat interne besturings componenten op basis van beschikbare informatie over posities van autos in de wasstraat
-
ports. Bevat externe lees en schrijf poorten.
-
inputs. Bevat invoer componenten voor wachtrij invoer.
-
resources. Bevat functie elementen voor externe programeer interfaces
-
xmlrpcs. Bevat externe programmer interfaces.
-
services. Beval web interfaces.
4.1.3 Onderdeel secties
De onderdeel secties bevatten allereerst een type veld. Dit bevat het type van het onderdeel. De daarop volgende velden bevatten de instellingen voor dit specifieke type. Sommige instellingen zijn verplicht voor een type, andere optioneel. Velden kunnen een een verwijzing bevatten naar andere onderdelen uit de configuratie. Een verwijzing bestaat uit de naam van een ander onderdeel in de configuratie. Het onderdeel waarnaar verwezen wordt moeten reeds bestaan op het moment dat de verwijzing wordt ingelezen. Dit betekent dat de volgorde van onderdelen in het configuratie bestand belangrijk kan zijn. Let hierbij op het feit dat ’super’ secties worden ingelezen in de volgorde als beschreven in "’Super’ secties" en de onderdelen binnen een ’super’ sectie op alfabet van de gekozen naam voor de onderdelen. Indien een verwijzing niet bestaat verschijnt er een "Object required" bericht in de log file.
4.1.4 Voorbeeld
Een voorbeeld fragment uit een configuratie bestand
| | [controllers] #'Super' sectie met controllers
hoofd_wasstraat_controller=1 # Actieve controller. De naam is vrij te kiezen...
[hoofd_wasstraat_controller] # ... maar komt overeen met die van de onderdeel sectie
type=ace_control # Het type controller
controller_path=c:\some path\ # Instelling voor dit type controller
|
4.2 logging.ini | conf
Het logging bestand bevat instelling voor welke data waarnaartoe wordt gelogd. Normaliter zijn alleen wijzigingen nodig ten behoeve van probleem oplossing. Om bijvoorbeeld meer informatie in het log bestand zichtbaar te maken, kan het level van zowel de logger als de loghandler op DEBUG gezet worden.
4.3 Configuratie Opties
| |
======================================
<class 'caslib.base.AssemblyObject'>
======================================
<class 'caspper.webiface.WebInterface'>
port required: N object: N TCP port to listen on. Defaults to 80
======================================
<class 'caspper.logs.AssemblyLogger'>
capacity required: N object: N Number of log messages to hold. Defaults to 32
level required: N object: N Minimum level to be logged: DEBUG, INFO, WARNING, ERROR, CRITICAL. Defaults to WARNING
======================================
<class 'caspper.logs.MemoryLogger'>
log_heap_per_minute required: N object: N Dump heap log every minute. Defaults to False
log_level required: N object: N Log level for messages. Defaults to "INFO"
log_heap_per_hour required: N object: N Dump heap log every hour. Defaults to False
======================================
<class 'caslib.events.AssemblyEvent'>
======================================
<class 'caslib.dio.baseio.BaseIO'>
======================================
<class 'caslib.dio.baseio.DummyIO'>
======================================
<class 'caspper.controller.bock.BockOmron'>
extra_options_dm required: N object: N DM address to write extra options to, defaults to 311
read_time_dm required: N object: N DM address to read controller time from
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
write_time_dm required: N object: N DM address to write controller time to
extra_option_programs required: N object: N Translation table for options that are not programs, but program modifiers: option->modifier
happy_hour_flag_dm required: N object: N DM address of happy hour status
default_program required: N object: N Default program number the controller will wash when no program input is available
port required: N object: N TCP or UDP port the controller listens on for FINS commands
accepted_programs required: N object: N List of programs accepted from queue before optional translation
set_program_dm required: N object: N DM address to write program input to, defaults to 301
happy_hour_counters_dm required: N object: N First DM address of happy hour counters
counters_dm required: N object: N First DM address of counters
connection_mode required: N object: N Connection mode: tcp, udp or hostlink. Defaults to tcp
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
address required: Y object: N TCP or UDP address of controller
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caslib.rpcutils.RpcResource'>
resource_name required: Y object: N Name of resource in server
======================================
<class 'caspper.controller.basecontroller.AcceptTimeoutMixin'>
always_accept_after required: N object: N Automatically accept a program when it is still on the controller after this amount of seconds. Defaults to 300
======================================
<class 'caspper.controller.basecontroller.CountingController'>
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
default_program required: N object: N Default program number the controller will wash when no program input is available
accepted_programs required: N object: N List of programs accepted from queue before optional translation
happy_hour_provider required: N object: Y Time blocks object that indicates happy hour status
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caslib.dio.sockio.SockIo'>
port required: Y object: N
======================================
<class 'caspper.statuses.AssemblyStatus'>
======================================
<class 'caspper.statuses.IoInput'>
nh required: N object: N Normally high value of port. Defaults to false
port required: Y object: N Input port of IO module to fetch status from
io required: Y object: Y IO module object to fetch status from
======================================
<class 'caspper.statuses.IoOutput'>
nh required: N object: N Normally high value of port. Defaults to false
port required: Y object: N Input port of IO module to fetch status from
io required: Y object: Y IO module object to fetch status from
======================================
<class 'caspper.statuses.SettableStatus'>
value required: N object: N Value of status. Defaults to 0
======================================
<class 'caspper.statuses._IoValue'>
nh required: N object: N Normally high value of port. Defaults to false
port required: Y object: N Input port of IO module to fetch status from
io required: Y object: Y IO module object to fetch status from
======================================
<class 'caspper.functions.AssemblyFunction'>
======================================
<class 'caspper.functions.IoPulse'>
nh required: N object: N Normally high or closed setting of output
count required: N object: N Number of outputs from "port" to use for multi-port functions
port required: Y object: N Output port number on IO module starting from 0
io required: Y object: Y IO module object
time required: N object: N Pulse length in seconds. Defaults to 1.0
======================================
<class 'caspper.controller.unitronics.Unitronics'>
result_code_address required: N object: N Address for result code
old_balance_address required: N object: N Address for old balance
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
controller_programs required: N object: N List of programs the actual controller will accept
default_program required: N object: N Default program number the controller will wash when no program input is available
little_endian required: N object: N Endianess of bytes in integers
unit_id_0 required: N object: N Description of unit
port required: N object: N Port units listen on
identification_provider required: N object: Y Object providing identification and transaction handling
counters_address required: N object: N Start address of program counters
first_option_program required: N object: N First program number that is an option program
id required: Y object: N
accepted_programs required: N object: N List of programs accepted from queue before optional translation
new_balance_address required: N object: N Address for new balance
unit_0 required: Y object: N IP address of unit
main_programs required: N object: N List of main programs on controller
tokens_address required: N object: N Address of total tokens
required_tokens required: N object: N Address of required tokens
program_translations required: N object: N List of n->m translations for program numbers
count required: Y object: N Number of units
sync_time required: N object: N Whether to synchronize time of controller
card_address required: N object: N Start address of card data
card_bit required: N object: N Address of card ready bit
machine_start_bit required: N object: N Address of machine start bit
======================================
<class 'caspper.controller.monitor.BaseMonitor'>
======================================
<class 'caspper.controller.monitor.Monitor'>
max_counter_catch_up required: N object: N Maximum counter difference with controller to consider for writing transactions
controller required: Y object: Y Controller to monitor
transactions required: Y object: Y Transaction store object to push counted programs to
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caspper.controller.monitor.MonitorList'>
count required: Y object: N Number of monitors to add to list
monitor_0 required: Y object: Y Monitor object to add to list
offset required: N object: N Offset in program numbers for each consecutive controller in list
======================================
<class 'caspper.controller.monitor.MonitorMerger'>
count required: Y object: N Number of monitors to add to list
monitor_0 required: Y object: Y Monitor object to add to list
offset required: N object: N Offset in program numbers for each consecutive controller in list
======================================
<class 'caslib.ports.BasePort'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caspper.controller.hostlink.BockHostlink'>
read_time_dm required: N object: N DM address of time
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
write_time_dm required: N object: N DM write address of time
happy_hour_flag_dm required: N object: N DM address of happy hour flag
default_program required: N object: N Default program number the controller will wash when no program input is available
port required: Y object: Y Serial client port object with default settings of 9600,7,E,2
accepted_programs required: N object: N List of programs accepted from queue before optional translation
set_program_hr required: N object: N HR write address of program
decimal_dm required: N object: N Whether to interpret DMs as decimal instead of hex
happy_hour_counters_dm required: N object: N DM address of happy hour counters
counters_dm required: N object: N DM address of regular counters
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
unit required: N object: N Hostlink unit id
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caslib.ports.BufferPort'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caslib.ports.ClientPort'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caspper.controller.diocontroller.DioController'>
accept_after_pulses required: N object: N Accept car after this amount of pulses. Defaults to 1000
program_input_event required: N object: Y Event that should trigger on external program input
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
program_status required: N object: Y Status object indicating the currently active program on the controller
main_programs required: N object: N List of main programs on controller
long_car_pulses required: N object: N Number of pulses with gate closed that will trigger a "long car" warning
gate_status required: N object: Y Status object of gate signal
default_program required: N object: N Default program number the controller will wash when no program input is available
serialize_program_output required: N object: N Separately fire program output functions when more than one program should be activated on the controller
accepted_programs required: N object: N List of programs accepted from queue before optional translation
always_accept_after required: N object: N Automatically accept a program when it is still on the controller after this amount of seconds. Defaults to 300
first_option_program required: N object: N First program number that is an option program
min_accept_pulses required: N object: N Minimun amount of pulses required before accepting a car. Defaults to 1000
accept_event required: N object: Y Event object that should trigger when the controller accepts a vehicle
pulse_event required: N object: Y Event object that should trigger on converyor pulse
controller_programs required: N object: N List of programs the actual controller will accept
program_output_function required: N object: Y Function object to fire when a program should be set on the controller
id required: Y object: N
happy_hour_provider required: N object: Y Time blocks object that indicates happy hour status
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caspper.inputs.DioInput'>
input_trigger required: N object: Y Event that triggers the input status to be read and sent out as program input
input_timeout required: N object: N Period for which inputs will be collected before being sent out, in msecs. Defaults to 0
input_events required: N object: Y Input events that trigger program input
input_status required: N object: Y Input status array to monitor
======================================
<class 'caspper.controller.dummycontroller.DummyController'>
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
default_program required: N object: N Default program number the controller will wash when no program input is available
accepted_programs required: N object: N List of programs accepted from queue before optional translation
happy_hour_provider required: N object: Y Time blocks object that indicates happy hour status
accept_after required: N object: N
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caslib.ports.EchoPort'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caspper.proxies.ElliRpcProxy'>
port required: Y object: N TCP port number of proxy server
server required: Y object: Y Server object to proxy
======================================
<class 'caspper.apiserver.Identification'>
identification_provider required: N object: Y Backend that provides the identification
resource_name required: Y object: N Name of resource in server
======================================
<class 'caspper.controller.kesseltronics.KesseltronicsRbc'>
identification_provider required: N object: Y Object providing identification and transaction handling
report_key_total required: N object: N Key word for total amount in rBC report. Defaults to "Total"
listen_port required: N object: N TCP port to listen on for bay controller requests. Defaults to 5880
report_key_code required: N object: N Key word for code amount in rBC report. Defaults to "Code/Card"
unit_price required: N object: N Price of single unit in bay in cents. Defaults to 0
report_key_cash required: N object: N Key word for cash amount in rBC report. Defaults to "Cash"
address required: Y object: N TCP address of bay controller
command_timeout required: N object: N Timeout for request commands to rBC. Defaults to 30
port required: N object: N TCP port the bay controller listens on. Defaults to 20280
use_identification_messages required: N object: N Use messages passed by identification rather than built-in messages
======================================
<class 'caspper.controller.kesseltronics.KesseltronicsRtc'>
use_queue required: N object: N Use queue on controller. Defaults to false
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
default_program required: N object: N Default program number the controller will wash when no program input is available
port required: N object: N TCP port the controller listens on. Defaults to 20250
accepted_programs required: N object: N List of programs accepted from queue before optional translation
address required: Y object: N TCP address of controller
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caslib.ports.Port'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caslib.dio.rtcio.RtcIo'>
input_count required: N object: N
output_count required: N object: N
equipment_name required: Y object: N
port required: N object: N
address required: Y object: N
======================================
<class 'caslib.ports.SerialClientPort'>
parity required: N object: N Port parity: N,E,O,M,S. Defaults to N
baudrate required: N object: N Port baud rate. Defaults to 9600
databits required: N object: N Number of databits. Defaults to 8
persistent required: N object: N Whether the port should remain connected between requests
port_number required: Y object: N Name of number of communications port. Numbers start from 0. i.e. COM1 is port 0
stopbits required: N object: N Number of stopbits: 1, 1.5, 2. Defaults to 1
read_interval_timeout required: N object: N Time after last received character in milliseconds after which a transmission is considered complete. Defaults to 100
======================================
<class 'caslib.ports.SingleEndPort'>
persistent required: N object: N Whether the port should remain connected between requests
======================================
<class 'caspper.events.TimerEvent'>
trigger required: N object: Y Start timer by this event instead of initialization
interval required: N object: N Interval between event triggers in seconds. Defaults to -1 (inactive)
interval_count required: N object: N Number of intervals. Defaults to (infinite)
time required: N object: N Initial time of event trigger in seconds from start. Defaults to Interval
======================================
<class 'caspper.interfaces.totalwash.TotalWash'>
unit_id required: N object: N Unit ID to pass to TotalWash
allow_credit_customers required: N object: N Allow customers with credit accounts to do transactions. Defaults to True
port required: Y object: N Port of TotalWash XMLRPC service
address required: Y object: N IP address of TotalWash XMLRPC service
======================================
<class 'caspper.apiserver.Transaction'>
transaction_provider required: N object: Y Backend for processing the transactions
operator_id required: N object: N Integer ID of carwash company
resource_name required: Y object: N Name of resource in server
carwash_id required: N object: N Integer ID of carwash location
======================================
<class 'caspper.transactions.TransactionDatabase'>
user required: Y object: N Username of user with sufficient privileges to database
host required: N object: N Hostname of database server
password required: Y object: N Password for database user
port required: N object: N TCP port number of database server
database required: N object: N Database name
======================================
<class 'caspper.transactions.TransactionStore'>
======================================
<class 'caspper.apiserver.TwistedApiServer'>
resource_0 required: N object: Y Resource number 0
port required: Y object: N TCP port number to listen on
resources required: Y object: N Number of resources in this server
======================================
<class 'caspper.rpcserver.TwistedRpcServer'>
queue required: N object: Y Queue to pass incoming programs to
controller required: N object: Y Controller to fetch counters from
port required: Y object: N TCP port number to listen on
monitors required: N object: Y Monitor list to fetch counters from
======================================
<class 'caslib.ports.UsbClientPort'>
vendor_id required: Y object: N First part of USB id in XXXX:YYYY
persistent required: N object: N Whether the port should remain connected between requests
product_id required: Y object: N Second part of USB id in XXXX:YYYY
======================================
<class 'caspper.transactions.WashTransactionProvider'>
controller_id required: Y object: N Controller id of controller to provide transactions from
transactions required: Y object: Y Transaction backend to provide transactions from
======================================
<class 'cassis.identification.IdentificationProvider'>
======================================
<class 'caslib.ports._SerialPort'>
parity required: N object: N Port parity: N,E,O,M,S. Defaults to N
baudrate required: N object: N Port baud rate. Defaults to 9600
databits required: N object: N Number of databits. Defaults to 8
persistent required: N object: N Whether the port should remain connected between requests
port_number required: Y object: N Name of number of communications port. Numbers start from 0. i.e. COM1 is port 0
stopbits required: N object: N Number of stopbits: 1, 1.5, 2. Defaults to 1
read_interval_timeout required: N object: N Time after last received character in milliseconds after which a transmission is considered complete. Defaults to 100
======================================
<class 'caslib.ports._UsbPort'>
vendor_id required: Y object: N First part of USB id in XXXX:YYYY
persistent required: N object: N Whether the port should remain connected between requests
product_id required: Y object: N Second part of USB id in XXXX:YYYY
======================================
<class 'cassa.transactions.TransactionProvider'>
======================================
<class 'cassa.transactions.TransactionStore'>
======================================
<class 'caspper.controller.basecontroller.BaseController'>
first_option_program required: N object: N First program number that is an option program
sync_time required: N object: N Whether to synchronize time of controller
allow_multiple_main_programs required: N object: N Allow input of more than one main program. Defaults to false
main_programs required: N object: N List of main programs on controller
default_program required: N object: N Default program number the controller will wash when no program input is available
accepted_programs required: N object: N List of programs accepted from queue before optional translation
controller_programs required: N object: N List of programs the actual controller will accept
id required: Y object: N
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caspper.controller.basecontroller.ControllerMixin'>
======================================
<class 'caspper.controller.basecontroller.DeleteActiveMixin'>
======================================
<class 'caspper.controller.basecontroller.ExtraOptionsMixin'>
extra_option_programs required: N object: N Translation table for options that are not programs, but program modifiers: option->modifier
======================================
<class 'caspper.controller.basecontroller.ProgramTranslationMixin'>
program_translations required: N object: N List of n->m translations for program numbers
======================================
<class 'caspper.controller.basecontroller.PulseGateHandlingMixin'>
long_car_pulses required: N object: N Number of pulses with gate closed that will trigger a "long car" warning
accept_after_pulses required: N object: N Accept car after this amount of pulses. Defaults to 1000
min_accept_pulses required: N object: N Minimun amount of pulses required before accepting a car. Defaults to 1000
======================================
<class 'caslib.database.Connection'>
user required: Y object: N Username of user with sufficient privileges to database
host required: N object: N Hostname of database server
password required: Y object: N Password for database user
port required: N object: N TCP port number of database server
database required: N object: N Database name
|
This document was generated by Jaap Versteegh on April 7, 2015 using patched texi2html 1.82.
|