0% found this document useful (0 votes)
185 views76 pages

Part 3 04 Carwashv1.41

Uploaded by

toov
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
185 views76 pages

Part 3 04 Carwashv1.41

Uploaded by

toov
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

INTERNATIONAL FORECOURT STANDARDS FORUM

STANDARD FORECOURT PROTOCOL

PART [Link]

CAR WASH

VERSION 1.41 - December 2011


Page: 2 of 76

COPYRIGHT AND INTELLECTUAL PROPERTY RIGHTS STATEMENT

The content (content being images, text or any other medium contained within this document
which is eligible of copyright protection) is Copyright © IFSF Ltd 2011. All rights expressly
reserved.

You may print or download to a local hard disk extracts for your own business use.
Any other redistribution or reproduction of part or all of the contents in any form is
prohibited.

You may not, except with our express written permission, distribute to any third party.

Where permission to distribute is granted by IFSF, the material must be acknowledged as


IFSF copyright and the document title specified. Where third party material has been
identified, permission from the respective copyright holder must be sought.

You agree to abide by all copyright notices and restrictions attached to the content and not to
remove or alter any such notice or restriction.

USE OF COPYRIGHT MATERIAL

Subject to the following paragraph, you may design, develop and offer for sale products which
embody the functionality described in this document.

No part of the content of this document may be claimed as the Intellectual property of any
organisation other than IFSF Ltd, and you specifically agree not to claim patent rights or other
IPR protection that relates to:

the content of this document; or

any design or part thereof that embodies the content of this document whether in whole or
part.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 3 of 76

This document is written by the IFSF - Car Washing Working Group:

Name Company Telephone # Fax #


Total Oil Great Britian Limited, 33
Alan Colson 44/171/318 2550 44/171/318 2500
Cavendish Square, London W1M 0EX,
United Kingdom
Aral AG, Wittener Strasse 45, 44789
Hans Hoffmann 49/234/315 2821 49/234/315 2341
Bochum, Germany
Jürgen Wedemann Deutsche Shell AG, 22284 Hamburg 49/40/63 24 6445 49/40/63 24 6227
Überseering 35, 22297 Hamburg
Germany
California Kleindienst,
Rainer Gmeiner 49/6024/305 207 49/6024/305 159
Aschaffenburger Str. 74, D-63825
Schollkrippen, Germany
Wesumat Holding GmbH, PO Box
Borut Krulik 49/821/24 66 212 49/821/463168
320027, 86065 Augsburg, Germany
Istobal, S.A. Conde Del Serrallo, 2,
Vicente Domingo Sanz 34/96/299 79 40 34/96/299 79 91
46250 L‟Alcudia, (Valencia, Espana)
Ryko, PO Box 38, Grimes, IA 50111,
Roger Bocox rbocox@[Link]
United States
BT Electronics, LLC, 459 East Cady,
Ken Dollhopf kdollhop@[Link]
Norhville, MI 48167, United States
Robert Auer WashTec GmbH, Aschaffenburger Str. 49/6024/305 207 49/6024/305 159
74, D-63825, Schollkrippen, Germany
Jaroslav Dvorak Beta Control Limited, Cerneho 58/60, Jdvorak@[Link]
Bystrc, CZ-635, Brno, Czech Republic

John Carrier Shell Europe Oil Products, London, [Link]@[Link]


United Kingdom

For further copies and amendments to this document please contact:

IFSF Technical Services by Email at: techsupport@[Link]

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 4 of 76

Document Contents
0 RECORD OF CHANGES.................................................................................................................................. 5

1 DEFINITIONS AND ABBREVIATIONS ........................................................................................................ 8

2 CAR WASHING POINT BEHAVIOURAL MODEL.................................................................................. 11


2.1 CAR WASHING POINT STATE DIAGRAM........................................................................................................... 11
2.1.1 State INOPERATIVE [1] ....................................................................................................................... 16
2.1.2 State CLOSED [2] .................................................................................................................................. 16
2.1.3 State IDLE [3] ........................................................................................................................................ 17
2.1.4 State CUSTOMER ENTRY [4] .............................................................................................................. 18
2.1.5 State AUTHORISED [5] ........................................................................................................................ 20
2.1.6 State WASHING [6] ............................................................................................................................... 21
2.1.7 State SUSPENDED WASHING [7]....................................................................................................... 22
2.1.8 State DONE WASHING [8] ................................................................................................................... 23
2.1.9 State MAINTENANCE [9] ..................................................................................................................... 24
2.2 TRANSACTION BUFFER STATE DIAGRAM......................................................................................................... 26
2.2.1 State [1] BUFFER EMPTY .................................................................................................................... 27
2.2.2 State [2] RECORDABLE TRANSACTION ........................................................................................... 27
2.2.3 State [3] LOCKED TRANSACTION ..................................................................................................... 28
3 CAR WASH DATABASE................................................................................................................................. 29
3.1 DATABASE ADDRESS ........................................................................................................................................ 29
3.2 COMMON FIELD FORMATS ............................................................................................................................... 31
3.3 CALCULATOR DATA ......................................................................................................................................... 31
3.4 METER DATA.................................................................................................................................................... 38
3.4.1 Meter Data .............................................................................................................................................. 38
3.4.2 Extended Meter Data ............................................................................................................................. 40
3.5 PROGRAMME DATA .......................................................................................................................................... 42
3.6 OPTION DATA................................................................................................................................................... 43
3.7 PROGRAMME DATA PER WASHING MODE........................................................................................................ 44
3.8 OPTION DATA PER WASHING MODE ................................................................................................................ 45
3.9 CAR WASHING POINT DATA ............................................................................................................................ 46
3.10 WASHING TRANSACTION DATA ....................................................................................................................... 56
3.11 ERROR CODE DATA.......................................................................................................................................... 61
3.12 DATA DOWNLOAD............................................................................................................................................ 63
4 EXAMPLE CONFIGURATION DIAGRAMS ............................................................................................. 64

5 IMPLEMENTATION GUIDELINES & RECOMMENDATIONS ........................................................... 66


5.1 HANDLING AFTER A DEVICE MASTER RESET/COLD START OR INITIAL START-UP .......................................... 66
5.2 HANDLING AFTER A RESET OR POWER OFF...................................................................................................... 66
5.3 METER UPDATE ................................................................................................................................................ 66
5.4 CAR WASH BEHAVIOUR AFTER AN ACKNOWLEDGEMENT OF A COMMAND...................................................... 66
5.5 CAR WASH OPERATION MODES ....................................................................................................................... 67
5.5.1 Automatic Start, Vehicle Positioned First [Mode 1A] ......................................................................... 67
5.5.2 Manual Start, Vehicle Positioned First [Mode 1B] ............................................................................. 68
5.5.3 Automatic Start, Code Entry First [Mode 2A] ..................................................................................... 68
5.5.4 Manual Start, Code Entry First [Mode 2B] ......................................................................................... 68
5.6 CW OPERATION MODES STATE DIAGRAMS AND TABLES ............................................................................... 69
5.6.1 State Diagrams ....................................................................................................................................... 69
5.6.2 State Table .............................................................................................................................................. 71
5.7 HANDLING OF ASSIGNMENT CLEARING AND UNLOCKING ............................................................................... 73
5.7.1 Handling of Assign_Contr_Id and Config_Lock ................................................................................. 73
5.7.2 Handling of TransactionBufferControlID ............................................................................................ 74
5.7.3 Handling after power down ................................................................................................................... 74
6 WASH ELEMENTS TABLE ........................................................................................................................... 75
December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 5 of 76

0 RECORD OF CHANGES

Date Version Modifications


number

Jan 2003 1.20 Chapter 3


3.1 Updated Database Address table to reflect changes made in section 3.4.
3.2 Contents removed.
3.3 Added Data Ids 7, 8 and 9.
3.4 Re-written to clarify Meter Data .
3.9 ReleaseControlID changed to read only.
3.12 Contents removed.
March 2003 1.21 Error Identifier ranges were inconsistent. Set to 40H.
DataID 53, Calculator_Serial_No name changed to Car Wash Computer Serial
Number. Change also made in Definitions and Abbreviations to Car Wash
Computer.
DataID 7, NumberOfProgrammeMeters range changed to 1 - 255.
DataID 4, CWPManufacturerErrorCode range changed to 1 - 65535.
New Minor Error added (28H).
May 2003 1.30 Extension to functionality to cover Car Wash operation initiated from a START
button after vehicle is positioned in washing machine.
Record of changes prior to January 2000 removed, no longer of any interest.
Available in IFSF archive folder on [Link].
State diagram and state table amended, including cross checking all the events and
states in the section 2.2 through 2.9.
Optional data attribute 13, CodeVehicleOrder added
All occurrences of Element mask changed to Bin64.
Bit mapping clarified. In all IFSF specifications bit 0 = programme 1, option 1, etc.
Attributes 25-28, 37, 38 in CWP database amended.
New optional command START added to enable remote CD initiated start of the Car
Wash. This command can be generated either internally of externally via a CD.
July 2003 1.31 Record of changes 1.10 removed. See IFSF archive for further change details.
Max_Auth_Time and Max_Wash_Time in section 2.1.5 and 2.1.6 are clarified that
these are internal parameters within the car wash and are not set remotely by the CD.
SUSPEND TIMEOUT event removed from 2.1.7 it does not exist.
IFSF Jet Washes aren‟t coin operated; text removed from 2.1.8
Section 2.2. State CLEARED TRANSACTION is called BUFER EMPTY on the
drawing. The state name is made consistent with the State diagram.
Section 5.6 added with State Diagram and Table for each Modes of Operation.
The State Drawing and State Table both clearly show that event (Command)
"Release" is possible in state 3 AND state 4. It is only permitted in state 3 if the CW
is operating in Mode 2 (i.e. Mode 2A or 2B). It is only permitted in state 4 if the CW
is operating in Mode 1. This potential confusion is clarified by inserting section 5.6.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 6 of 76

November 1.32 Amendments following IFSF Car Wash Work Group Meeting on 8 September 2003.
2003 Published as Final Draft.
- Door Control clarified in 2.1.4 State CUSTOMER ENTRY.
- DataID 12 in calculator database, value 2 added to indicate the CWP is started via a
“start” command generated from a CD.
- Identification DataID‟s (50-61) names changed to be consistent with other IFSF
specifications and IXRetail data dictionary XML tag naming convention.
- Section 5.5 contains example of CED device where a code is used to provide wash
programme authorisation. This is generalised to “authorisation display” to make it
clear the car wash interface is independent of the payment and control mechanisms.
- Section 5.6 State tables and state diagrams enhanced to show all states and values
of StandAloneAuthorisation and CodeVehicleOrder.
- Wherever possible DataID‟s change to be compliant with IXRetail data dictionary
XML tag naming convention (in most cases this means removing any abbreviations
and making camel case labels).
September 1.33 Section 3.10 changed the state column, so the state now refers to the Transaction
2005 Buffer State Diagram and not the Point State Diagram.
Section 3.11 – Error Code Data
Clarification of number of error codes to be returned.
Typo in section 3.9 Data id 40 and section 3.10 Data Id 8, CurrentWashingMode
changed to CurrentWashingCode.

March 1.34 Chapter 3.9 Car Wash Point Data


2006 Alarm structure added.
Additional text added to Data_Id 100 (CWPStatusMessage) to clarify when the
unsolicited message should be sent.
Chapter 3.10 Washing Transaction Data
Additional text added to Data_Id 100 (TransactionBufferStatusMessage) to clarify
when the unsolicited message should be sent.
Chapter 3.10 Error Code Data
Further clarification on which errors to send back and support.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 7 of 76

March 1.40 2.2 Transaction Buffer State Diagram


2008
Change to Transaction Buffer State Diagram.
Many suppliers have implemented this state diagram. Backward compatibility should
not be affected, because POS‟s‟ should be able to handle receiving one or two
unsolicited messages. If a CD is off-line, when the first of two unsolicited messages
is sent, it knows nothing about the first unsolicited messages.
Changes to 2.2.1, 2.2.2 and 2.2.3 so they are in line with state diagram.
2.2.3 State Locked Transaction.
Following comment added:
“No known use of this functionality as of 29/1/08. Should not be used in future
implementations”.
Chapter 3.5 Programme Data
MS_ACK changed from NAK 2 to NAK 6 (incorrect value).
3.9 Car Wash Point Data
Changes to description of Assign_Contr_Id. See section 5.7.
Config_Lock added.
3.10 Washing Transaction Data
Changes to description of TransactionBufferControlID. See section 5.7.
Changes to description of Unlock_Transaction. See section 5.7.
Clarification of Multi-database read of Washing transaction database. (See Chapter
3.10).
Chapter 3.10 changed the state column for the commands Clear, Lock and Unlock.
Update in version 1.33 not done correctly. Added comments to description.
5.7 Handling of Assignment Clearing and Unlocking section added.

December 1.41 Copyright and IPR Statement added.


2011

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 8 of 76

1 DEFINITIONS AND ABBREVIATIONS

Definition Abbreviation Description

Controller Device CD The CD is any device that is capable of controlling other


