EversysApi
Base Entry
Text to display
Width in pixels (default:300)
Height in pixels (default:50)
X position of left-top corner (default:250, min:0, max:800)
Y position of left-top corner (default:470, min:0, max:600)
Font size (default: 12)
font style: could be multiple of the following values (default:0)
1 = BOLD
2 = ITALIC
4 = UNDERLINE
8 = STRIKEOUT
Text alignmene (default:1)
1 = LEFT,
2 = CENTER,
4 = RIGHT
text color in format 0xRRGGBB (default:0xFFFFFF [white])
e.g. Blue => 0x0000FF
background color in format 0xRRGGBB (default:0x000000 [black])
e.g. Yellow => 0xFFFF00
background image name
Number in tlv format
Value
Length in bytes. Used for byteArrayConversion
Creates a TlvNumber entry
raw data
created TlvNumber entry
Convert data to byte array
QR Code object in Tlv format
Content of QR Code
Width in pixels (default:300)
Height in pixels (default:300)
X position of left-top corner (default:250, min:0, max:800)
Y position of left-top corner (default:150, min:0, max:600)
Convert data to byte array
byte array
Creates a TlvQrCode entry
raw data
created TlvQrCode entry
String in Tlv format
String
Creates a TlvText entry
raw data
created TlvText entry
Convert data to byte array
byte array
Number of elements in tlv struct
Adds a new entry to the list
entry to add
Adds a new Text entry to the list
Text to add
Adds a new Number entry to the list
Number to add
Adds a new Number entry to the list
Number to add
length of number in bytes
Return a tlv entry or NULL
index in TLV struct
entry or NULL
Return a number or NULL if entry isn't of type TlvType_t.Number_e
index in TLV struct
Number or NULL
Return a text or NULL if entry isn't of type TlvType_t.Text_e
index in TLV struct
Text or NULL
Convert data to byte array
byte array
Parse a byte array and fills up the members
byte array
byte array
Eversys 咖啡機 API
返回 4 個 byte (GetCustomScreenState 只有返回一個)
Bit 0-2 in the PIE byte.
Port ranges and what they are assigned to.
Bit 3-6 in the PIE byte.
Defines if the packet is encrypted.
Bit 7 in the PIE byte.
Reserved and special characters
Data-header without the data length.
Contains the command id and the 16bit parameter value.
MI, MP[0:7], MP[8:15]
Raw telegram packet with data-array and the data length. (including SOH and EOT)
Shifted character are still shifted.
CRC value; Byte CRC[0:7] and CRC[8:15]
Telegram packet without SOH and EOT
isFail doesn't belong to the actual packet. It is used to tag length and crc fails.
Converts the packet to a byte array.
packet as a byte array. With CRC, without EOT and SOH. Data is not shifted.
Converts this packet to a byte array with shifted chars, SOH and EOT
raw data array
States of the state-machine in TransmissionThreadWorker()
If this value is true nothing will be sent back.
Sequence number of the last incoming and acknowledged command
Counts Ack_e timeouts until it reaches MaxSendRepetition
Counts Nacks until it reaches MaxSendRepetition
This number increments after every new command/request; repetitions are with the same number.
Flag; set when a request is in the queue and data with the same sequenceNumber was received.
Flag; set when a request was sent but the response was not yet received
Always set to the time when the last packet was received.
Used to prohibit the sending of a response or Ack/Nack after the timeout time was exceeded.
Length of the rawDataBuffer array. (Number of filled fields rather than the array length).
Buffer to save the data which is received on the serial port. Its size equals MaxPacketSize.
When this flag is set to true the Serialport will be closed as soon as the ongoing transmission is finished.
number of bytes in the packet-header(PIP+PIE+PN+SA+DA)
number of bytes in the data-header(MI+MP+DL)
number of bytes in the packet and in the data-header(PIP+PIE+PN+SA+DA+MI+MP+DL)
initial value for the crc calculation
size of the CRC in bytes
Protocol version. Should be incremented after every major release.
LUT for the CRC-16-IBM (x^16 + x^15 + x^2 + 1)
Address of this device.
Maximal timeout until an Ack/Nack is received.
Maximal timeout until a response is received.
Maximal number of retries until an ack is received, without the initial attempt.
How long the thread will be inactive after every execution.
Maximal size of a packet in bytes.
Last packet which was given to the EnqueuePacket method
If the value is true then the port is currently not receiving or sending anything.
This value is used to safely terminate the used thread and close the port.
True if the port is open.
Sequence number of the last sent packet.
Called when the Transmission was successfull
method with a parameter Packet_t
Called when a data or request packet was received.
method with a parameter Packet_t
Called when the machine didn't answer at all
method with a parameter Packet_t
Called when the other machine received the packet but it wasn't correct. (interferences)
method with a parameter Packet_t
Called when an ack but no response was received after a request.
method with a parameter Packet_t
Called everytime a packet was sent.
method with a parameter byte[]
Default values:
ThreadSleepTime = 1ms
MaxPacketSize = 256
SequenceNumber = 0
MaxSendRepetition = 3
Timeouts = 200ms
ID of this device (source id)
serial port implementation
Opens the port and starts the thread.
Only starts the thread.
Closes the Port but does not terminate the thread.
Normaly this should not be used. Used to manually send an ack/nack or
to send a response with an undef command (unknown request)
data = null
data length = 0
isRequest = false
parity = 0
Encrypted = no
Application Port = Api_e
destination of this packet as byte
Sequence number which will be transmitted. Should only be set manually in a response.
Type of the Command see byte. used in the Message_t struct
Used to send a command.
isRequest = false
sequenceNumber = last Number + 1
parity = 0
Encrypted = no
Application Port = Api_e
destination of this packet as byte
data-header w/o data length see Message_t
data as a byte array. The size of this array should equal dataLength
how many data bytes will be sent
Used to send a request.
sequenceNumber = last Number + 1
parity = 0
Encrypted = no
Application Port = Api_e
destination of this packet as byte
data-header w/o data length see Message_t
data as a byte array. The size of this array should equal dataLength
how many data bytes will be sent
true when this packet is a request, else false.
Used to send a response.
isRequest = false
parity = 0
Encrypted = no
Application Port = Api_e
destination of this packet as byte
data-header w/o data length see Message_t
data as a byte array. The size of this array should equal dataLength
how many data bytes will be sent
Sequence number which will be transmitted. Should only be set manually in a response.
Used to repeat a packet or to sent a custom packet.
Packet_t which will be sent
Adds a packet to the send queue.
destination of this packet as byte
data-header w/o data length see Message_t
data as a byte array. The size of this array should equal dataLength
how many data bytes will be sent
true when this packet is a request, else false.
Sequence number which will be transmitted. Should only be set manually in a response.
Application port which will be sent in the packet
Is the Packet Encrypted
Which parity does the packet have
This method is an alternate receive option.
raw data
length of the raw data
true = successful, false = error occured
Reverts the shifted characters.
raw data
length of the raw data
data array without shifted characters
Aborts the thread and closes the port.
Increments the sequence number and returns it.
Next valid sequence number.
Reads data from the serial ports and makes packets from the data.
Writes data to the serial port and manages the ack/nack.
Checks if there is something to send and sends it.
Checks if an ack or a nack was received or if a ackTimeout occured.
Checks if a response was received
This method takes the raw packets and processes them.
Then it puts the packet in the DataQueue or in the AckQueue
Checks the GetStatus response for the justReset bit. If it is set
the sequence number will be set to 0.
Sends the ack/nack packet, checks if the Data_e packet was a response (no ack/nack needed)
and calls the packetReceived callback
Writes the packet to the serial port.
data from ToByteArray()
Makes the Data ready to be sent to the port.
data from ToByteArray()
final byte array with SOH and EOT
Event handler for the serialport.DataReceived event.
It reads everything from the serialport and calls the ProcessRawData function.
This method searches for a SOH and it will save the data after it.
Then it waits until it finds a EOT. If the MaxPacketSize was not exceeded,
then it will save the data with the SOH and EOT as a rawPacket in the IncomingRawQueue.
If the packet size grows over MaxPacketSize it will ignore the packet.
If there is still data after the EOT it will recursively call itself until there is no data left.
data as byte array
number of data bytes
Checks for special character (shifted characters)
to be checked character
true/false
calculates the crc value with the crcPolynomTable
reference to a byte array. the CRC will be calculated on this array.
length of the array
crc value as 16bit value
Name of picture
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Timeout in seconds
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Year (e.g. 2021)
Month 1-12
Day 1-31
Hour 0-23
Minute 0-59
Second 0-59
TRUE if time date is in utc
Converts the object to a byte array
target
Fills up the properties from a byte array
source
TRUE => an empty command is sent ( or was received )
do not consider the other data if this flag is set
ID of Baseproduct
Choosen Beanhopper
Choosen Cakethickness
Choosen Milksort
Selected milk temperature
Selected powder dispenser
Converts the object to a byte array
byte array
Fills up the properties from a byte array
source
List with pending warnings
List with pending stops
List with pending errors
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Requested rinse mode
Milk suction tube back rinse time in ms
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Date when product was processed
Time when product was processed
Cake press before position
Cake press after position
Cake press final position
Cake press hub
Left or right side
Quantity of coffee powder
Control of powder quantity
Extracting time in 100ms steps
Water quantity in ticks
Watertemperatur in °C of boiler outlet
Temperatur in °C of boiler heating control
Product type
Related product process
Single or double product
Product ID
Related bean hopper
Left or right side
Reason for product abort
Ticks position of left grinder wheels
Ticks position of right grinder wheels
Who controls the extraction time
water brew pressure in bar/10
Water input temperatur in °C
Current cycle number
in a multi cycle product this flag is set in the last cycle
Milktemperature in °C
Steampressure in bar/10
Milk extraction time in 100ms steps for whole produt
version flags, see API.ProcDumpVersion_t
Milk input temperature in °C
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Milk control status
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
rpm foam
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
rpm milk
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Foamtemperatur in °C
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Milktempteratur in °C
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Foam extraction time in 100ms steps
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Milk extraction time in 100ms steps
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Airquantity in %
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Used milk sort
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is set in VersionFlags
Air quantity of all milksequences => use AirQuantityList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
mct temp of all milksequences => use MctTempList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
mct time of all milksequences => use MctTimeList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
milk sorts of all milksequences => use MilkSortList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
rpm of all milksequences => use RpmList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
state of all milksequences => use MctStatusList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
Temperature in °C of every milksequence => use MilkInputTempList to modify
\note can be ignored if API.ProcDumpVersion_t.MilkSequence_e bit is NOT set in VersionFlags
Powder extration time in 100ms steps
Water quantity for powder extraction in ticks
Powder quantity in gramm
Used powder dispenser
Air quantity in % of every milk sequence
Temperature in °C of every milk sequence
Time in 100ms steps of every milk sequence
Milk sort of every milk sequence
rpm of every milk sequence
status of every milk sequence
Temperature in °C of every milk sequence
Converts the object to a byte array
byte array
Fills up the properties from a byte array
source
V1 -> 18 Bytes length
V2 -> 30 Bytes length
V3 -> 32 Bytes length
V4 -> 35 Bytes length
V5 -> 36 Bytes length
V6 -> 38 Bytes length
Version -> used to handle the different command lenghts
Product type
Related product process
Water quantityt in ticks
Hot water quantity in ticks, used for Americano
Americano sequence
Related bean hopper
Cake thickness in mm/10 steps
Pressure of powder press
Prebrew time in 100ms steps
Relax time in 100ms steps
Press after length in mm/10 steps
Bypass quantity in %
milk sort
Milk quantity in seconds
Milktemperatur in °C
Milk in %
Product sequence type
Deprectaed, Use ProductSequence instead
Milk delay in seconds
Latte macchiatto time in seconds
Foam sequence type
Milk output
Steam time in second
Steamtemperature in °C
Air stop temperature in °C
Air stop time in 100ms steps
Air quantity in %
Rpm milk
rpm foam
Ever foam mode
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Pending CPU requests
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Date when product was processed
Time when product was processed
Rinse type
System flow rate left [ticks/sec / 10]
System flow rate right [ticks/sec / 10]
System flow rate status left
System flow rate status right
System water pressure left [bar/10]
System water pressure right [bar/10]
Nozzle flow rate left [ticks/sec / 10]
Nozzle flow rate right [ticks/sec / 10]
Nozzle flow rate status left
Nozzle flow rate status right
Nozzle water pressure left [bar/10]
Nozzle water pressure right [bar/10]
Americano flow rate left [ticks/sec / 10]
Americano flow rate right [ticks/sec / 10]
Converts the object to a byte array
byte array
Fills up the properties from a byte array
source
Duration in cycles
Repetitions
Converts the object to a byte array
target
Fills up the properties from a byte array
source
ID of Baseproduct
Choosen Beanhopper
Choosen Cakethickness in mm
Choosen Milksort
Calculated Productnumber
Calculated product price
Selected milk temperature in °C
Chosen powder dispenser
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Temperature of left boiler in °C
Temperature of right boiler in °C
Pressure of steam boiler
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Machine serial number (Main number)
CPU serial number
Serial number of left panel
Serial Number of right panel
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Machine mode, use STA_MachineMode_t to check the states
Left coffee module
Right coffee module
Left steam module
Right steam module
Water module
True if there is a pending selector product on the left display
True if there is a pending selector product on the right display
Converts the object to a byte array
target
Fills up the properties from a byte array
source
major version
minor version
revision
Defaut constructor
Creates a new instance and set the properties in one
Converts the object to a byte array
target
Fills up the properties from a byte array
source
Converts the version to string (major.minor.revision)
Version in format x.x.x
Check if version a is older than version b
Check if version a is newer than version b
Check if version a is older than version b or equals
Check if version a is newer than version b or equals
Converts the object properties to an integer value, which could be used to compare version easely.
integer which represent the version
Fills up the properties from a byte array
source
new instance of requested object
Product abort mode
Americano sequence
Bean hopper
Mögliche API Kommandos
CPU requests
Date in days, month and years(2 digits)
Specification Monh: January = 1, February = 2, ...
Dîfferent display actions
Errors definitions
Ever foam mode
Detailed Coffee ActionType
Detailed Milk Action
Foam sequence mode
Machine status bit
Milk control status
Milk outlet rinse mode
Milk output
Deprectaed, Use ProductSequence_t instead
Milk sort
Milk temperature mode
Actions
Module ID
Touch Serial Interface RS-232
API Remote Device
Process type
Status
Powder Dispenser
Depending on this flag the milksequences inside the ProductDump are provided different
----------------------------
Flag is set
----------------------------
- strAirQuantity (AirQuantityList)
- strMilkSort (MilkSortList)
- strRpm (RpmList)
- strMctTemp (MctTempList)
- strMctTime (MctTimeList)
- strMctStatus (MctStatusList)
- strMilkInputTemp (MilkInputTempList)
----------------------------
Flag is not set
----------------------------
- RpmFoam
- RpmMilk
- MctTempFoam
- MctTempMilk
- MctTimeFoam
- MctTimeMilk
- AirQuantity
- MilkSort
- MctStatus
- MilkInputTemp
Process side
Product process
Mikl sequence mode
Product type
Who is responsible for the extracting time control
Screensaver state
Ordinary product key ID are from 1 - 48
All the other special productKeyId are listed below
Defines which process to stop
Stops definition
Time in seconds, minutes and hours
Warnings definitions
After every successful sent command, the system wait the set time in ms.
Otherwise you propably overwrite pending requests on the machine.
With this settings you can handle the wait process in global.
Is called directly before the request is send to the machine
Is called directly after the response from the machine is received or after the send process if no response is expected
Creates new
direct access to send functionality
True if successfully sent
direct access to send functionality including response
True if successfully received a response
direct access to send functionality with optional response
True if a response was successfully received, where the "packet.data" may contain data or be empty
Gets the machine e'API version
response
Gets the current status object
response
launch a product
left or right side
product parameters
Launch rinse process
left or right side
Stop current processes
select which process to stop
start cleaning process
Gets the current pending CPU requests (Request which aren't sent yet to CPU)
response
Lacunch milk outlet rinse process
left or right side
Specific detailed information
Launch a screen rinse process
left or right side
detailed settings for the process
Gets the active warnings, stops and errors
response
Do a specific display action
specific action
get the last product dump
response
Reads the current sensor values
response
Launch a Extracting Time Calibration process
left or right side
select beanhopper used for calibration
simulate a product press on the display
left or right side
id of the selected product
Does a steam flush
left or right side
gets the product parameters
response
left or right side
id of the selected product
gets the machine counter values
response
Lay a picture over the existing display screen
path of picture
Get the state of the custom screen
Bit 0: (1) custom screen on left panel is showed up, (0) no screen is showed up on left side
Bit 1: (1) custom screen on right panel is showed up, (0) no screen is showed up on right side
Launches a pending selector Product
Launches a selectorProduct depending on the provided data
- pending selector Product (If the user has choosen one at the display) => apiDoSelectorProduct.IsEmpty = true
- a independent with provided selector parameter (wthout an interaction on the display) => apiDoSelectorProduct.IsEmpty = false
Gets a pending selector Product
return NULL if no pending product exists
Collects all the serial numbers
Sets the machines date and time
Date time of machine after change
Gets the machines date and time
get the rinse dump
response
Event must be fired on application exit
Trace message
Message
Debug message
Message
Info message
Message
Warning message
Message
Error message
Message
Exception
Exception
Platform- and framework-independent interface for serial port (RS232) communication.
When using the .NET Framework (like version 4.7) we might implement this interface
using the "System.IO.Ports.SerialPort" class (where this interface is inspired by).
When using UWP we might use the "Windows.Devices.SerialCommunication.SerialDevice" class instead.
Implementing classes must always use no parity, eight data bits and one stop bit.
Returns true, when the port is already open.
Gets or sets the serial baud rate.
Setting this property may be unsupported on some platforms and throw a .
Gets or sets the port for communications.
Setting this property may be unsupported on some platforms and throw a .
Gets or sets the size of the input buffer in bytes.
Should be 4096 by default (default value from .NET Framework's "System.IO.Ports.SerialPort.ReadBufferSize").
Gets or sets the size of the output buffer in bytes.
Should be 2048 by default (default value from .NET Framework's "System.IO.Ports.SerialPort.WriteBufferSize").
Occurs when the port received data.
Use the method to read the data.
Gets the names of all available serial ports, like "COM1", "COM2"...
Initializes the serial port with the given name and baud rate
and returns itself.
Call this method before using any of the following methods.
Opens the connection to the port.
Reads a number of bytes from the input buffer and writes
those bytes into a byte array at the specified offset.
Writes a specified number of bytes to the serial port using data from a buffer.
Closes the connection to the port.
Baudrate
Check if the service has a serial connection
connected port name
Open a connection to the requested port
Portname like 'COM2'
True if successful connected
Automatically connect to a COM port
True if successfully connected
Disconnect an open conenction
Send data over serial connection
Command
parameter
data
True if successfully sent
Send data over serial connection and wait for a response
Command
parameter
data
response
optional data receive
True if a response was successfully received, where the "packet.data" may contain data or be empty.
Mutex for serial connection protection
Baudrate for serial connection, 115200 by default
Source Address for API communication, 0x40 by default
Check if the connection is open
returns the portname of the open connection
Factory to create the API protocol service
Serial connection
Exchange service
Create new instance
Serial port implementation
Optional
Automatically scans all available COM ports and check if there is an response to a GetStatus() request. if yes it will hold the connection open otherwise it tries with the next port
TRUE if a GetStatusResponse was received on a port
Connect to the requested COM port
Portname like 'COM2'
TRUE if the connectino was successfully opened
Close an open connection
Dispose this object
Send data over serial connection
Command
parameter
data
True if successfully sent
Send data over serial connection and wait for a response
Command
parameter
data
response
optional data receive
True if a response was successfully received, where the "packet.data" may contain data or be empty.