source: project/release/4/dbus/trunk/examples/introspect-connman.scm

Last change on this file was 26046, checked in by ecloud, 9 years ago

Can send structs too. Free some of the mallocs.

File size: 1.5 KB
Line 
1;(use dbus)
2(use (prefix dbus dbus:))
3
4(define connman-bus dbus:system-bus) ;; in real life
5; (define connman-bus dbus:session-bus) ;; for connman-simulator without root privs
6
7(define ctxt (dbus:make-context
8        bus: connman-bus
9        service: 'net.connman
10))
11
12; (display (dbus:discover-api-xml ctxt))
13
14(define (device-properties device)
15  (let ((c (dbus:make-context bus: connman-bus
16                              service: 'net.connman
17                              interface: 'net.connman.Service
18                              path: device)))
19    (dbus:call c "GetProperties")))
20
21(define mgr-ctxt (dbus:make-context bus: connman-bus
22        service: 'net.connman interface: 'net.connman.Manager))
23
24(printf "~%==== Manager Technologies:~%")
25(pretty-print (dbus:call mgr-ctxt "GetTechnologies"))
26
27(printf "~%==== Manager Services:~%")
28(pretty-print (dbus:call mgr-ctxt "GetServices"))
29
30;(dbus:auto-unbox-structs #t)
31;(dbus:auto-unbox-variants #t)
32
33(printf "~%==== Clock Properties:~%")
34(define clock-ctxt (dbus:make-context bus: connman-bus
35        service: 'net.connman interface: 'net.connman.Clock))
36(pretty-print (dbus:call clock-ctxt "GetProperties"))
37
38(printf "~%==== Manager Properties:~%")
39(let ([mgr-props (dbus:call mgr-ctxt "GetProperties")])
40        (pretty-print mgr-props)
41        (let ([ifaces (assoc "Services" (vector->list (car mgr-props)))])
42                (when (pair? ifaces)
43                        (set! ifaces (vector->list (cdr ifaces)))
44
45(printf "~%==== Network interface Properties:~%")
46                        (for-each (lambda (path)
47                                        (printf "---- ~a~%" path)
48                                        (pp (device-properties path))
49                                ;       (pp (vector->list (car (device-properties path))))
50                                ) ifaces)
51                )))
52
53;(sleep 1)
54(exit)
Note: See TracBrowser for help on using the repository browser.