forecourt devices (i.e. Car wash’s, Tank Level Gauges,
Unattended Payment Terminals, Car Wash, etc.)
Car Wash CW The complete car-washing unit consisting of one or more
Washing Points. The CW may be a rollover system, conveyor
system or jet wash.
Car Wash Computer CWC The Car Wash Computer is the car wash‟s electronic controller
for process control, communication and calculation.
Car Washing Point CWP The item of forecourt equipment that is capable of washing a
single car. In a rollover system there typically would be one car
washing point. In a conveyor system a car washing point takes on
a logical definition where a system can be washing multiple cars
at a time; the maximum number of cars the system can
simultaneously wash is the number of car washing points. In a jet
wash the car washing points would be the same as the number of
wash bays.
Roll-over System RO A Rollover car wash system consists of one or two car washing
points. This is typically a step-by-step machine where the
forecourt customers‟ vehicle remains stationary and the RO
machine moves around the vehicle (see Figure 1.1)
Conveyor System CNV A Conveyor car wash system consists of one or more car washing
points. This is typically a sequential machine where the forecourt
customers‟ vehicle is transported through the stationary washing
equipment by a conveyor. In this system each vehicle in the
system is a car washing point. The car washing points do not
represent physical fixed locations but a moving location on the
conveyor (see Figure 1.2)
Jet Wash System JW A Jet wash system can consist of one or more car washing points
functioning in parallel. A typical jet wash may have three car
washing points each physically representing a wash bay with a jet
wash wand (see Figure 1.3)
Water Meter WM The Water meter is the device that measures water consumption.
Electricity Meter EM The Electricity meter is the device that measures electricity
consumption.
Wash Element WE A wash element is a specific service that the car wash machine
can provide. These elements are combined into programs.
The list of defined wash elements is found in the Section 6 of
this document.
By defining the standard wash elements a forecourt marketer can
be sure that the programs and options that they offer to their
forecourt customers are consistent across different manufactures
car washing machines.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 9 of 76

Programme PG The programme is the car wash service that is sold to the
forecourt customer. It consists of a composition of washing
elements. The washing elements are packaged into a program.
An example of the use of programmes would be:
A “Base Programme” may consist of a base wash, rinse and a
single dryer pass.
A “Gold Programme” may consist of all the items in the “Base
Programme” plus an under-vehicle flush and hot wax.
Options OP An option is the car wash service that is sold a-la-carte. It
consists of one or more washing elements but is always added to
a wash programme.
An example:
A customer may purchase the “Base Programme” but may be
able to add the “Sealer Wax” option to the programme. This
allows for a forecourt to determine the marketing strategy most
useful to them.
Washing Mode - The car washing programmes and/or options could be dispensed
in different modes (cash, credit, with fill-up, etc.). This is used
in allowing different types of modes to have different pricing
structures.
An example would be:
A customer who fills up the vehicle with gasoline may get a
different price for a Programme than a customer who simply
enters the forecourt to obtain a car wash.
Stand Alone Mode - The Car Wash has a link to a Controller Device. The CWP
control (release, clear transaction) is done locally at the car wash.
Offline Mode - A Controller Device does not control the Car Wash. There is no
link to a CD.
Online Mode - A Controller Device controls the Car Wash.
CD Off-line Mode - CD is off-line when:
The CD is not in the Communication Layers‟ Recipient Address
Table
The CD is in the Communication Layers‟ Recipient Address
Table, but no heartbeat has been received in the expected time
frame (3 x Heatbeat_Interval)..
CD On-line Mode - A CD is on-line when:
The CD is entered in the Communication Layers‟ Recipient
Address Table.
A heartbeat has been received from the CD within the expected
time frame (3 x Heatbeat_Interval).
Transaction Buffer - The finished washing transaction is stored in a transaction buffer.
Recordable Transaction - A Recordable Transaction is a finished washing transaction that
must be cleared by a Controller Device.
It provides information that allows the CD to track the car wash
sales to insure correct auditing.
Zero Transaction - A Zero Transaction is a finished washing transaction where the
car wash provided no services and the amount has the value of 0.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 10 of 76

Aborted Wash - An aborted wash is a wash that has not been completed. For
some reason the wash has been terminated or an error has
occurred.
Major Error - A major error will always lead to the inoperative state.
Minor Error - A minor error is an error that is recorded and does not lead to a
state change.
Logical Node Address LNA The LNA is the address that identifies a device on the IFSF
network. The LNA consists of two bytes (Subnet & Node
Address).
Please reference the IFSF document "PART II,
COMMUNICATION SPECIFICATION", for more details.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 11 of 76

2 CAR WASHING POINT BEHAVIOURAL MODEL


This chapter describes in detail each state, event and required actions of a car washing point.
In the following description STATES are shown in bold text and "EVENTS" are given in
double quotes. [Control flows] and [Data flows] are contained in square brackets.
The table below is used. Its content has the following definition.

STATE DESCRIPTION

STATE IDENTIFIER A short description of the state.


NAME

EVENT DESCRIPTION

"EVENT-NAME" A short description of the event. Used to describe to which new state the washing
point has moved to, once all the actions are completed.
--> Action: Input action description in terms of control and data flows
between the CD and the CWP.
Action -->: Output action description in terms of control and data flows
between the CWP and the CD.

The data elements that are sent by the control and data flows are described in
chapter 3 "Car Wash Database".

Any change in the "Car Washing Point State" or the "Transaction Buffer State” is
sent as an unsolicited message from the CWP to the Controller Device.

The CD recipient addresses for the unsolicited messages are contained in the
"Recipient Address Table" in the Communication Service Database (for further
information see chapter 4.5 in the document "Part II, Communication
Specification").

2.1 Car Washing Point State Diagram


The car washing point state diagram describes in detail the behaviour of the car
washing point in a car wash.

States are represented on Figure 2.1.1 (CAR WASHING POINT STATE


DIAGRAM) and Figure 2.1.2 (CAR WASHING POINT STATE DIAGRAM,
ERROR CONDITIONS) by rectangles. The states are numbered sequentially.

The arrows between the states are labelled with the event name or names that causes
the CWP to change from one state to another. The arrowhead indicates the direction
of state transfer.

In Figure 2.1.3 all states and events are combined in a matrix.


Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 12 of 76

Figure 2.1.1 OVERALL CAR WASHING POINT STATE DIAGRAM

Some car washes have a door which must be first opened. Prior to version 1.30 the
application protocol did not support the case when the door of the car wash bay is
closed when the customer arrives.

The state diagram incorporates four modes of operation of CW Equipment. Detailed


processing sequence for each mode is given in section 5.5 and indiviudal state
diagrams and state tables for each mode are given in section 5.6. The four modes
depend on whether the vehicle is postioned first or not, and whether the Start is
automatic or requires a separate manual start (via a Start button connected to the
CWCor a “start” command from a CD). This is shown in the matrix below:
December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 13 of 76

StandAloneAuthorisation =0 StandAloneAuthorisation
=1
Mode 1A Mode 1B
CodeVehicleOrder=0 Automatic start Manual start
Vehicle positioned first Vehicle Bositioned first
Mode 2A Mode 2B
CodeVehicleOrder=1 Automatic start Manual start
Authorisation first Authorisation first

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 14 of 76

Figure 2.1.2 CAR WASHING POINT STATE DIAGRAM, ERROR CONDITIONS


Note: When the emergency stop button is pressed then a minor error is generated.
The transaction must not be processed. For a conveyor,the wash resumes when the
mergency conditions end.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 15 of 76

Figure 2.1.3Overall Car Washing Point State Table

1 2 3 4 5 6 7 8 9
State Inoperative Closed Idle Customer Authorised Washing Suspended Done Maint-
Entry Washing Washing enance
Event

Operative 2

Unable 1

Open 3

Close 2

Customer_Present 4

No_Customer 3

Start 5 6

Ready 3

Exit_Maint_Mode 1

Enter_Maint_Mode 9 9

Release 4 5

Self_Auth 5

Auth_Time_Out 4

Block 4

Resume 6

Suspend 7

Washing_Error 7

Finished 8

Wash_Time_Out 8

Terminate 8 8 8 8 3

Minor_Error 1 2 3 4 5 6 7 8 9

Major_Error 1 1 1 1 1 1 1 1 1

Error_Cleared 6

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 16 of 76

2.1.1 State INOPERATIVE [1]

STATE DESCRIPTION

INOPERATIVE The CWP is in the INOPERATIVE state when it is not possible to open the
CWP. The reason for this is that essential configuration data is missing or an
error has been detected.
The CWP will also be in the INOPERATIVE state during the changing of
essential data (e.g. software download).
This is the state that the CWP initially enters upon resetting or power-up.
Note: A recordable transaction may exist. This would happen if a major error
happened in a state where there was an open transaction.
EVENT DESCRIPTION

"OPERATIVE" This event is implemented when the CWP has been configured with the
essential data to operate and no errors have been detected, the CWP goes to
CLOSED.
Action -->: The CWP state change is sent as an unsolicited data array
[CWPStatusMessage].
"ENTER_MAINT_MODE" This event is implemented when it is necessary to perform maintenance of the
system. The CWP goes to MAINTENANCE.
--> Action: The CWP receives the [Enter_Maint_Mode] command.
Action -->: The CWP state change is sent as an unsolicited data array
[CWPStatusMessage].
“MAJOR_ERROR” If a major error event occurs the CWP stays in the INOPERATIVE state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].
“MINOR_ERROR” If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].

2.1.2 State CLOSED [2]

STATE DESCRIPTION

CLOSED The CWP is completely configured and no major error has been detected.
The CWP is waiting to be opened by a CD or manually by the car wash operator.
This state may be used to temporarily shut down the CWP.
The CWP may be taken to MAINTENANCE from this state. This will allow a
maintenance person to perform maintenance without requiring the system to go
INOPERATIVE. This is important if the maintenance person needs the CWP to
be able to communicate to the CD during maintenance.
The CWP must respond to all communications from controller devices.
Note: Recordable transactions may exist.
EVENT DESCRIPTION

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 17 of 76

"UNABLE" During configuration, changing essential parameter or a data download the CWP
is not able to work. During this time the CWP's state changes to INOPER-
ATIVE.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"ENTER_MAINT_MODE" This event is implemented when it is necessary to perform maintenance of the
system. The CWP goes to MAINTENANCE.
--> Action: The CWP receives the [Enter_Maint_Mode] command.
Action -->: The CWP state change is sent as an unsolicited data array
[CWPStatusMessage].
"OPEN" The CWP will become available to the customer. An open command moves the
CWP into the IDLE state. The open command could be sent by the CD or
optionally manually done at the car wash by the operator (configured by the
contents of the data element AuthorisationStateMode).
--> Action: The CWP receives the [Open] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves into the INOPERATIVE state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage]. The CWP state change is send as
an unsolicited data array [CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].

2.1.3 State IDLE [3]

STATE DESCRIPTION

IDLE The CWP is opened and available to the customer.


On entry to the IDLE state any outstanding transactions have been stored in the
transaction buffer and all washing parameters must have been reset to their
default values.
EVENT DESCRIPTION

"CUSTOMER_PRESENT" A car wash in Mode 1 generates this event internally when a vehicle (customer)
is present at the CWP. A rollover machine determines this by a vehicle being
moved into the washing bay. This event is generated internally by the Car Wash
when both the internal checks and inter-locks of the car wash AND the vehicle
is present and positioned correctly.
Customer_Present can only be accepted if at least one transaction buffer is
available. The number of transaction buffers is configured by the contents of the
data element NumberOfTransactionBufferNotRecorded.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 18 of 76

"RELEASE" This event occurs when the car wash is in Mode 2 and a customer has entered an
authorisation code that has been validated and accepted into the wash machine.
The door is closed and the customer enters his code to open the door and
authorise the subsequent wash transaction.
Release can only be accepted if at least one transaction buffer is available. The
number of transaction buffers is configured by the contents of the data element
NumberOfTransactionBufferNotRecorded.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"CLOSE" The CWP will be closed down and the CWP moves into the CLOSED state.
The CWP is no longer available to the customer.
The close command could be sent by the CD or optionally manually done at the
car wash by the operator (configured by the contents of the data element
AuthorisationStateMode).
This may be used to temporarily shut down the CWP when business is slack.
--> Action: The CWP receives a [Close] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves into the INOPERATIVE state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].

2.1.4 State CUSTOMER ENTRY [4]

STATE DESCRIPTION

CUSTOMER ENTRY The CWP is interfacing with the customer. This may be a single action process or
may be a repeating process involving multiple steps to allow the customer to select
a Programme. This can be:
The system is prompting the customer to enter a code number.
The system is allowing the customer to select options to the wash Programme.
The system is accepting money for upgraded services.
The customer may be identifying that they have a car wash account.
In this state the CWP may require authorisation for upgrading or insuring that a
Programme is not restricted.
The customer may not exit to WASHING without a valid Programme.
NOTE: On entry into CUSTOMER_ENTRY a transaction is initially opened.
EVENT DESCRIPTION

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 19 of 76

"RELEASE" This event occurs when the car wash is in Mode 1 and a customer has entered an
authorisation code that has been validated and accepted into the wash machine. Note
the vehicle is already positioned correctly and all internal safety checks of the CW
completed.
The CWP receives a release command from an external CD.
--> Action: The CWP receives a [Release] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"START" This event occurs when the car wash is in Mode 2A. The wash has been released
and the customer manoeuvres his vehicle into the bay. This event is generated
internally by the Car Wash when the internal checks and inter-locks of the car wash
AND the vehicle is present and positioned correctly.
In mode 2A this internal event starts the CWP directly. This also may be used in
off-line mode to allow the CWP to continue to function with the CD not on-line.
The CWP moves to state WASHING via state AUTHORISED
--> Action: The CWP internally generates the [Start] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"SELF_AUTH" This event occurs when the car wash is in Mode 2B and a customer has entered an
“authorisation” that has been validated and accepted into the wash machine. When
the door is open (or not present) and the vehicle is already positioned correctly, and
all internal safety checks of the CW completed, the car wash programme is self-
authorised. If a door is present and it is closed, then the CW opens the door and
waits until the vehicle is correctly positioned. In either case the CWP moves to state
AUTHORISED. In the former case the CWP remains in state CUSTOMER
ENTRY for a very short period of time. The CWP is then held in AUTHORISED
state until a separate START button is pressed (or a “start” command from a CD is
received) to start the wash once the customer leaves the vehicle and moves to a
secure location.
This command may also be used in off-line mode to allow the CWP to continue to
function whilst the CD is not on-line.
The CWP internally generates a [self_auth] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"TERMINATE" The CWP is forced to the DONE WASHING state. An example of a terminate
may be the CD instructing the CWP to terminate because there is a problem on the
site.
--> Action: The CWP receives a [Terminate] command.
Action -->: The status change is send as an unsolicited data array
[CWPStatusMessage].

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 20 of 76

