Exemple #1
0
        /// <summary>
        /// "set DEVICE-ID propName value"
        /// </summary>
        public Hashtable SetDeviceProp(String deviceId, String propName, String propValue)
        {
            Hashtable ret = new Hashtable();

            ret["status"] = "FAILED";

            DataType          type = DataType.UNDEF;
            MtpDevicePropCode code = KeyToPropCode(propName, ref type);

            byte[] val = MtpHelperUtils.StringToBytes(propValue, type);

            Connect(deviceId, () =>
            {
                MtpResponse res = command.Execute(MtpOperationCode.SetDevicePropValue, new uint[1] {
                    (uint)code
                }, val);
                if (res.ResponseCode == WpdMtpLib.MtpResponseCode.OK)
                {
                    ret["status"] = "OK";
                }
                else
                {
                    ret["status"] = String.Format("FAILED({0:X4})", (UInt16)res.ResponseCode);
                }
            });
            return(ret);
        }
Exemple #2
0
 static MtpDevicePropCode KeyToPropCode(String propName, ref DataType type)
 {
     type = DataType.UNDEF;
     try
     {
         MtpDevicePropCode code = (MtpDevicePropCode)_properties[propName][0];
         type = (DataType)_properties[propName][1];
         return(code);
     }
     catch (System.Collections.Generic.KeyNotFoundException)
     {
         throw new MtpHelperRuntimeException(String.Format("Invalid property key({0})", propName));
     }
 }
Exemple #3
0
        /// <summary>
        /// "desc DEVICE-ID propName"
        /// </summary>
        public Hashtable GetDevicePropDesc(String deviceId, String propName)
        {
            Hashtable ret = new Hashtable();

            ret["status"] = "FAILED";

            DataType          type = DataType.UNDEF;
            MtpDevicePropCode code = KeyToPropCode(propName, ref type);

            Connect(deviceId, () =>
            {
                MtpResponse res = command.Execute(MtpOperationCode.GetDevicePropDesc, new uint[1] {
                    (uint)code
                }, null);
                if (res.ResponseCode == WpdMtpLib.MtpResponseCode.OK)
                {
                    DevicePropDesc dpd           = new DevicePropDesc(res.Data);
                    ret["current"]               = dpd.CurrentValue;
                    ret["factory_default_value"] = dpd.FactoryDefaultValue;
                    ret["get_set"]               = dpd.GetSet;
                    if (dpd.FormFlag == 0x01)
                    {
                        // 範囲
                        ret["min"]  = dpd.Form[0];
                        ret["max"]  = dpd.Form[1];
                        ret["step"] = dpd.Form[2];
                    }
                    else if (dpd.FormFlag == 0x02)
                    {
                        // 配列
                        ret["values"] = dpd.Form;
                    }
                    else
                    {
                        ret["values"] = null;
                    }
                    ret["status"] = "OK";
                }
                else
                {
                    ret["status"] = String.Format("FAILED({0:X4})", (UInt16)res.ResponseCode);
                }
            });
            return(ret);
        }