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.