"NO_CUSTOMER" The customer that was using the CWP is no longer there. This is an internal event to
the CWP.
An example would be a customer that pulls into the CWP, enters a code and then
realises that the vehicle‟s window will not go up. The customer must exit the wash
and the CWP recognises the NO_CUSTOMER. Before triggering the event the
current state must send the transaction to the buffer.
If a transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves into the INOPERATIVE the.
If a transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].

2.1.5 State AUTHORISED [5]

STATE DESCRIPTION

AUTHORISED The CWP has a vehicle and has been released by the CD or has self-authorised.
This state waits until a customer has pressed a start key. This car wash operating
mode 2B.
The customer has entered a wash code in state CUSTOMER ENTRY, the CD
checks the code and sends that the customer is to obtain wash programme 1. The
CD then sends a release command. The CWP performs a self-authorise,
independently of the CD when the vehicle is correctly positioned and the car wash
is ready. The CWP goes to AUTHORISED.
The CWP then performs all required equipment checks and waits for the customer
to press a Start button. When the button is pressed the start event is performed and
the state goes to WASHING.
NOTE: Coming into this state the timer for the maximum authorisation time is
started if one exists inside the car wash device.

EVENT DESCRIPTION

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 21 of 76

"START" The customer starts the car wash and the CWP moves into state WASHING. The
CWP will move to WASHING after all internal CWP conditions are correct (e.g.
correct car position, equipment checks, active programme, etc.).
The start event is completely controlled by the CWP.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"BLOCK” A CD sends a block command to block the CWP from starting the wash.
This would be typical of a system where the customer is authorised for programme
#1 but inserts money into a bank note acceptor. The bank note acceptor may block
the CWP until the money is inserted and then it will update the CWP database with
a new authorised amount and then release the CWP again.
--> Action: The CWP receives the [Release] command.
Action -->: The CWP sends the unsolicited data array [CWPStatusMessage].
"AUTH_TIME_OUT" If a Car wash has implemented a maximum authorisation time this event occurs
when Max_Auth_Time expires.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
Action -->: The CWP sends an unsolicited data array
[CWPErrorTypeMessage] with minor error „Auth_Time_Out‟.
"TERMINATE" The CWP is forced to move to the DONE WASHING state.
--> Action: The CWP receives the [Terminate] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves into the INOPERATIVE state.
If a transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].

2.1.6 State WASHING [6]

STATE DESCRIPTION

WASHING This state is when the customer‟s vehicle is being washed. This is activated only
after a valid Programme and the customer has entered programme options.
Coming into this state the timer for the maximum washing time [Max_Wash_Time]
is started if the car wash supports this feature.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 22 of 76

EVENT DESCRIPTION

"SUSPEND" This CWP receives a suspend command and the CWP moves to the SUSPENDED
WASHING state.
--> Action: The CWP receives the [Suspend] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"WASHING_ERROR" The CWP internally generates a washing error. This would typically be an event that
is important to flag as an error but that the system believes can be fixed quickly
without causing the customer to do anything.
An example may be that the washing machine safety strip was bumped. The CWP
could go into SUSPENDED WASHING; the system could stop moving and
correct the problem then go back to WASHING.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"WASH_TIME_OUT" The CWP‟s state timer has expired. The CWP then moves to the DONE
WASHING state. This event is generated internally within the CWP itself.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"FINISHED" This event occurs when a CWP has successfully completed washing the customer‟s
vehicle.
Before exiting the open transaction should be marked as successful. This is done by
updating the transaction data element AuthorisationStateMode.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"TERMINATE" The CWP is forced to move to the DONE WASHING state.
--> Action: The CWP receives the [Terminate] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves into the INOPERATIVE state.
If a transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].

2.1.7 State SUSPENDED WASHING [7]

STATE DESCRIPTION
December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 23 of 76

SUSPENDED The washing of the vehicle has been suspended by the CWP. This state is used for
WASHING short-term suspension until a situation can be cleared.
An example may be that the washing machine safety strip was bumped while in the
WASHING state. The CWP could go into SUSPENDED WASHING, the system
could stop moving and correct the problem then go back to WASHING

EVENT DESCRIPTION

"RESUME" This event can be created by the CWP being able to go back into the WASHING
state and a CD sending a resume command.
When the CWP is resumed the same transaction continues from where it was
paused, the state changes to the WASHING state.
In the case of stand-alone mode devices, an internal event, independent of the CD,
can initiate a RESUME event. This allows for immediate resumption under the
local authority of an attendant without the need for them to return to the kiosk.
--> Action: The CWP receives the [RESUME] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"TERMINATE" The CWP is forced to move to the DONE WASHING state.
--> Action: The CWP receives the [Terminate] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"ERROR_CLEARED" This event can be internally created by the CWP being able to go back into the
WASHING state after it has cleared the WASHING_ERROR..
When the CWP is resumed the same transaction continues from where it was
paused, the state changes to the WASHING state.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP moves to the INOPERATIVE state. If a
transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].

2.1.8 State DONE WASHING [8]

STATE DESCRIPTION

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 24 of 76

DONE WASHING This state is used to handle the processing required at the completion of the washing
sequence. Typically this state is entered after a vehicle has been successfully
washed and the transaction must be sent to the transaction buffers.
The state also is used to handle transactions associated with terminate commands
received with a transaction being open.
EVENT DESCRIPTION

"READY" This event is implemented when the CWP has successfully marked a transaction as
recordable and is now ready to allow another customer to begin the wash process.
This also is implemented after the CWP has made sure that all internal equipment
checks are satisfied.
Prior to this event all meters must be updated. The transaction is stored in the
transaction buffer and the CWP moves to the IDLE state.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP state change is send as an unsolicited data array [CWPStatusMessage].
"TERMINATE" The CWP receives a terminate command for whatever reason and the CWP moves
into the IDLE state.
The transaction is stored in the transaction buffer and the CWP moves to the IDLE
state.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
--> Action: The CWP receives the [Terminate] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"SUSPEND" The CWP automatically enters the SUSPENDED WASHING state following
DONE WASHING, to allow the user to insert a further coin or token to obtain extra
wash time. If further coins/tokens are inserted then the WASHING state is entered,
otherwise the DONE WASHING state is returned to after a timeout period.
These actions are handled internally and do not require intervention from the CD.
"MAJOR-ERROR" If a major error event occurs the CWP must store the transaction in the transaction
buffer (it must include the error code that caused the transaction to be terminated).
The CWP moves to the INOPERATIVE state.
If a transaction is in process the CWP must store it to the transaction buffer before
exiting.
If a "zero transaction" is required (dictated by the contents of the data element
ZeroTransactionMode") the transaction with a zero value must be stored in the
transaction buffer.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data [CWPErrorTypeMessage].

2.1.9 State MAINTENANCE [9]


December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 25 of 76

STATE DESCRIPTION

MAINTENANCE This state is used by the CWP to perform maintenance to the system. Typically
this is used by the equipment suppliers service technicians to perform service on
the machine.
Note that MAINTENANCE mode is a mode in which the car wash either cannot
be used, for physical reasons, or in which it is unsafe for it to be used. One
solution to this problem is to have a facility for a local request to enter
MAINTENANCE mode. The CD would then put the car wash into the CLOSED
or INOPERATIVE states at the first opportunity and then indicate the state
locally on the car wash. The CD must not change the state of the car wash to
INOPERATIVE (the only state possible after MAINTENANCE) until the local
request for the maintenance mode has been removed (perhaps by the use of a
physical key).
EVENT DESCRIPTION

"EXIT_MAINT_MODE" When the technician is done servicing the machine the CD will send the
exit_maint_mode command. The CWP will then go into state INOPERATIVE.
--> Action: The CWP receives the [EXIT_MAINT_MODE] command.
Action -->: The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MAJOR-ERROR" If a major error event occurs the CWP must store the transaction in the
transaction buffer (it must include the error code). The CWP moves to the
INOPERATIVE state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].
The CWP state change is send as an unsolicited data array
[CWPStatusMessage].
"MINOR-ERROR" If a minor error event occurs the CWP does not change the state.
Action -->: The CWP sends the unsolicited data
[CWPErrorTypeMessage].

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 26 of 76

2.2 Transaction Buffer State Diagram


Every washing point has a defined number of transaction buffer (configured by the data
element NumberOfTransactionBufferNotRecorded) which specifies the number of non
recorded transactions (i.e. not cleared by the Controller Device). As long as the Controller
Device has not cleared the washing transaction the CWP is responsible for the transaction
and the washing transaction data must be stored at the car wash‟s CWP.
Transaction data are still available after a washing transaction has been cleared by a CD
(Transaction Buffer State = 1) the. The number of historic transactions is configured by the
data element NumberOfHistoricTransactions. Only the latest transaction data are available
(first in, first out).
Every transaction buffer follows the state machine of Figure 2.2.1.

Figure 4 TRANSACTION BUFFER


STATE DIAGRAM
New
Transaction
BUFFER EMPTY
[1]

New
CLEAR Recordable
Transaction
CLEAR
RECORDABLE
TRANSACTION [2]

New
LOCK UNLOCK Locked
Transaction
LOCKED [3]
TRANSACTION

Figure 2.2.1 TRANSACTION BUFFER STATE DIAGRAM

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 27 of 76

2.2.1 State [1] BUFFER EMPTY

STATE DESCRIPTION

BUFFER EMPTY This particular transaction buffer is available for the next washing transaction.
The CD has access to the previous transaction data (configured by the contents
of the data element NumberOfHistoricTransactions).
EVENT DESCRIPTION

"NEW Transactions can only be stored as “New Transaction” when the car wash is
TRANSACTION" operating in Standalone mode.
The customer has finished the washing. The transaction must be stored in a
cleared transaction buffer. The transaction buffer with the oldest transaction
data is used to store the new recordable washing.
The transaction buffer state moves to state [1] BUFFER EMPTY.
Action -->: The CWP sends the transaction buffer state change as an
unsolicited data array [TransactionBufferStatusMessage].

2.2.2 State [2] RECORDABLE TRANSACTION

STATE DESCRIPTION

RECORDABLE The customer has finished the washing and in the particular transaction buffer is
TRANSACTION now a recordable transaction.
EVENT DESCRIPTION
"NEW RECORDABLE The customer has finished the washing. The transaction must be stored in a
TRANSACTION" cleared transaction buffer. The transaction buffer with the oldest transaction
data is used to store the new recordable washing.
The transaction buffer state moves to state [2] RECORDABLE
TRANSACTION.
Action -->: The CWP sends the transaction buffer state change as an
unsolicited data array [TransactionBufferStatusMessage].
"CLEAR" The CWP receives a clear command indicating that the transaction buffer is
available for a new washing and that the transaction details were read. The
transaction buffer state moves to state [1] BUFFER EMPTY.
If the CWP runs in "stand alone" mode the transaction data is totalised and the
buffer is cleared automatically. The transaction buffer state moves to the BUFFER
EMPTY state.
--> Action: The CWP receives a [Clear_Transaction] command.
Action -->: The transaction buffer state change is send as an unsolicited data
array [TransactionBufferStatusMessage].

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 28 of 76

"LOCK" The CWP receives a command to reserve the recordable transaction in this
particular transaction buffer. Only the “locking” CD can clear the washing
transaction.
The transaction buffer state moves to the LOCKED TRANSACTION state.
--> Action: The CWP receives the data [TransactionBufferControlID].
Action -->: The transaction buffer state change is send as an unsolicited data
array [TransactionBufferStatusMessage].

2.2.3 State [3] LOCKED TRANSACTION

STATE DESCRIPTION
LOCKED TRANSAC- A CD reserves the recordable transaction. No other CD can clear this transaction
TION data (see exception in the “UNLOCK” description).

EVENT DESCRIPTION
"NEW LOCKED The customer has finished the washing. The transaction must be stored in a
TRANSACTION" cleared transaction buffer. The transaction buffer with the oldest transaction
data is used to store the new recordable washing.
The transaction buffer state moves to state [3] LOCKED TRANSACTION.
Action -->: The CWP sends the transaction buffer state change as an
unsolicited data array [TransactionBufferStatusMessage].
"CLEAR" The CWP receives a clear command indicating that the transaction buffer is
available for a new washing. The transaction buffer state moves to state [1]
BUFFER EMPTY.
--> Action: The CWP receives a [Clear_Transaction] command.
Action -->: The transaction buffer state change is send as an unsolicited data
array [TransactionBufferStatusMessage].
"UNLOCK" If the CD has locked the wrong recordable transaction it is possible to unlock it. The
CD that locked it can only unlock a transaction.
No known use of the following functionality as of 29/1/08. Should not be used in
future implementations.
“A special exception exists, where the CD that locked the transaction is not able to
unlock it or clear it due to a fatal error. In this case any CD that generates a Unlock
command with the Originator Subnet set to 0 and the Originator Node set to 0 may
unlock the transaction”.
The transaction buffer state moves back to the RECORDABLE TRANSACTION
state.
--> Action: The CWP receives the data [TransactionBufferControlID].
Action -->: The transaction buffer state change is send as an unsolicited data
array [TransactionBufferStatusMessage].

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 29 of 76

