C# 摩托罗拉MC2180 EMDK-获取扫描数据

C# 摩托罗拉MC2180 EMDK-获取扫描数据,c#,visual-studio-2008,barcode-scanner,motorola-emdk,C#,Visual Studio 2008,Barcode Scanner,Motorola Emdk,我一直在努力从摩托罗拉MC2180获取扫描数据。我知道这是基本的,但我是一个初学者,以前从未接触过PDA。我可以让它扫描,但结果数据仍然为空。我使用以下代码: { public Symbol.Barcode.Reader SymbolReader = null; public Symbol.Barcode.ReaderData SymbolReaderData = null; public static System.EventHandler SymbolEven

我一直在努力从摩托罗拉MC2180获取扫描数据。我知道这是基本的,但我是一个初学者,以前从未接触过PDA。我可以让它扫描,但结果数据仍然为空。我使用以下代码:

    {
    public Symbol.Barcode.Reader SymbolReader = null;
    public Symbol.Barcode.ReaderData SymbolReaderData = null;
    public static System.EventHandler SymbolEventHandler = null;

    /// <summary>
    /// MyReaderData property provides access to the ReaderData 
    /// </summary>
    public Symbol.Barcode.ReaderData MyReaderData
    {
        get { return SymbolReader.GetNextReaderData(); }
    }

    public static System.EventHandler MyEventHandler
    {
        get { return SymbolEventHandler; }
        set { SymbolEventHandler = value; }
    }

    public bool InitScanner()
    {
        try
        {
            SymbolReader = new Symbol.Barcode.Reader();
            SymbolReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel);
            SymbolReader.Actions.Enable();
            SymbolReader.Parameters.Feedback.Success.BeepTime = 0;
            SymbolReader.Parameters.Feedback.Success.WaveFile = "\\windows\\alarm3.wav";
        }

        catch(Exception ex)
        {
            ex.ToString();
        }

        return true;
    }

    public void TermReader()
    {
        try
        {
            if (SymbolReader != null)
            {
                SymbolReader.Actions.Disable();
                SymbolReader.Actions.Dispose();
                SymbolReader = null;
            }
        }
        catch (Exception ex)
        {
            ex.ToString();
        }
    }

    private bool ReadData()
    {
        {
            try
            {
                // Submit a read
                SymbolReader.ReadNotify += SymbolEventHandler;

                // Prevent duplicate reads
                if (!SymbolReaderData.IsPending)
                {
                    SymbolReader.Actions.Read(SymbolReaderData);

                    return true;
                }
                else
                    return false;
            }
            catch (Exception ex)
            {
                ex.ToString();
                return false;
            }
        }
    }

    public string StopRead()
    {
        if (SymbolReader != null)
        {
            try
            {
                // Flush (Cancel all pending reads)
                SymbolReader.ReadNotify -= SymbolEventHandler;
                SymbolReader.Actions.Flush();
                return "Closed";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }
        else
            return "Already Closed";
    }

    public string ToggleTrigger()
    {
        this.InitScanner();
        SymbolReader.Actions.ToggleSoftTrigger();
        this.ReadData();
        return SymbolReaderData.Text;
    }
}
{
public Symbol.Barcode.Reader SymbolReader=null;
public Symbol.Barcode.ReaderData SymbolReaderData=null;
public static System.EventHandler SymbolEventHandler=null;
/// 
///MyReaderData属性提供对ReaderData的访问
/// 
public Symbol.Barcode.ReaderData MyReaderData
{
获取{return SymbolReader.getNextraderData();}
}
公共静态System.EventHandler MyEventHandler
{
获取{return SymbolEventHandler;}
设置{SymbolEventHandler=value;}
}
公共bool InitScanner()
{
尝试
{
SymbolReader=新的Symbol.Barcode.Reader();
SymbolReaderData=新Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text,Symbol.Barcode.ReaderDataLength.MaximumLabel);
SymbolReader.Actions.Enable();
SymbolReader.Parameters.Feedback.Success.BeepTime=0;
SymbolReader.Parameters.Feedback.Success.WaveFile=“\\windows\\alarm3.wav”;
}
捕获(例外情况除外)
{
例如ToString();
}
返回true;
}
公共无效术语读取器()
{
尝试
{
如果(符号读取器!=null)
{
SymbolReader.Actions.Disable();
SymbolReader.Actions.Dispose();
SymbolReader=null;
}
}
捕获(例外情况除外)
{
例如ToString();
}
}
私有bool ReadData()
{
{
尝试
{
//提交阅读材料
SymbolReader.ReadNotify+=SymbolEventHandler;
//防止重复读取
如果(!SymbolReaderData.IsPending)
{
SymbolReader.Actions.Read(SymbolReaderData);
返回true;
}
其他的
返回false;
}
捕获(例外情况除外)
{
例如ToString();
返回false;
}
}
}
公共字符串StopRead()
{
如果(符号读取器!=null)
{
尝试
{
//刷新(取消所有挂起的读取)
SymbolReader.ReadNotify-=SymbolEventHandler;
SymbolReader.Actions.Flush();
返回“关闭”;
}
捕获(例外情况除外)
{
返回例如ToString();
}
}
其他的
返回“已关闭”;
}
公共字符串ToggleTrigger()
{
this.InitScanner();
SymbolReader.Actions.ToggleSoftTrigger();
这是ReadData();
返回SymbolReaderData.Text;
}
}
我试图使用EMDK支持站点,但它一直将我锁定在外,因为它正在进行维护

我的主要问题是: 1.扫描后获取数据-我不确定它如何解码条形码数据 2.如何使扫描仪触发更长时间?因为我可以使用Barcode2.Config.TriggerMode来扫描比Barcode.Reader.ToggleSoftTrigger()更长的时间

我可能需要一个解释,因为我无法访问EMDK指南或文档没有帮助:(


提前谢谢!:)

试试看。您需要从那里下载当前的EMDK并安装它。有了它,你会得到很多样品,你可以尝试不同的东西。安装的EMDK中还包含一个帮助文件。

请注意,Zebra Technologies于2014年10月收购了摩托罗拉解决方案企业业务。这就是为什么我在这里说的是斑马,甚至这些设备可能是摩托罗拉或Symbol品牌的

您最好的选择是从Zebra Technologies的EMDK for.NET中包含的示例应用程序开始,最新版本是Zebra支持站点上提供的v2.9

EMDK和独立指南是公共软件,您无需登录即可下载


请记住,要使用EMDK为MC2180编写应用程序,您需要VisualStudio 2005+SP1或VisualStudio 2008。这是唯一两个支持Windows CE 6.0的Microsoft开发工具版本。较新版本的Microsoft VisualStudio不支持此操作系统。

它正在扫描这一事实意味着扫描仪正在工作,但最终我发现需要打开DataWedget才能从扫描仪获取任何扫描数据。我会说oops,但我看不出来,因为我还是一个初学者。