Solver input and output
Solver is a program that communicates via standard I/O.
Solver responds to commands from viewer.
- Command from viewer is a single line sent to solver's
Standard Inputbut empty lines and lines starting with hash character (
#) are ignored.
- Each command from solver gets a response from a solver.
- The client can send many commands without waiting for a reply from solver
- The solver will answer all commands in the same order in which they are sent to the solver.
- Solver's reponse can be one or more lines or an error.
- When running solver from another program it's recommended to call
set_end_string ENDcommand at the start. The solver will print the
ENDstring after each response.
If the given command doesn't request data of any kind solver will respond with
Solver sometimes can print to stdout lines which are not command responses. Notably they are:
- Lines sent by solver at the startup.
PioSOLVER-edge 2.0 (Jan 01 2021, 00:00:01)
(c) Piotr Lopusiewicz
registered to [email protected]
it's recommended to send some command to a solver (e.g.
set_end_string END or
is_ready) and start parsing communication after receiving expected response (e.g.
- Solver Updates
Solver calculation is run in the background and it prints solving updates every now and then. It can be either single line of a from:
SOLVER: stopped (requested)
or a multiline message starting with a line
SOLVER: and ending with END string.
It's guaranteed that it will not overlap with command responses.
running time: 52.977
EV OOP: 181.767
EV IP: 293.233
OOP's MES: 242.008
IP's MES: 343.408
Exploitable for: 55.209