CYBOP 0.21.0

Features Developer



  • Make socket communication work in blocking and non-blocking mode
  • Make initial and follow-up reads work for long messages greater than buffer size in loop of "socket_reader.c"
  • Let file "socket_sensor.c" rely upon function "read_device" using "ioctl" internally, since MSG_PEEK with socket read did not work
  • Implement device access using function "ioctl" for device-dependent request code (command)
  • Display

  • Refactor gui action handling reading out event details (event_name, x, y)
  • Handle window close and resize event
  • Avoid flickering of display by considering only the last in a row of multiple expose events in "xcb_deserialiser.c"
  • Add all possible event types to "x_window_system_starter.c" and "xcb_deserialiser.c"
  • Add gui_event language constant
  • Detect mouse clicks properly by adding parent element's origo
  • Assure proper nesting of gui elements
  • Use default font if none is given
  • Terminal

  • Store stdin/stdout file stream instead of file descriptor in input/output memory, since stream is a more complex structure containing the descriptor
  • Adapt terminal shudown files in order to restore original terminal modes properly
  • Merge common startup/shutdown functionality for unix terminal and win32 console
  • Hold two separate terminal file descriptors for input- and output
  • IO Entry

  • Unify handling of channel startup and shutdown using new input/output entry structure
  • Apply new input/output entry structure to terminal, display, socket
  • Sense client requests on socket and other channels using new "executor/acceptor"
  • Delete outdated directories and files related to sensing threads, which are not used anymore
  • Add new cybol operations "activate/enable" and "activate/disable"
  • Bugfix

  • Filter out non-existing parts in "part_knowledge_deserialiser.c"
  • Use type argument instead of hard-coded wide character for comparison in "detector.c"
  • Use binary mode always for opening files, no matter if reading or writing, in files "file_reader.c" and "stream_file_writer.c"
  • Fix unpredictable errors caused by mixed pointer- and integer calculation in io entry setter and getter
  • Make logger work properly (in debug mode causing log files of a size > 100 MB for cybol application "user_interface/gui/")
  • Use destination type as source type by default in function "apply_modify", so that cybol operations like "modify/empty" lacking a source part work fine
Christian Heller


  • Refactor cybol applications "internet/www_server_static/" and "internet/www_server_dynamic/", now being able to handle requests from multiple clients
  • Test image transfer and handling of multiple clients in cybol applications "internet/socket_server" and "internet/socket_client"
  • Delete binary mode cybol property, since it is used by default now
  • Add cybol application "file/copy/"
  • Merge all "Hello World!" cybol applications into "examples/hello_world/"
  • Introduce new cybol base library "examples/cybol/", in order to provide standard functionality such as "print-newline" or "exit"
  • Improve cybol application "user_interface/ui/" with buttons for handling input in tui, gui, wui
  • Make cybol application "user_interface/gui/" work again with coloured rectangles on window expose event and printed message on mouse release event
  • Reorganise cybol application directory using sub categories
  • Replace outdated property name "part" with "destination" in all cybol applications using cybol operation "modify/empty"
  • Adapt all cybol applications to use operation "activate/enable" instead of old "live/sense"
Christian Heller


  • Add step-by-step development instructions for how to add a new communication channel
  • Add documentation "src/maintenance_properties.ods" comparing cybol startup/shutdown for various channels
  • Add documentation "src/communication_properties.ods" comparing cybol send/receive for various channels
  • Extend CMake test "test/terminal_sensor_test" and make it work
  • Clean up some CMake tests
Christian Heller