Giter Club home page Giter Club logo

dbus-spy's Introduction

dbus-spy

dbus-spy is a debug tool intended for the Venus embedded Linux platform created by Victron Energy. This is the platform running on the CCGX and venus GX units. This application provides a realtime view on all properties published to the D-Bus. It is also possible to change the values of those properties (whenever the application publishing the property allows it).

On startup dbus-spy will present a list of all victron D-Bus services on the system (the one whose name starts with com.victronenergy. Those services are considered to be compatible with the methods and signals we need). When activated all properties within the service will be shown together with the current value. The values will be updated in realtime. It is also possible to change the value.

Keyboard shortcuts

  • left-arrow: open the selected D-Bus service and show the list of properties
  • right-arrow: go back to the service list
  • up/down-arrow, page up/down: move up/down (yes, really!)
  • enter: edit the value of the current property
  • t: switch between property values and text
  • q: quit the apllication. ctrl-c will do the same job
  • f: add the current item to the list of favorites. The item will light up after it has been added. Press 'f' again to remove it from the list.
  • F: switch to/from the favorites list.
  • r: refresh the screen

Compilation

dbus-spy relies on several external libraries:

  • QT-4.8
  • libncurses and libform5
  • velib This is the Victron Energy platform library. Unfortunately this library is not available as open source. Please contact Victron Energy if you need it.

You will also need the venus SDK. As of this moment you need to use version 1.40.

Some ceveats

  • There is an issue with some of the services that do not fully conform with the Victron standard: they will no supply a dictionary of all values when a GetValue method is called on the root element. The content if these services will not be shown.
  • The application is written in C++ and uses the QT framework for D-Bus communication. However, the GUI is done using ncurses. The reason for this odd combination is that dbus-spy started as a QT+QML application running on PC linux. Someday I decided that being able to run the application on the embedded device itself would be more useful. So I rewrote the GUI and kept the D-Bus code.
  • If you change a value of a property no checks are performed by the application. If the entered text strin parses to a floating point value, it will be sent to the D-Bus as a 'double' value. Otherwise, it will be parsed an integer. If that does not work, the string itself will be sent. The receiving application may expect another type and may refuse to handle the value.
  • Changing values on D-Bus services may be dangerous. Only do this if you know what you are doing.
  • The screen will not be redrawn when the size of the terminal changes. So chose it wisely before starting the application.

dbus-spy's People

Contributors

edevries-victron avatar ejvr avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.