3 CAR WASH DATABASE


This part of the document details the standard data organisation for a car wash.
Every data element in the car wash database is described in this chapter. The access to the
data element is done by a database address "DB_Ad" and a data identifier "DataID".
The data elements are presented in the following form:

DATABASE
DB_Ad =

DataI Data Element Name Field Type Read/Write M/O


D in State
Description

The DataID is a unique identifier for a data element in a database. The database is defined by
the database address "DB_Ad" (for details see document "Part II, Communication
Specification).
In the second column the name of the data element is defined. In this column is also the
description of the data element.
The field types in column three are described in IFSF Engineering Bulletin No. 11.
The "Read/Write in State" column indicates if the related data can be Read and/or Written by
any device and in which CWP state (states are indicated between brackets).
The M/O column (Mandatory/Optional) indicates if the data element must be supported /
implemented by the CWP‟s and any CD controlling Washing Points. "M" indicates that the
data element must be supported; "O" indicates that the data element is optional.
Note: All mandatory data elements must be supported/implemented for a device to be IFSF
compatible.

3.1 Database Address


Every data element in a device is stored in a database. In some implementation it may be real
database or only a software organisation (object or tasks), for instance if a separate processor
manages each washing point.
These database levels are addressed by the Database Address (DB_Ad) using a variable
number of bytes. The number of address bytes to specify a database is 1 to 8.
(For more details are in the document "PART II, COMMUNICATION SPECIFICATION").

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 30 of 76

Database Address DB_Ad

BYTE BYTE BYTE BYTE BYTE


1 2 3 4 5, 6, 7and 8
C_DAT 01H
Calculator Data
CWP_ID 21H-2FH
Washing Point Identifier
(1-15)
CWP_ID 21H-2FH TR_DAT 21H Tr_Seq_Nb 0001-9999
Washing Point Identifier Transaction Data Transaction Sequence Number
(1-15) (BCD4 format)
CWP_ID 21H-2FH ER_DAT 41H ER_ID 01H-40H
Washing Point Identifier Error Data Error Identifier
(1-15) (1-64)
PG_ID 41H-4FH
Programme Identifier
(1-15)
OP_ID 51H-5FH
Option Identifier
(1-15)
PG_DAT 61H-6FH WM_ID 11H-18H
Programme Data Washing Mode
Identifier
(1-8)
OP_DAT 71H-7FH WM_ID 11H-18H
Option Data Washing Mode
Identifier
(1-8)
PG_ID 81H-8FH
Programme Meters
(1-31)
PG_ID 91H-9FH
Option Meters
(1-31)
PG_ID 80H M_ID 01H-FFH
Extended Programme Meter Identifier
Meters (1-255)
OP_ID 90H M_ID 01H-FFH
Extended Option Meters Meter Identifier
(1-255)

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 31 of 76

3.2 Common Field Formats


IFSF application Field Formats are given in IFSF Engineering Bulletin No. 11.

3.3 Calculator Data


This data allows the CD to configure the calculator in the car wash. Access to the calculator
database is done by database address C_DAT (Calculator Data).
All car-washing points have to be in the indicated state because the updated data are
common to the different car washing points.

CALCULATOR DATABASE
DB_Ad = C_DAT (01H)

DataID Data Element Name Field Type Read/Write M/O


Description (Values) in State

CONFIGURATION DATA
2 NumberOfProgrammes bin8 R(1-9) M
(02H) Number of wash programmes defined. (1-15) W(1-2)
0 = not configured
n = number of programmes
Please note that CW’s that do not permit the
NumberOfProgrammes to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the NumberOfProgrammes to the value of
products that is hard coded in their program.
When a master reset/cold start occurs on the CW it must
reset this DataID to its default value.
3 NumberOfWashingModes bin8 R(1-9) M
(03H) Number of washing modes defined (Default =1). (1-8) W(1-2)
0 = not configured
n = number of washing modes
Please note that CW’s that do not permit the
NumberOfWashingModes to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the NumberOfWashingModes to the value of
washing modes that is hard coded in their program.
When a master reset/cold start occurs on the CW it must
reset this DataID to its default value.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 32 of 76

5 NumberOfCWPs bin8 R(1-9) M


(05H) Number of car washing points controlled by the CWC (1-15) W(1-2)
(default=1).
0 = not configured
n = number of car washing points
Please note that CW’s that do not permit the
NumberOfCWPs to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the NumberOfCWPs to the value of washing
points that is hard coded in their program.
When a master reset/cold start occurs on the CW it must
reset this DataID to its default value.
6 CountryCode bcd4 R(1-9) M
(06H) The digit 9 in place of the country code field followed by W(1-2)
the three digits ISO code indicates the use of an ISO code.
Please note that car washes that do not permit the
CountryCode to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the CountryCode to the hardcoded country code
value.
When a master reset/cold start occurs on the CW it must
set this DataID to its default value.
7 NumberOfProgrammeMeters bin8 R(1-9) M
(07H) Specifies the number of Programme meters supported by the (1 - 255) W(1-2)
car wash.
This is the maximum value for PG_ID or M_ID.
8 NumberOfOptionMeters bin8 R(1-9) M
(08H) Specifies the number of Option meters supported by the car (0 - 255) W(1-2)
wash.
This is the maximum value for OP_ID or M_ID.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 33 of 76

9 ExtendedMeterFormat bin8 R(1-9) O


(09H) Used to specify, if the extended meter database format is (0-3) W(1-2)
used.
If attribute not supported use database addresses PG_ID
(81H-8FH) and OP_ID (91H-9FH).
Value of:
0 = use database addresses PG_ID (81H-8FH) and OP_ID
(91H-9FH).
1 = use extended Programme meter format PG_ID (80H) +
M_ID (01H-FFH).
2 = use extended Option meter format OP_ID (90H) +
M_ID (01H-FFH).
3 = use extended Programme meter format PG_ID (80H) +
M_ID (01H-FFH) and Option meter format
OP_ID (90H) + M_ID (01H-FFH).
If the ExtendedMeterFormat is “0” Extended Meters are
supported.
If ExtendedMeterFormat is not present Extended Meters
are not supported.
11 AuthorisationStateMode bin16 R(1-9) M
(0BH) Specifies whether the CWP’s must get external (0-1) W(1-2)
authorisation from a CD
0 = CWP can self-authorise every customer entry (i.e.
there is no attached CD).
1 = CWP is controlled (i.e. authorised) by an external
CD.
12 StandAloneAuthorisation bin8 R(1-9) M
(0CH) Specifies how the car wash shall authorise in 'stand alone' (0-2) W(1-2)
mode. For a detailed description of how this is used in
combination with CodeVehicleOrder see Implementation
Guidelines 5.5.
0 = transaction automatically starts when vehicle is in
position
1 = transaction starts by a manual CWP release by a
separate key controlled internally by CW
2 = transaction starts by a “start” command from a CD.
This is usually a separate “START” button.
13 CodeVehicleOrder bin8 R(1-9) O
(0DH) Specifies the sequence of release and customer present (0-1) W(1-2)
events in default mode of operation. For a detailed
description of how this is used in combination with
StandAloneAuthorisation see Implementation Guidelines
5.5
0 = position vehicle before entering code
1 = enter code before positioning vehicle (e.g. to open a
door or authorise a car wash point.)

LIMIT DATA

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 34 of 76

24 MiniminGuardTime bin8 R(1-9) O


(18H) Specifies the minimum time in seconds between the end of (0-255) W(1-2)
one transaction and the beginning of the next transaction.
This can be used to ensure correct spacing between
customers. Note that Min Guard Time is not used in jet
washes.
0 = no limitation
Please note that car washes that do not permit this DataID
to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the DataID to the hard coded value.
When a master reset/cold start occurs on the car wash
device the car wash should reset this DataID to its default
value.

USAGE DATA
31 TotalUsage LONG_VO R(1-9) M
(1F) Non-resettable total of all of the washes for all CWP’s. LUME
This is should equal the totals for all programmes, for all
car washing points.
NOTE: This total should include all aborted washes.
32 AbortedUsage LONG_VO R(1-9) O
(20H) Non-resettable total of all aborted of the washes for all LUME
CWP’s.
33 MaintenanceUsage LONG_VO R(1-9) O
(21H) Non-resettable total of all maintenance washes for all LUME
CWP’s.
34 ElectricalUsage LONG_VO R(1-9) O
(22H) Non-resettable flow total of electrical usage of the car LUME
wash.
NOTE: The unit is kWh and the increment is 0.1kWh.
35 WaterUsage LONG_VO R(1-9) O
(23H) Non-resettable flow total of water usage of the car wash. LUME
3
NOTE: The increment is to be 0.01 m

DISPLAY AND ROUNDING CONFIGURATION

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 35 of 76

42 DigitsUnitPrice bcd2 R(1-9) O


(2AH) W(1-2)
Configure displayed layout of the Unit Price field.
LNIB = unit price display field length
HNIB = decimal point position left justified
Please note that car washes that do not permit this DataID
to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the DataID to the hard coded value.
When a master reset/cold start occurs on the car wash
device the car wash should reset this DataID to its default
value.
43 UnitPriceMultiplicationFactor bin8 R(1-9) O
(2BH) Specifies the multiplication factor (ten to the power of x W(1-2)
x
= 10 ) between the displayed Unit Price value and the
Unit_Price field.
The range of the field is: +/-, 0-9.
bit8: = 0 -> positive
= 1 -> negative
bit4-1: = 0 - 9
Please note that car washes that do not permit this DataID
to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the DataID to the hardcoded value.
When a master reset/coldstart occurs on the car wash
device the car wash should reset this DataID to its default
value.
46 PriceSetNumber bcd4 R(1-9) O
(2EH) This DataID is used as a reference number for the unit (0-9999) W(1-9)
price details currently configured in the car wash.
It allows the control devices to interrogate the car wash
and establish if a new set of prices have been downloaded
by another control device. This feature is useful when
operating in an environment where more than one control
device is connected to the network and only one of them is
responsible for downloading unit prices.
Please note that car washes that do not permit this DataID
to be changed remotely should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).
- Must set the DataID to the hard coded value.
When a master reset/cold start occurs on the car wash
device the car wash should reset this DataID to its default
value.

IDENTIFICATION DATA

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 36 of 76

50 ManufacturerID asc3 R(1-9) M


(32H) To allow the CD to interrogate the manufacturer identity.
This is assigned by the IFSF when a manufacturer registers
as a Registered Interested Party (RIP).
51 ManufacturerModel asc3 R(1-9) M
(33H) To allow the CD to interrogate the car wash model.
52 ManufacturerType asc3 R(1-9) M
(34H) To allow the CD to interrogate the calculator type.
53 SerialNumber asc12 R(1-9) M
(35H) To allow the CD to interrogate the Car Wash's computer
serial number.
If the computer board is not uniquely identified, the car Wash
Serial number, as recorded on the manufacturer plate, should
be used.
54 ApplicationSoftwareVersion asc12 R(1-9) M
(36H) To allow the CD to interrogate the version number of the
application software. The version number is free format
according to the manufacturer.
58 ProtocolVersion bcd12 R(1-9) M
(3AH) To allow the CD to interrogate the IFSF version number of
the protocol being used by the car wash. The format is
'9999999999.99'. The decimal point is implied in the data
field.
59 SoftwareChangeDate DATE R(1-9) M
(3BH) To allow the CD to interrogate the date of the installation of W(1-2)
the currently installed software.
60 SoftwareChangePersonalNumber bcd14 R(1-9) M
(3CH) To allow the CD to interrogate the personal id of the person W(1-2)
who installed the current software. The field format is
oooopppppppppp. Where:
oooo = 4 digit Organisation number
pppppppppp = 10 digits personal number.
The 4-digit organisation number is assigned by the IFSF and
each organisation is responsible for maintaining their own
register of 10 digit personal numbers.
61 SoftwareChecksum asc4 R(1-9) M
(3DH) To allow the CD to interrogate the checksum of the software. W(1-2)
The field format is HHHH. Where:
HHHH consists of four hexadecimal digits (ASCII 0-9,A-F)

CUSTOMER ENTRY CONTROL DATA

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 37 of 76

70 Illumination bin8 R(1-9) M


(46H) To allow the CD to switch the car wash's illumination: (0-1) W(1-9)
0 = light off
1 = light on
Please note that when the Calculator does not have the ability
to control a light in the Car wash then this DataID must still
be supported at the read & write level (Obviously, the
Calculator will not be able to actually control a light).
71 LCDBacklightSwitch bin8 R(1-9) O
(47H) To allow to switch the customer entry LCD back light: (0-1) W(1-9)
0 = light off
1 = light on
72 DisplayContrast bin8 R(1-9) O
(48H) To allow to switch the contrast of the customer entry LCD (0-255) W(1-9)
display:
0 = normal intensity
255 = high intensity
73 LoudspeakerSwitch bin8 R(1-9) O
(49H) To allow the washing point's loudspeaker to be switch on (0-1) W(1-9)
and off.
0 = off, 1 = on

DOOR CONTROL DATA


80 EntranceDoorControl bin8 R(1-9) O
(50H) To allow the CD to control the mode of the entrance door (0-1) W(1-9)
control.
0 = Door is under car wash control
1 = The door should be open always
81 ExitDoorControl bin8 R(1-9) O
(51H) To allow the CD to control the mode of the exit door control. (0-1) W(1-9)
0 = Door is under car wash control
1 = The door should be open always

