Ejemplo n.º 1
0
        /// <summary>
        ///     Sets an attribute on the scanner given a ScannerAttribute object.
        /// </summary>
        /// <param name="attribute">ScannerAttribute object containing identification info and the value of the attribute to set.</param>
        protected void SetAttribute(ScannerAttribute attribute)
        {
            var    xml = string.Format(_setAttributeXml, attribute.Id, (char)attribute.DataType, attribute.Value);
            string outXml;
            int    status;

            _scannerDriver.ExecCommand((int)ScannerCommand.AttrStore, ref xml, out outXml, out status);
            var s = (StatusCode)status;

            if (s != StatusCode.Success)
            {
                throw new ScannerException(s);
            }

            _scannerDriver.ExecCommand((int)ScannerCommand.SetParameterPersistence, ref xml, out outXml, out status);
            s = (StatusCode)status;
            if (s != StatusCode.Success)
            {
                throw new ScannerException(s);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Get an attribute from the scanner given it's ID.
        /// </summary>
        /// <param name="id">Attribute ID</param>
        /// <returns>ScannerAttribute object holding identification info and the value of the attribute.</returns>
        protected ScannerAttribute GetAttribute(ushort id)
        {
            var    xml = string.Format(_getAttributesXml, id);
            string outXml;
            int    status;

            _scannerDriver.ExecCommand((int)ScannerCommand.AttrGet, ref xml, out outXml, out status);
            var s = (StatusCode)status;

            if (s != StatusCode.Success)
            {
                throw new ScannerException(s);
            }

            if (outXml == null)
            {
                return(null);
            }
            var doc          = XDocument.Parse(outXml);
            var xmlAttribute = doc.Descendants("attribute").Single();
            var name         = xmlAttribute.Descendants("name").Single().Value;
            var dataType     = (DataType)xmlAttribute.Descendants("datatype").Single().Value[0];
            var permission   = xmlAttribute.Descendants("permission").Single().Value[0];
            var stringValue  = xmlAttribute.Descendants("value").Single().Value;
            var value        = ValueConverters.StringToActualType(dataType, stringValue);

            var retval = new ScannerAttribute
            {
                Id         = id,
                Name       = name,
                DataType   = dataType,
                Permission = permission,
                Value      = value
            };

            return(retval);
        }