<?xml version="1.0" encoding="UTF-8" ?>

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.chromium.ModemManager.Modem.Gobi">
    <tp:docstring>
      Gobi-specific features for use in test and debugging.  
    </tp:docstring>

    <method name="PowerCycle">
      <tp:docstring>
        Tells the modem to power cycle itself.
      </tp:docstring>
    </method>

    <method name="SetCarrier">
      <tp:docstring>
          Prepares the modem to use the given carrier. Modem will
          reset after this is called.
      </tp:docstring>
      <arg name="image" type="s" direction="in">
        <tp:docstring>
          Name of carrier.
        </tp:docstring>
      </arg>
    </method>

    <method name="SoftReset">
      <tp:docstring>
          Tells the module to do a soft reset and waits for the reset to complete.
      </tp:docstring>
    </method>

    <method name="RequestEvents">
      <tp:docstring>
        Requests notification (or not) of a particular event occuring. Multiple
        notifications may be enabled at the same time.
      </tp:docstring>
      <arg name="events" type="s" direction="in">
        <tp:docstring>
          A string describing which events are to be enabled or disabled. This
          string contains zero or more directives of the form '[+-]event', like
          '+foo-bar+baz'.
          Allowable events are currently:
            dormancy
            *, meaning all events
        </tp:docstring>
      </arg>
    </method>

    <method name="SetAutomaticTracking">
      <tp:docstring>
        Turn automatic tracking on and off
      </tp:docstring>
      <arg name="service_enable" type="b" direction="in">
        <tp:docstring>
          Value for service automatic tracking.
        </tp:docstring>
      </arg>
      <arg name="port_enable" type="b" direction="in">
        <tp:docstring>
          Value for port automatic tracking.
        </tp:docstring>
      </arg>
    </method>

    <method name="InjectFault">
      <tp:docstring>
        Tells the modem to power cycle itself.
      </tp:docstring>
      <arg name="type" type="s" direction="in">
        <tp:docstring>
          Type of fault to introduce, currently only QmiRequestError.
        </tp:docstring>
      </arg>
      <arg name="value" type="i" direction="in">
        <tp:docstring>
          Argument to that fault 
        </tp:docstring>
      </arg>
    </method>

    <method name="SetNetworkPreference">
      <tp:docstring>
        Sets the network registration preference.
      </tp:docstring>
      <arg name="protocol" type="i" direction="in">
        <tp:docstring>
          Indicate which protocol to register with:
            0: Automatic
            1: CDMA 1xRTT
            2: CDMA 1xEV-DO
            3: GSM
            4: WCDMA
        </tp:docstring>
      </arg>
    </method>

    <method name="ForceModemActivatedStatus">
      <tp:docstring>
        Forces the modem to indicate that it has been activated.
      </tp:docstring>
    </method>

    <signal name="DormancyStatus">
      <tp:docstring>
        Indicates that the dormancy status of the modem changed.
      </tp:docstring>
      <arg name="dormant" type="b">
        <tp:docstring>
          True if the modem is dormant; false otherwise.
        </tp:docstring>
      </arg>
    </signal>
  </interface>
</node>