COLD WEATHER CONTROL DATA


90 AntiFreezeControl bin8 R(1-9) O
(5AH) To allow the CD to instruct the car wash to use freeze (0-1) W(1-9)
control.
0 = Freeze control is under car wash control
1 = Tell the car wash to use freeze control
91 In-groundHeat bin8 R(1-9) O
(5BH) To allow the CD to control the mode of the in-ground (0-1) W(1-9)
heating.
0 = Pad heat is under car wash control
1 = Tell the car wash to turn on the in-ground heating

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 38 of 76

92 BlowOut bin8 R(1-9) O


(5CH) To allow the CD to instruct the car wash to perform a line (0-1) W(1-9)
blow out.
0 = Blow out is under car wash control
1 = Tell the car wash to blow out the lines

BAY CLEANING CONTROL DATA


100 BayCleaningControl bin8 R(1-9) O
(64H) To allow the CD to instruct the car wash to turn on/off bay (0-1) W(1-9)
cleaning.
0 = Bay cleaning control is under car wash control
1 = Tell the car wash to turn on bay cleaning

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

3.4 Meter Data


3.4.1 Meter Data
This data allows the CD to configure a meter in the calculator. A meter is used to monitor the
usage of programmes or options.
The access to the meter data is done by the database address PG_ID and OP_ID.
The PG_ID = 80H is used to ask for all programme meters.
The OP_ID = 90H is used to ask for all option meters.
Please note that to allow car washes to operate in „stand alone‟ mode, the car wash must
have default settings for some of the DataID‟s contained in this database. i.e. the car wash
must configure these DataID‟s itself after a master reset/cold start.
The meters are predefined as 81H to 8FH for PG_ID 1 to 15 and meters 91H to 9FH for
OP_ID 1 to 15.
METER DATABASE
Programme Meters DB_Ad = PG_ID (81H – 8FH)
Option Meters DB_Ad = OP_ID (91H – 9FH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
1 MeterType bin8 R(1-9) M
(01H) Specifies the meter type e.g. (0-16)
0 = Cash
December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 39 of 76

METER DATABASE
Programme Meters DB_Ad = PG_ID (81H – 8FH)
Option Meters DB_Ad = OP_ID (91H – 9FH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)
1 = Timer
2 = Counter
3-16 = Unspecified
2 MeterConfigured bin8 R(1-9) O
(02H) Specifies whether the meter is included when a request to (0-1) W(1-9)
read all meters is received:
0 = do not include
1 = do include (default)
Note: If an implementation does not support this DataID then
the meter should be included.
3 MeterName asc32 R(1-9) M
(03H) Specifies the Name of the meter W(1-2)
e.g. Coin A
Programme 1
Total Water Usage
4 MeterSize bin8 R(1-9) M
(04H) Specifies the number of significant BCD digits in the (1-12)
MeterTotal DataID.
5 MeterUnits asc8 R(1-9) M
(05H) Specifies the units of the meter
e.g. £, DM, FF, $, minutes, seconds, litres
TOTAL
20 MeterTotal LONG_AM R(1-9) M
(14H) Non-resetable total for a meter. The totals are permanently OUNT
updated during the washing transaction. If the meter type is a
counter then the value is an integer with pre-filled zeros and
decimal point at position 12 (OCH).
NOTE: Meters are updated by each CWP at the time of
sending a transaction to the buffer, i.e. immediately the wash
starts.
Please note that car washes can not allow this DataID to
be changed remotely and must:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 40 of 76

Note.
MeterConfigured is used to determine whether this meter is included when a request to read
all meters is received. When a meter is configured this must be set to 1 (include).
Examples:
Assuming a Car Wash only supports 3 Programme meters (81H, 82H & 83H) and for meters
81H and 83H the MeterConfigured attribute is set to “1” meaning they are to be included
when all meters are read. The remainder are set to “0”.
(a) To read the MeterType for Programme meter 1 (81H), the following must be sent
0A01 0201 00 01 0003 01 81 01
the reply is
0201 0A01 00 21 0005 01 81 01 01 00
(b) To read the MeterType for Programme meter 2 (82H), the following must be sent
0A01 0201 00 01 0003 01 82 01
the reply is
0201 0A01 00 21 0005 01 82 01 01 00
(c) To read the MeterType for all Programme meters, the following must be sent
0A01 0201 00 01 0003 01 80 01
the reply is
0201 0A01 00 21 0005 01 81 01 01 00
0201 0A01 00 21 0005 01 83 01 01 00
0201 0A01 00 E1 0003 01 80 00
The same applies for Option meters.

3.4.2 Extended Meter Data


The Extended Meter Data format has been introduced to allow up to 255 programme meters
and 255 option meters to be supported. To maintain backward compatibility this has been
achieved by introducing a new database addressing structure.
This data allows the CD to configure an extended meter in the calculator. An extended meter
is used to monitor the usage of programmes or options.
The access to the extended meter data is done by the database address PG_ID (programme
identifier) + M_ID (meter identifier) and OP_ID (option identifier) + M_ID (meter
identifier).
The PG_ID = (80H) + M_ID = (00H) is used to ask for all extended programme meters.
The OP_ID = (90H) + M_ID = (00H) is used to ask for all extended option meters.
Please note that to allow car washes to operate in „stand alone‟ mode, the car wash must
have default settings for some of the DataID‟s contained in this database. i.e. the car wash
must configure these DataID‟s itself after a master reset/cold start.
The extended meters are predefined as PG_ID (80H) + M_ID (01H - FFH) for the 255
programme meters and OP_ID (90H) + M_ID (01H - FFH) for the 255 option meters.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 41 of 76

When the number of meters is in the range of 16 to 255, all the meter data must be put in the
extended meter database. If the number of meters is in the range 1 to 15 either the meter or
extended meter database format can be used.

EXTENDED METER DATABASE


Programme Meters DB_Ad = PG_ID (80H) + M_ID (01H-FFH)
Option Meters DB_Ad = OP_ID (90H) + M_ID (01H-FFH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
1 MeterType bin8 R(1-9) M
(01H) (0-16)
Specifies the meter type e.g.
0 = Cash
1 = Timer
2 = Counter
2 MeterConfigured bin8 R(1-9) O
(02H) (0-1) W(1-9)
Specifies whether the meter is included when a request to
read all meters is received:
0 = do not include
1 = do include (default)
Note: If an implementation does not support this DataID then
the meter should be included.
3 MeterName asc32 R(1-9) M
(03H) W(1-2)
Specifies the Name of the meter
e.g. Coin A
Programme 1
Total Water Usage
4 MeterSize bin8 R(1-9) M
(04H) (1-12)
Specifies the number of significant BCD digits in the
MeterTotal DataID.
5 MeterUnits asc8 R(1-9) M
(05H)
Specifies the units of the meter
e.g. £, DM, FF, $, minutes, seconds, litres

TOTAL
20 MeterTotal LONG_AM R(1-9) M
(14H) OUNT
Non-resetable total for a meter. The totals are permanently
updated during the washing transaction.
NOTE: Meters are updated by each CWP at the time of

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 42 of 76

EXTENDED METER DATABASE


Programme Meters DB_Ad = PG_ID (80H) + M_ID (01H-FFH)
Option Meters DB_Ad = OP_ID (90H) + M_ID (01H-FFH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)
sending a transaction to the buffer.
Please note that car washes that must not permit this
DataID to be changed remotely and should:
- Reject any write attempts with a Data_ACK value of 2
(Read Only/Not Writable).

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

Note.
MeterConfigured is used to determine whether this meter is included when a request to read
all meters is received. When a meter is configured this must be set to 1 (include).
Examples:
(a) To read the MeterType for extended Programme meter 1 (80H + 01H), the following
must be sent
0A01 0201 00 01 0004 02 80 01 01
the reply is
0201 0A01 00 21 0006 02 80 01 01 01 00
(b) To read the MeterType for all extended Programme meters, the following must be sent
0A01 0201 00 01 0004 02 80 00 01
the reply is
0201 0A01 00 21 0006 02 80 01 01 01 00
0201 0A01 00 21 0006 02 80 02 01 01 00
etc to
0201 0A01 00 21 0006 02 80 FF 01 01 00
0201 0A01 00 E1 0004 02 80 00 00
The same applies for Option meters.

3.5 Programme Data


This data allows the CD to specify the programme data in the calculator. Each Calculator can
have up to 15 different programmes defined.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 43 of 76

The access to this data is defined by the PG_ID address (programme identifier). This address
key is used for internal links between databases (programme, meters).
The PG_ID = 40H is used to ask for all programmes.
Any attempt to operate on a DB_Ad which has not been implemented should be rejected
with a MS_ACK set to NAK 6 (Message refused, unknown database address).

PROGRAMME DATABASE
DB_Ad = PG_ID (41H-4FH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
2 ProgrammeElements bin64 R(1-9) M
(02H) W(1-2)
The ProgrammeElements is assign by the CD during the
system configuration and is used to configure the washing
elements that are to be included for this programme. This
is a 64-bit string applied as a bit mask to enable or disable
various programme elements.
NOTE: Refer to section 6 for a table of all defined
washing elements.
3 ProgrammeDescription asc16 R(1-9) O
(03H) W(1-2)
Specifies the description for the programme.

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

3.6 Option Data


This data allows the CD to specify the Option data in the calculator. Each Calculator can
have up to 15 different options defined.
The access to this data is defined by the OP_ID address (option identifier). This address key
is used for internal links between databases (option, meters).
The OP_ID = 50H is used to ask for all options.

OPTION DATABASE
DB_Ad = OP_ID (51H-5FH)

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 44 of 76

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
2 OptionElements bin64 R(1-9) O
(02H) W(1-2)
The OptionElements is assign by the CD during the system
configuration and is used to configure the wash elements
that are to be included for this option.
NOTE: Refer to section 6 for a table of all defined
washing elements.
3 OptionDescription asc16 R(1-9) O
(03H) W(1-2)
Specifies the product description for the option.

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

3.7 Programme Data per Washing Mode


This data allows the CD to configure the programme parameters for each washing mode.
The access to the programme washing mode data is done by the database address PG_DAT
(programme data) + WM_ID (washing mode identifier).
The WM_ID = 10H is used to ask for all washing modes at a programme.
Please note that to allow car washes to operate in „stand alone‟ mode, the car wash must
have default settings for some of the DataID‟s contained in this database. i.e. the car wash
must configure these DataID‟s itself after a master reset/cold start.

PROGRAMME PER WASHING MODE DATABASE


DB_Ad = PG_DAT (61H-6FH) + WM_ID (11H-18H)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
1 WashingModeName asc8 R(1-9) O
(01H) W(1-2)
Specifies the Washing mode name. This eight-character
string can be used to give information to the car wash
user.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 45 of 76

2 ProgrammePrice UNIT_PRI R(1-9) O


(02H) CE W(1-9)
Specifies the programme/washing mode's Unit Price.
Please note that a write can occur to this DataID in any
state. However, the new value will only become active
when the CWP next goes into states 1 to 3.

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

3.8 Option Data per Washing Mode


This data allows the CD to configure the option parameters for each washing mode.
The access to the option washing mode data is done by the database address OP_DAT
(option data) + WM_ID (washing mode identifier).
The WM_ID = 10H is used to ask for all washing modes at an option.
Please note that to allow car washes to operate in „stand alone‟ mode, the car wash must
have default settings for some of the DataID‟s contained in this database. i.e. the car wash
must configure these DataID‟s itself after a master reset/cold start.

OPTION PER WASHING MODE DATABASE


DB_Ad = OP_DAT (71H-7FH) + WM_ID (11H-18H)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
1 WashingModeName asc8 R(1-9) O
(01H) W(1-2)
Specifies the Washing mode name.
2 OptionPrice UNIT_PRI R(1-9) O
(02H) CE W(1-9)
Specifies the option/washing mode's Unit Price.
Please note that a write can occur to this DataID in any
state. However, the new value will only become active
when the CWP next goes into states 1 to 3.

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 46 of 76

3.9 Car Washing Point Data


This data allows the CD to configure and control a CWP in the car wash.
The access to the washing point data is done by the database address CWP_ID (car washing
point identification).
The CWP_ID = 20H is used to ask for all washing points.
Please note that to allow car wash‟s to operate in „stand alone‟ mode, the car wash must have
default settings for some of the DataID‟s contained in this database. i.e. the car wash must
configure these DataID‟s itself after a master reset/cold start.

CAR WASHING POINT DATABASE


DB_Ad = CWP_ID (21H-2FH)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

CONFIGURATION
1 CarWashPointName asc8 R(1-9) O
(01H) W(1-2)
Allows associating a name or number to the Washing
Point.
2 NumberOfTransactionBufferNotRecorded bin8 R(1-9) M
(02H) (1-4) W(1-2)
Specifies the number of non recorded transactions (not
cleared by the CD) that may be stored by each CWP.
The acceptable range is 1 to 4.
0 = not configured
If a write action occurs to this DataID with a value
greater than can be supported by the car wash, the car
wash should reject the message with a Data_ACK value
of 1 (Invalid value (too big/small)).
3 NumberOfHistoricTransactions bin8 R(1-9) M
(03H) (0-7) W(1-2)
Specifies the number of cleared transactions that can be
stored in the CWP. Always the latest transactions are
available (first in, first out).
0 = no historic transaction data stored
If a write action occurs to this DataID with a value
greater than can be supported by the car wash, the car
wash should reject the message with a Data_ACK value
of 1 (Invalid value (too big/small)).

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 47 of 76

7 DefaultWashingMode bin8 R(1-9) M


(07H) (1-8) W(1-2)
The WM for the next washing transaction can be
changed by the data element WashingMode (DataID 33).
The WashingMode is set to the DefaultWashingMode
after the current transaction is stored in the transaction
buffer. The acceptable range for the WM is 1 to 8.
0 = not configured

CONTROL DATA
20 State bin8 R(1-9) M
(14H) (1-9)
Used to indicate the state of the CWP. Please see the
Car Washing Point State Diagram for details of the
individual states (chapter 2.1 of this document).
An unsolicited message (DataID 100) is generated by the
CWP for each change in the CWP state. When a CD
tries to change the state of a CWP when a state change
is not allowed then the CWP should reject the attempt
with MS_ACK 05 and DATA_ACK 03 (command
refused in this state).
21 CWPActiveElements bin64 R(6-7) O
(15H)
Used to indicate element(s) of the CWP are active.
This data field would be updated by the CWP as it is
progressing through the wash elements.
22 AssignControlID bin16 R(1-9) M
(16H) W(2-4)
Used to indicate if and to whom the CWP has been
assigned. Only an authorisation coming from this
controller is accepted.
A Logical Node Address (LNA) is used for the
AssignControlID. The LNA is specified by 2 bytes (S =
Subnet, N = Node). For details see document "Part II,
Communication Specification".
0,0 = not assigned,
X,Y = Controller Device that assigned the CWP (X =
Subnet, Y = Node),
255,255 = CWP running in stand alone mode.
See section 5.7 Handling of Assignment Clearing and
Unlocking.
An unsolicited message (DataID 100) is generated by the
CWP for each change in the CWP’s assignment.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 48 of 76

23 Config_Lock Bin 16 R(1,2) O


(17H) Used to lock the communications of a Car Wash to one W(1,2)
controlling device while the Car Wash is being
configured.
X,Y = Controller Device that locked the CWP
(X = Subnet, Y = Node)
If the controlling device fails after being locked, a time out
is applied.

See section 5.7 Handling of Assignment Clearing and


Unlocking.

Config_Lock is at CWP level, therefore all CWP‟s‟must be


in Inoperative or Closed before the comms is locked.

MS_ACK 9 (configuration lock error) is sent in


responses to other devices attempting to communicate
with the dispenser during configuration.
24 ZeroTransactionMode bin8 R(1-9) M
(18H) (0-1) W(2-4)
Specifies if a transaction with a zero value (the
displayed volume and the displayed amount are zero)
must be stored in the transaction buffer.
0 = zero transaction must not be stored
1 = zero transaction must be stored
The ZeroTransactionMode is set to 0 (transaction must
not be stored) after the current washing transaction is
stored in the transaction buffer.
25 EnabledProgrammeMask bin16 R(1-9) M
(19H) W(2-4)
To allow the CD to authorise one or many
programme(s):
This is useful if the CD needs to keep certain
programmes from being run at different times of the
day.
An example: A customer has a Programme 4 token that
uses the Air Dryer element, but after 6pm the air dryer
can not be used because of noise. The CD can send
down this mask at 6pm to block Programme 4.
bit 0 = Program1Flag [Programme 1] (PG_ID = 1)
bit 1 = Program2Flag [Programme 2] (PG_ID = 2)

bit 14 = Program15Flag [Programme 15] (PG_ID=15)


bit 15 = not used.
1 = Programme authorized
0 = Programme not authorized

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 49 of 76

26 EnabledOptionMask bin16 R(1-9) O


(1AH) W(2-4)
To allow the CD to authorise one or many option(s):
This is useful if the CD needs to keep certain options
from being run at different times of the day.
bit 0 = Option1Flag [Option 1] (OP_ID = 1)
bit 1 = Option2Flag [Option 2] (OP_ID = 2)

bit 14 = Option15Flag [Option 15] (OP_ID = 15)


bit 15 = not used
1 = Option authorized
0 = Option not authorized
27 AuthorisedProgrammeMask bin16 R(1-9) M
(1BH) W(2-4)
To allow the CD to authorise one or many
programme(s):
This is used by the CD to authorise wash programme(s).
The CD will set this data element prior to giving the
CWP the RELEASED command.
While the CWP is in the state AUTHORISED this data
element may be rewritten by the CD with updated
programme information. This is used in a “Buy-up”
system where the customer can purchase a wash
programme and then change to a different programme.
bit 0 = Program1Flag [Programme 1] (PG_ID = 1)
bit 1 = Program2Flag [Programme 2] (PG_ID = 2)

bit 14 = Program15Flag [Programme 15] (PG_ID =


15)
bit 15 = not used.
1 = Programme authorized
0 = Programme not authorized
NOTE: This field is set to zero by the CWP when the
current washing transaction is stored in the transaction
buffer.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 50 of 76

28 AuthorisedOptionMask bin16 R(1-9) O


(1CH) W(2-4)
To allow the CD to authorise one or many option(s):
This is used by the CD to authorise wash option(s). The
CD will set this data element prior to giving the CWP
the RELEASED command.
While the CWP is in the state AUTHORISED this data
element may be rewritten by the CD with updated option
information. This is used in a “Buy-up” system where
the customer can purchase a wash option and then
change to a different option.
bit 0 = Option1Flag [Option 1] (OP_ID = 1)
bit 1 = Option2Flag [Option 2] (OP_ID = 2)

bit 14 = Option15Flag [Option 15] (OP_ID = 15)


bit 15 = not used.
1 = Option authorized
0 = Option not authorized
NOTE: This field is set to zero by the CWP when the
current washing transaction is stored in the transaction
buffer.
35 AuthorisedAmountPrepay Amount R(1-9) O
(23H) W(2-4)
To allow the CD to authorise a specific money amount
for the pending new transaction.
NOTE: The AuthorisedAmountPrepay is set to zero by
the CWP when the current washing transaction is stored
in the transaction buffer.
32 ReleaseKey bin8 R(1-9) M
(20H) (0-255) W(3-4)
Allows the controller device to assign a key or token
when a transaction is started to link a card transaction
with cost.
This key/token is used by the controller to link an
authorisation command with the resulting transaction.
33 WashingMode bin8 R(1-9) M
(21H) (1-8) W(3-4)
Washing mode (WM_ID) of the car washing point. It
cannot be modified when a transaction is started. The
acceptable range is 1 to 8. After the current washing
transaction is stored in the transaction buffer the WM is
set to the default WM (specified in DataID 7).
41 TransactionSequenceNumber bcd4 R(1-9) M
(29H) (1-9999) W(1-2)
After storing the current transaction in the transaction
buffer, a new sequence number is created by
incrementing the previous one.

CURRENT TRANSACTION DATA

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 51 of 76

29 CurrentTransactionSequenceNumber bcd4 R(4-8) M


(1DH) (1-9999)
Indicate the sequence number for the running washing
transaction. By authorising the washing, the sequence
number is copied from TransactionSequenceNumber
(DataID 41).
Its value is reset to zero after storing the transaction in
the transaction buffer.
30 ReleaseControlID bin16 R(1-9) M
(1EH)
Specifies which Controller Device has authorised the
CWP for the running transaction.
A Logical Node Address (LNA) is used for the
ReleaseControlID. The LNA is specified by 2 bytes (S
= Subnet, N = Node). For details see document "Part
II, Communication Specification".
0,0 = Controller Device is not specified,
X,Y = Controller Device that released the CWP (X =
Subnet, Y = Node),
255,255 = CWP running in stand alone mode.
Its value is reset to zero after storing the current
washing transaction in the transaction buffer or when the
CWP state changes to Idle.
31 SuspendControlID bin16 R(7) M
(1FH) W(6)
Specifies which Controller Device has suspended the
running transaction.
A Logical Node Address (LNA) is used for the
SuspendControlID. The LNA is specified by 2 bytes (S
= Subnet, N = Node). For details see document "Part
II, Communication Specification".
0,0 = Controller Device not specified,
X,Y = Controller Device that suspended the CWP (X
= Subnet, Y = Node).
Its value is reset to zero after resuming the suspended
transaction or after storing the current washing
transaction in the transaction buffer.
34 CurrentAmount Amount R(4-8) O
(22H)
Indicates the money amount of the current washing
transaction. This is optional since some car washes don't
display cash, but time.
Its value is reset to zero after storing the transaction in
the transaction buffer.
Reject any write attempts with a Data_ACK value of 2
(Read only/Not Writable)

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 52 of 76

37 CurrentProgrammeMask bin16 R(4-8) M


(25H)
Indicates the programme of the current washing
transaction
This is a bit mask that is made up of the options set.
Bit 0 is for Programme 1
0 -> Programme is not used
1 -> Programme is used
Its value is reset to zero after storing the transaction in
the transaction buffer.
38 CurrentOptionsMask bin16 R(4-8) O
(26H)
Indicates the options of the current washing transaction.
This is a mask made up of the options set. The option is
for the current transaction if it’s corresponding bit is set.
Bit 0 is for Option 1
0 -> Option is not used
1 -> Option is used
Its value is reset to zero after storing the transaction in
the transaction buffer.
39 CurrentTransactionErrorCode bin8 R(4-8) M
(27H) (1-63)
Indicates the error status of the transaction.
If the error status = 0 then no error has occurred.
If <> 0 then an error has occurred.
Dependent on the error type the transaction could be
treated accordingly. (Please see the CWPErrorType in
the Error Code Database).
Its value is reset to zero after storing the transaction in
the transaction buffer.
40 CurrentWashingCode Asc8 R(4-8) O
(28H)
Indicates the wash code for the current transaction
Its value is reset to zero after storing the transaction in
the transaction buffer.
42 CurrentWashSeconds bcd4 R(4-8) M
(2AH) (0-999)
Indicates the current total seconds that the vehicle has
been in the wash.
Its value is reset to zero after storing the transaction in
the transaction buffer.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 53 of 76

43 CurrentEntrySeconds bcd4 R(4-8) O


(2BH) (0-999)
Indicates the current total seconds that the vehicle has
been in customer entry.
Its value is reset to zero after storing the transaction in
the transaction buffer.

CWP CONTROL
60 Open CMD W(2) M
(3CH)
To open a closed CWP.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command . This action must occur even if the state has
not changed as a result of the command.
Please note that an acknowledgement to this command
implies that the CWP State has changed to the open state
(see Chapter 5).
61 Close CMD W(3) M
(3DH)
To close a CWP.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
62 Release CMD W(3 or 4) M
(3EH)
Authorise or pre-authorise to start a transaction. The
releasing CD identifier is stored separately from this
command in the ReleaseControlID(Data ID 30).
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
Mode 1A & 1B W(4)
Mode 2A, 2B1 & 2B2 W(3)
63 Terminate CMD W(4-8) M
(3FH)
Terminate the running transaction.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 54 of 76

64 Suspend CMD W(6) M


(40H)
Temporarily stops the running wash cycle.
The suspending CD identifier is stored separately from
this command in the SuspendControlID (DataID 31).
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
65 Resume CMD W(7) M
(41H)
Resumes the running wash cycle.
Only the CD that has suspended the transaction (the
controller device identification is stored in DataID 31
SuspendControlID) can restart the wash.
If the SuspendControlID is not specified (= 0,0) the
suspended washing transaction can be resumed by every
CD.
The resuming CD must confirm that it is allowed to
resume (by checking it is the SuspendControlID).
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
66 Block CMD W(5) M
(42H)
This command is used by a CD to block the CWP from
going into the WASHING state. This could be used by a
CD that detects that the customer is performing a new
entry (e.g. has inserted a bank note) and needs to return
the CWP to CUSTOMER ENTRY.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
67 Enter_Maint_Mode CMD W(1,2) O
(43H)
Enter the MAINTENANCE state.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
68 Exit_Maint_Mode CMD W(9) O
(44H)
Exit the MAINTENANCE state.
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 55 of 76

69 Start CMD W(4,5) O


(45H) or
Enter the WASHING state. W(5)
Please note that an Unsolicited CWPStatusMessage
(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.
Mode 1A, 1B, 2B1 & 2B2 W(5)
Mode 2A W(4,5)

80 CWP_Alarm Bin64 R(*) O


(50H)
Used to indicate the alarm state of the CWP.
The Error Code Data was designed to keep a count of the
number of times an error has occurred. There is also a need
to know the current state of minor errors e.g. Paper Out,
has a printer paper or not. It is possible for a controller
device to keep a record of the current state of a minor error
by monitoring all the Unsolicited messages, but if a
controller device is „Cold Started‟ all historical information
is lost. Hence the need for an Alarm data element in a
device. When read this data element gives the current state
of alarms. Alarms are warnings.
Alarms do not create a state change in the device, but an
unsolicited (without acknowledge) message is generated by
the CWP for each change in the CWP_Alarm.
These alarms should not appear in the list of minor errors.
(Bit number in decimal).
Bit 1 – 48 To be defined
Bit 49 – 64 Manufacturer specific
0 means normal, alarm condition not present.
1 means alarm condition present.

UNSOLICITED DATA

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 56 of 76

100 CWPStatusMessage bin8, M


(64H) bin16
A CWPStatusMessage must be sent unsolicited (without
acknowledge) by the CWP whenever a change has
occurred in the status of the CWP (DataID State) or the
AssignControlID or CWP_Alarm (Optional), or
whenever the state cannot be changed following request
by the CD to change state.
The CWPStatusMessage includes:
- State (DataID = 20)
- AssignControlID (DataID = 22)
- CWP_Alarm (Data_Id = 80)
bin64 O
Please note that the CWPStatusMessage DataID is built
up as follows:
100,0,20,01,CWPs,22,02,acd
Where:
CWPs is the Car Washing Point Sate
acd is the Assign Control device
The Data_Lg of the CWPStatusMessage is always 0.

MANUFACTURER / OIL COMPANY SPECIFIC

3.10 Washing Transaction Data


This data allows the CD to handle the transaction data from a CWP.
The access to the washing transaction data is done by the database address CWP_ID (car
washing point identification) + TR_DAT (transaction data) + TR_Seq_Nb (transaction
sequence number).
Use TR_DAT = 20H and TR_Seq_Nb = “0000” to ask for all transactions on a car wash
point that are in the Recordable (state 2) or Locked (state 3) state. The resultant database
address (DB_Ad) is 2x200000H - where x takes value 1-4 depending on CWP.
In this section (3.10) only the “Read/ Write in State” column refers to the Transaction Buffer
State Diagram. The Transaction Buffer State is independent of the Point State.

WASHING TRANSACTION DATABASE


DB_Ad = CWP_ID (21H-2FH) + TR_DAT (21H) + TR_Seq_Nb (0001-9999)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description (Value)

TRANSACTION DATA

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 57 of 76

1 TransactionSequenceNumber bcd4 R(1-3) M


(01H) (1-9999)
Every transaction has a unique sequence number created
by the CWP. This number is the same number as used in
the address of this database.
When the number reaches 9,999 the CWP begins rolls
the number back to 1.
2 TransactionControlID bin16 R(1-3) M
(02H)
Indicates the Controller Device that has authorised the
transaction.
A Logical Node Address (LNA) is used for the
ReleaseControlID. The LNA is specified by 2 bytes (S
= Subnet, N = Node). For details see document "Part
II, Communication Specification".
0,0 = Controller Device is not specified,
X,Y = Controller Device that released the CWP (X =
Subnet, Y = Node),
255,255 = CWP running in stand alone mode.
At the end of the car washing transaction the
ReleaseControlID (DataID 30 in CWP Database) is
stored here.
3 TransactionReleaseKey bin8 R(1-3) M
(03H) Indicates the ReleaseKey used when the transaction was (0-255)
started.
At the end of the car washing transaction the ReleaseKey
(DataID 32 in CWP Database) is stored here.
4 TransactionWashingMode bin8 R(1-3) M
(04H) Indicates the washing mode used for this transaction. (1-8)
At the end of the car washing transaction the
WashingMode (DataID 33 in CWP Database) is stored
here.

5 TransactionTotalAmount Amount R(1-3) O


(05H) Indicates the total amount of the transaction.
At the end of the washing transaction the
CurrentTotalAmount (DataID 34 in CWP Database) is
stored here.
8 TransactionWashingCode asc8 R(1-3) O
(08H) Indicates the wash code used for this transaction.
At exiting the CUSTOMER ENTRY state the
CurrentWashingMode (DataID 40 in CWP Database) is
stored here.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 58 of 76

9 TransactionOptionsMask bin16 R(1-3) O


(09H) Indicates the options that the customer received.
At exiting the CUSTOMER ENTRY state the
CurrentOptionsMask (DataID 38 in CWP Database) is
stored here.
Bit 1 is for Option 1
0 -> Option is not used
1 -> Option is used
10 TransactionProgrammeMask bin16 R(1-3) M
(0AH) Indicates the Programme number that the customer
received.
At exiting the CUSTOMER ENTRY state the
CurrentProgrammeMask (DataID 37 in CWP Database)
is stored here.
Bit 1 is for Programme 1
0 -> Programme is not used
1 -> Programme is used
11 TransactionProgrammeDescription Asc16 R(1-3) O
(0BH)
Indicates the programme description of the Programme
that the customer received.
12 TransactionErrorCode bin8 R(1-3) M
(0CH) Indicates the error code that may have stopped the (0-255)
washing transaction.
If the error codes = 0 then no error has occurred. (See
the CWPErrorType in the Error Code Database).
At the end of the washing transaction the
CurrentTransactionErrorCode (DataID 39 in CWP
Database) is stored here.
13 TransactionWashSeconds bcd4 R(1-3) O
(0DH) Indicates the total wash seconds used for washing this (0-9999)
vehicle. This can be used to log the performance of the
CWP as related to customers per hour.
At the end of the WASHING state the
CurrentWashSeconds (DataID 42 in CWP Database) is
stored here.

14 TransactionEntrySeconds bcd4 R(1-3) O


(0EH) Indicates the total customer entry seconds used in this (0-9999)
transaction. This is useful to identify customer entry
problems.
At the end of the CUSTOMER ENTRY state the
CurrentEntrySeconds (DataID 43 in CWP Database) is
stored here.

TRANSACTION BUFFER STATUS

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 59 of 76

20 TransactionBufferControlID bin16 R(1-3) M


(14H) Indicates which controller device has locked the
transaction.
0,0 = transaction is unlocked and available to any CD
X,Y = locked
255,255 = stand alone
See section 5.7 Handling of Assignment Clearing and
Unlocking.
21 TransactionState bin8 R(1-3) M
(15H) Used to indicate the state of a particular transaction (1-3)
buffer.
Please see the Transaction Buffer State Diagram for
details of the individual states (chapter 2.2 of this
document).
An unsolicited message (DataID 100) is generated by the
CWP for each change in the transaction buffer state.

TRANSACTION COMMAND
30 Clear_Transaction CMD W(2,3) M
(1EH)
To clear a recordable washing transaction in the transaction
buffer. A transaction does not have to have been locked
before it can be cleared. This command is allowed when
Transaction Buffer is in state 2 or 3.

Please note that an Unsolicited TransactionState


(DataID 100) must be transmitted as a result of this
command . This action must occur even if the state has
not changed as a result of the command.
Clear all transactions should not be implemented.
31 Lock_Transaction CMD W(2) M
(1FH) To lock an unlocked recordable washing transaction in
the transaction buffer.
Car Wash should write the CD’s Subnet & Node address
to the TransactionBufferControlID. . This command is
allowed in state 2 of Transaction Buffer.
Please note that an Unsolicited TransactionState
(DataID 100) must be transmitted as a result of this
command . This action must occur even if the state has
not changed as a result of the command.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 60 of 76

32 Unlock_Transaction CMD W(3) M


(20H)
To unlock a locked recordable washing transaction in the
transaction buffer. This command is allowed when Transaction
Buffer is in state 3.
The transaction can only be unlocked if the transaction
was locked by the unlocking CD.
The TransactionBufferControlID should be reset to 0,0
when the transaction is unlocked.
An exception to this rule is when a transaction is
unlocked with the application message’s Originator
Subnet and Originator Node set to the car washes own
Subnet and Node value. Please note that the CD that
locked the transaction must be off-line for this over-ride
to be permitted.
(See section 5.7 Handling of Assignment Clearing and
Unlocking).

Please note that an Unsolicited TransactionState


(DataID 100) must be transmitted as a result of this
command. This action must occur even if the state has
not changed as a result of the command.

UNSOLICITED DATA
100 TransactionBufferStatusMessage bcd4, M
(64H) A TransactionBufferStatusMessage must be sent bin8,
unsolicited (without acknowledge) when ever the status of bin16
a transaction buffer has changed (transaction is created,
locked, unlocked or cleared) or whenever the state cannot
be changed following request by the CD to change state.

This message includes the following data:


- TransactionSequenceNumber (DataID = 1)
- TransactionState (DataID = 21)
- TransactionBufferControlID (DataID = 20)
Please note that the TransactionBufferStatusMessage
DataID is built up as follows:
100,0,1,2,trn,21,1,trs,20,2,trcd
Where:
trn is the transaction sequence number
trs is the transaction status
trcd is the transaction buffer controller Id
The Data_Lg of the TransactionBufferStatusMessage is
always 0.

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 61 of 76

3.11 Error Code Data


This data allows the CD to handle the error data from a CWP.
The access to the error data is done by the database address CWP_ID (washing point
identification) + ER_DAT (error data) + ER_ID (error identification).
The ER_DAT = 40H is used to ask for all error code data. Please note the car wash should
return all defined error codes in the below list (01H to 06H, 08H, 0AH to 0FH and 20H to
32H), even if the respective error event has not occurred. It is preferred Manufacturer
Specific error codes are not returned, when all error code data is requested.
All error types listed below must be supported (01H to 40H).

ERROR CODE DATABASE


DB_Ad = CWP_ID (21H-2FH) + ER_DAT (41H) + ER_ID (01H-40H)

Data Data Element Name Field Type Read/Write M/O


in State
_Id Description

ERROR DATA
1 CWPErrorType bin8 R(1-9) M
(01H) (1-64)
Every error has a unique error code. This number is the
same number as used in the address ER_ID of this
database.
A list of all errors is at the end of this table. An
unsolicited message is generated by the CWP when a
major or minor error occurs.
2 CWPErrorDescription asc20 R(1-9) O
(02H) Description of the error. W(1-2)

3 CWPErrorTotal bin8 R(1-9) M


(03H) Total of error having that code. If more that 255 errors (0-255) W(1-2)
are counted, the value remains 255.
When a 0 value is written in this CWPErrorTotal, the
total is cleared.

4 CWPManufacturerErrorCode bin16 R(1-9) O


(04H) Manufacturer specific error code. The site application (1-65535)
does not need to do anything with this number other than
pass it on to a servicing agent or to report it locally. The
manufacturer can provide a list of all error codes by car
wash model if required.
5 CWPErrorState bin8 R(1-9) M
(05H) Specifies the CWP State during which the latest error (1-9)
(with the selected ER_ID) occurred.
The CWP state numbering described in the "CWP State
Diagram, chapter 2.1" is used.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 62 of 76

UNSOLICITED DATA
100 CWPErrorTypeMessage bin8, M
(64H) A CWPErrorTypeMessage message must sent unsolicited bin8
(without acknowledge) when ever a the error occurs.
This message includes the following data:
- CWPErrorType (DataID = 1)
- CWPErrorState (DataID = 5)
For example:
For an CWPErrorType of 03H and CWPErrorState of
01H the following error message would be generated (in
HEX)
0C 03 21 41 03 64 00 01 01 03 05 01 01

MANUFACTURER / OIL COMPANY SPECIFIC


200
to Free to the manufacturer / oil company
255

The errors have different priorities. In the following table the classification is done. For
details in the behaviour of the CWP see chapter 2 (Washing Point Behaviour Model).

Classification ER_ID Description

MAJOR ERROR 1H RAM defect


2H ROM defect
3H Configuration or Parameter Error
4H Power supply out of order
5H Main Communication error
6H Display error
7H
8H Calculation error
9H
0AH Download error
0BH Checksum error
0CH Local emergency stop
ODH Water supply out of order
OEH Air supply out of order
OFH Safety alarm
10H-1FH Spare
MINOR ERROR 20H Battery error
21H Communication error

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 63 of 76

22H-23H Spare
Washing Errors 24H Authorised Time Out
25H Washing Time Out
26H No Progress
27H Limit Reached
28H Other Washing Error
29H-2CH Spare
State Error 2DH State error 1: CWP is in state INOPERATIVE
2EH State error 2: CWP is in state CLOSED
2FH State error 3: CWP is already opened
30H State error 4:
31H State error 5:
32H State error 6:
33H-37H Spare
Manufacturer Specific 38-40H Spare

3.12 Data Download


After Version 1.20 standard tools will be used. This section is deleted.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 64 of 76

4 EXAMPLE CONFIGURATION DIAGRAMS

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 65 of 76

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 66 of 76

5 IMPLEMENTATION GUIDELINES &


RECOMMENDATIONS
This section gives guidelines & recommendation for implementations of the IFSF Car Wash
Application Protocol.

5.1 Handling after a Device Master Reset/Cold Start or Initial


Start-up
After a master reset, cold start, initial start-up or discovery that the device‟s configuration is
corrupted, the car wash should:
Initialise the Communication Specification‟s Heartbeat_Interval to 10 seconds.
Start generating Heartbeat messages with a Device_Status indicating that configuration is
required.
Reset the Communication Specification‟s Recipient Address Table.
Clear out all current & historic transactions and initialise all other fields.
Where a default value exists for a DataID, the car wash should set up the DataID‟s value
accordingly.

5.2 Handling after a Reset or Power Off


After a master reset of the car wash the device should:
Check that device configuration is valid. If the configuration is corrupt, please treat the
condition as described for master reset/cold start (see above).
Do not clear the Communication Specification‟s Recipient Address Table .
Do not clear current & historic transactions.
Do not unlock locked transactions
Do not reset DataID‟s to their default values.

5.3 Meter Update


All meters should be updated just prior to putting a transaction into the transaction buffer.
This includes:
All of the meters in the Meters Database
The TotalUsage field in the Calculator database
The AbortedUsage field in the Calculator database, if required.
The MaintenanceUsage field in the Calculator database, if required .

5.4 Car Wash Behaviour after an Acknowledgement of a


Command
When a car wash receives a command from the CD (i.e. Open, Close, etc.) and the car wash
acknowledges the command positively (i.e. with a MS_ACK=0), the car wash must change
to the new state immediately before sending the Acknowledge reply. Note however that the
generation of an unsolicited status message is not normally required in the case of a message

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 67 of 76

that does not cause a state change (e.g. read or write of database field). Please see the
diagram/example below showing the required steps.

Where: a = Open command sent by the Control Device.


b = Car wash validates and processed the Open command and decides
that the CWP can be opened. Car wash changes its state to „Open‟.
c = Car wash Replies to the Open command by sending a positive
acknowledgement.
d = Car wash generates the unsolicited CWPStatusMessage to all devices
entered in its Recipient Address table.

5.5 Car Wash Operation Modes


This paragraphg describes the four variants of car wash operation possible using the
settings of the Car Wash calculator database items 12 StandAloneAuthorisation and
13 CodeVehicleOrder. To recap, Stand_Alone-Auth data item has a value of 0
which means the transaction automatically starts when the vehicle is in position.
When set to 1 the CWP is activated by the CW itself (directly through a start key) or
2 indirectly from a CD via the “Start” command.

CodeVehicleOrder determines the sequence of events require to authorise a car


wash. A value of 0 means “the vehicle must be in position first before entering the
“authorisation“ e.g. a code”, and a value of 1 means “ the “authorisation” e.g. a
code is necessary before the vehicle is positioned (this is the case when a door needs
to be opened).

The four combinations are described below, with resepct to the customer displayed
text messages on the “authorisation” man machine interface (e.g. the CED) and the
state changes of the CWP.

5.5.1 Automatic Start, Vehicle Positioned First [Mode 1A]


Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 68 of 76

StandAloneAuthorisation = 0, CodeVehicleOrder =0.


1. Authorisation Display: Please drive in
After the vehicle is in position the state change [3] -> [4] is performed
2. Authoristaion Display: Please enter code
After the valid “authorisation” is entered the CD sends “release” command to CW,
and CW changes its status [4] -> [6]
3. Authorisation Display: Please wait for the washing end

5.5.2 Manual Start, Vehicle Positioned First [Mode 1B]

StandAloneAuthorisation = 1, CodeVehicleOrder =0.


1. Authorisation Display: Please drive in
After the vehicle is in position the state change [3] -> [4] is performed
2. Authorisation Display: Please enter code
After the valid “authorisation” is entered the CD sends “release” command to CW,
and CW changes its status [4] -> [5]
3. Authorisation Display: Please press the START button
CW waits for pressing of the START button (or CD “start” command), then checks
all the internal conditions and starts washing if OK, i.e. changes its status [5] -> [6]
4. Authorisation Display: Please wait for the washing end

5.5.3 Automatic Start, Code Entry First [Mode 2A]

StandAloneAuthorisation = 0, CodeVehicleOrder =1.


1. Authorisation Display: Please enter code
After the valid code is entered the CD sends “release” command to CW, CW opens
the door (if door exists and it is closed), and CW changes its status [3] -> [4]
2. Authorisation Display: Please drive in
CW checks all the internal conditions and “starts” washing if the vehicle is in
correct position the state change [4] -> [6] is performed
3. Authorisation Display: Please wait for the washing end (the customer is in the
car, the next customer can read the authorisation display)

5.5.4 Manual Start, Code Entry First [Mode 2B]

StandAloneAuthorisation = 1, CodeVehicleOrder =1.


1. Authorisation Display: Please enter code
After the valid “authorisation” is entered the CD sends “release” command to CW,
CW opens the door (if door exists and is closed), and CW changes its status [3] ->
[4]
2. Authorisation Display: Please drive in
After the vehicle is in position the state change [4] -> [5] is performed
December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41
CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 69 of 76

3. Authorisation Display: Please press the START button


CW waits for pressing of the START button (or CD “start” command), then checks
all the internal conditions and starts washing if OK, i.e. changes its status [5] -> [6]
4. Authorisation Display: Please wait for the washing end

5.6 CW Operation Modes State Diagrams and Tables


Figure 2.1.1 and Figure 2.1.3 show all combination of events for all possible Car
Wash modes. This makes the diagram potentially misleading since it gives the
impression that all events are possible at all times. The diagram and table can be
simplified for each car wash mode. For the sake of simplicity only state 3, 4, 5 and 6
are drawn. Note a change in mode of operation can only be made when the CWP is
placed in state 1 or 2. For the table only states 3, 4 (and only for state 1B and 2B) 5
are necessary.

5.6.1 State Diagrams

Figure 2.1.1 is overly complicated since it shows all modes of operation on the same
diagram. This diagram can be simplified considerably for any specific mode.

Mode 1A: StandAloneAuthorisation = 0, CodeVehicleOrder =0.

IDLE

CUSTOMER_PRESENT
NO_CUSTOMER

NO_CUSTOMER
CUSTOMER
ENTRY

RELEASE. BLOCK
AUTH_TIME_OUT

AUTHORISED

START

WASHING

Mode 1B: StandAloneAuthorisation = 1, CodeVehicleOrder =0.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 70 of 76

IDLE

CUSTOMER_PRESENT

NO_CUSTOMER

CUSTOMER
ENTRY

RELEASE
BLOCK
AUTH_TIME_OUT

AUTHORISED

START

WASHING

Mode 2A: StandAloneAuthorisation = 0, CodeVehicleOrder =1.

IDLE

RELEASE
NO_CUSTOMER

CUSTOMER
ENTRY

START BLOCK
AUTH_TIME_OUT

AUTHORISED

START

WASHING

Mode 2B: StandAloneAuthorisation = 1, CodeVehicleOrder =1.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 71 of 76

IDLE

RELEASE

NO_CUSTOMER

CUSTOMER
ENTRY

SELF_AUTH
BLOCK
AUTH_TIME_OUT

AUTHORISED

START

WASHING

5.6.2 State Table

Figure 2.1.3 is overly complicated since it shows all modes of operation on the same
table. This table can be simplified considerably for any specific mode.

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 72 of 76

Mode 1A:

3 4
State Idle Customer Entry

Event

Customer_Present 4

No_Customer 3

Release 6 (via 5)

Mode 1B:

3 4 5
State Idle CustomerEntry Authorised

Event

Customer_Present 4

No_Customer 3

Self_Auth 5

Start 6

Auth_Time_Out 4

Block 4

Mode 2A:

3 4
State Idle CustomerEntry

Event

Release 4

No_Customer 3

Start 6 via 5

Mode 2B:

3 4 5
State Idle CustomerEntry Authorised

Event

Release 4

No_Customer 3

Self_Auth 5

Start 6

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 73 of 76

Auth_Time_Out 4

Block 4

5.7 Handling of Assignment Clearing and Unlocking

Assign_Contr_Id, Config_Lock and TransactionBufferControlID should be handled in a


similar way, though it should be noted writing to TransactionBufferControlID is ONLY
allowed under fatal error conditions.

5.7.1 Handling of Assign_Contr_Id and Config_Lock


A new assignment can only be received by a CWP after a reset (not assigned, i.e. 0,0 is
written) by the device that previously assigned the CWP.

In cases, where the CD that assigned the CWP has „crashed‟ and is off-line the assignment
can be cleared by another CD. This is achieved by setting the Assign_Contr_Id
(Config_Lock) to the same as the Car Wash‟s own application Subnet & Node.
The Car Wash then resets the Assign_Contr_Id (Config_Lock) to 0,0.
This method of clearing can also be used by the assigning CD.

Assignment clearing or unlocking. Same for Config_Lock.


a. Assign_Contr_Id equals 0000 (not locked):
Any CD can set the Assign_Contr_Id out of 0000.
b. Assign_Contr_Id does not equal 0000 (locked to a particular CD):
The CD which owns the lock writes 0000 to Assign_Contr_Id. Accepted. Normal
unlock.
The CD which owns the lock writes Car Wash's own SN address to
Assign_Contr_Id. Accepted. Peculiar emergency unlock (the CD can use Normal
unlock).
The CD which does NOT own the lock writes 0000 to Assign_Contr_Id. Rejected
with NAK (Data_Ack of 2). Incorrect normal unlock.
The CD which owns the lock is off-line: Any other CD (CD does not need to be in
RAT) writes the Car Wash's SN address into the Assign_Contr_Id. Accepted.
Emergency unlock.
The CD which owns the lock is on-line: Any other CD writes the Car Wash's own
SN address into the Assign_Contr_Id. Rejected with NAK (Data_Ack of 2).
Incorrect emergency unlock.

Note 1: The Car Wash has to monitor the heartbeats from the CD(s) owning the lock(s)
independently of the RAT (otherwise, lock “stealing” would be possible).

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 74 of 76

5.7.2 Handling of TransactionBufferControlID


In cases, where the CD that locked the transaction has „crashed‟ and is off-line the lock can
be cleared by another CD. This is achieved by setting the TransactionBufferControlID to the
same as the Car Wash‟s own application Subnet & Node.
The Car Wash then resets the TransactionBufferControlID to 0,0 and changes the
Trans_State to RECORDABLE TRANSACTION.
This method of clearing can also be used by the assigning CD.

Unlocking.
c. TransactionBufferControlID equals 0000 (not locked):
Any CD can set TransactionBufferControlID out of 0000 by sending a Lock
command.
d. TransactionBufferControlID does not equal 0000 (locked to a particular CD):
The CD which owns the lock sends Unlock command. Car Wash sets
TransactionBufferControlID to 0000. Accepted. Normal unlock.
The CD which owns the lock writes Car Wash's own SN address to
TransactionBufferControlID. Accepted. Peculiar emergency unlock (the CD can
use Normal unlock).
The CD which does NOT own the lock sends Unlock command. Rejected with
NAK (Data_Ack of 6). Incorrect normal unlock.
The CD which owns the lock is off-line: Any other CD (CD does not need to be in
RAT) writes the Car Wash's SN address into the TransactionBufferControlID.
Accepted. Emergency unlock.
The CD which owns the lock is on-line: Any other CD writes the Car Wash's own
SN address into the TransactionBufferControlID. Rejected with NAK (Data_Ack
of 2). Incorrect emergency unlock.

Note 1: The Car Wash has to monitor the heartbeats from the CD(s) owning the lock(s)
independently of the RAT (otherwise, lock “stealing” would be possible).

5.7.3 Handling after power down


Config_Lock should be volatile. Assign_Contr_Id and TransactionBufferControlID should
be non-volatile. This will determine what happens to these data elements after a power down.

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 75 of 76

6 WASH ELEMENTS TABLE


This section gives a listing of the standard wash elements that are used to make up the 64 bit
Element code for programmes and options.

Bit Element Name Description


1 Basic wash Basic wash must be selected for the wash to activate any other
element
2 Double pass wash Two complete passes over the vehicle
3 Dryer, profiling one pass Single pass of dryers profiling the vehicle
4 Dryer, profiling two pass Double pass of dryers profiling the vehicle
5 Dryer, non-profiling one pass Single pass of dryers stationary over the vehicle
6 Dryer, non-profiling two pass Double pass of dryers stationary over the vehicle
7 Air freshener Applies air freshener to vehicle
8 Brushes, roof only Only activates the roof brushes
9 Brushes, side only Only activates the side brushes
10 Front bumper spray Spray the front bumper
11 Rear bumper spray Spray the rear bumper
12 Chemical pre-soak Applies mild chemical to the vehicle before washing
13 Insect remover pre-soak Applies a de-insectant to the vehicle before washing
14 Clear coat, foaming Foams the clear sealer
15 Clear coat sealer Applies clear coat sealer to vehicle
16 Drying agent Applies drying agent to help bead water for better drying
17 Foam bath Bathes the vehicle in foam before washing
18 Front wash, double Washes the front of the vehicle twice
19 Hi pressure wash, contoured High pressure wash that profiles the vehicle
20 Rear wash, double Washes the rear of the vehicle twice
21 Micro emulsion Applies micro emulsion to the vehicle
22 Pre wash foam Applies foam chemical before wash
23 Pre rinse The vehicle is rinsed before washing to cool it down and remove
some dirt
24 Pre rinse, high pressure High pressure spray to blast off ice, snow or large dirt prior to the
wash
25 Rocker panel blaster Sprays the rocker panel (sills) with high pressure
26 Spot free rinse Applies reverse osmosis water to rinse the vehicle
27 Shampoo Applies shampoo to the vehicle
28 Spray, high pressure roof Applies high pressure water to roof only
29 Spray, high pressure sides Applies high pressure water to sides only
30 Tyre, brush Brushes each tyre
31 Tyre, chemical spray Sprays each tyre with chemical before washing

Version 1.41 IFSF - STANDARD FORECOURT PROTOCOL December 2011


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011


Page: 76 of 76

32 Tyre, dressing Applies tyre dressing at the end of the wash


33 Tyre, sprayer Sprays each tire individually
34 Tyre, white wall cleaner Applies white wall cleaner to the tyre
35 Under chassis sealant Applies rust inhibitor to the underside of the vehicle
36 Under chassis wash Sprays the under chassis with water
37 Van Chemical Applies special van/truck chemical
38 Wax, cold Applies cold wax to the vehicle
39 Wax, cold foaming Applies cold foaming wax to the vehicle
40 Wax, hot Applies hot wax to the vehicle
41 Wax, hot foaming Applies hot foaming wax to the vehicle
42 Wax, polish foaming Applies foaming wax for polishing the vehicle
43 Wax, sealer Applies sealer wax to the vehicle
44 Wax, triple foaming Applies triple colour foaming wax to the vehicle
45 High pressure during brush Applies high pressure water jets with the brushes
46 Dryer side, contoured Drying with contoured side nozzles
47 Side HP, contoured Side High Pressure wash that profiles the vehicle‟s side
48 Van Side HP Side High Pressure wash that profiles the vehicle‟s side
49 Wheel scrub, with HP Wheel wash brush with High pressure spray
50 Triple Foam Detergent Uses a 3 colour detergent to wash the vehicle
51 Tyre rim cleaning, double Applies cleaner to the tyre rim twice
52 Chemical, controued Application of chemical, guarded by a vehicle contouring process
53 Fresh Water Rinse Rinsing of the vehicle with fresh water
54 Brush, roof, rear, double Double wash on the rear of the vehicle with the roof brush
55 Floor rinse Rinse of the bay floor
56
57
58
59
60
61
62
63
64

December 2011 IFSF - STANDARD FORECOURT PROTOCOL Version 1.41


CAR WASH SPECIFICATION

Copyright © IFSF Ltd 2011

You might also like