Ejemplo n.º 1
0
        private void btnsetimpinjqt_Click(object sender, EventArgs e)
        {
            int ret;

            ret = IsAntSet();
            if (ret == -1)
            {
                MessageBox.Show("please select antenna");
                return;
            }
            else if (ret == 1)
            {
                DialogResult stat = DialogResult.OK;
                stat = MessageBox.Show("execute operation on the port without finding antenna ?", "tip-off",
                                       MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
                                       MessageBoxDefaultButton.Button2);
                if (stat != DialogResult.OK)
                {
                    return;
                }
            }

            byte[] pwd = null;

            ret = Form1.IsValidPasswd(this.tbaccesspasswd.Text.Trim());
            {
                switch (ret)
                {
                case -3:
                    MessageBox.Show("please input access password");
                    break;

                case -2:
                case -4:
                    MessageBox.Show("access password must be 8 of hexadecimal numbers");
                    break;

                case -1:
                    MessageBox.Show("access password must be 8 of hexadecimal numbers");
                    break;
                }
            }
            if (ret != 0)
            {
                return;
            }
            else
            {
                pwd = ByteFormat.FromHex(this.tbaccesspasswd.Text.Trim());
            }

            Gen2TagFilter filter = null;

            if (checkfilter(ref filter) != 0)
            {
                return;
            }

            if ((!this.rbimpinjqtread.Checked) && (!this.rbimpinjwrite.Checked))
            {
                MessageBox.Show("please select command type");
                return;
            }

            try
            {
                if (this.rbimpinjqtread.Checked)
                {
                    IMPINJ_M4_QtPara para = new IMPINJ_M4_QtPara(pwd);

                    IMPINJ_M4_QtResult qtret = (IMPINJ_M4_QtResult)mrdr.CustomCmd(filter, CustomCmdType.IMPINJ_M4_Qt, para);
                    if (qtret.MemType == IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Private)
                    {
                        this.rbimpinjqtmemprivate.Checked = true;
                    }
                    else
                    {
                        this.rbimpinjqtmempublic.Checked = true;
                    }
                    if (qtret.RangeType == IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_FarField)
                    {
                        this.rbimpinjqtfarfield.Checked = true;
                    }
                    else
                    {
                        this.rbimpinjqtnearfiled.Checked = true;
                    }
                }
                else
                {
                    if ((!rbimpinjqtnearfiled.Checked) && (!rbimpinjqtfarfield.Checked))
                    {
                        MessageBox.Show("please select reading distance");
                        return;
                    }
                    if ((!rbimpinjqtmemprivate.Checked) && (!rbimpinjqtmempublic.Checked))
                    {
                        MessageBox.Show("please select memory profile");
                        return;
                    }
                    if ((!rbimpinjqtperm.Checked) && (!rbimpinjqttemp.Checked))
                    {
                        MessageBox.Show("please select persistence type");
                        return;
                    }

                    IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type   trange   = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_Invalid;
                    IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Invalid;
                    IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type     tmem     = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Invalid;

                    if (rbimpinjqtnearfiled.Checked)
                    {
                        trange = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_NearField;
                    }
                    else
                    {
                        trange = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_FarField;
                    }
                    if (rbimpinjqtmemprivate.Checked)
                    {
                        tmem = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Private;
                    }
                    else
                    {
                        tmem = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Public;
                    }
                    if (rbimpinjqtperm.Checked)
                    {
                        tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Perm;
                    }
                    else
                    {
                        tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Temp;
                    }

                    IMPINJ_M4_QtPara para = new IMPINJ_M4_QtPara(pwd, tpersist, trange, tmem);
                    mrdr.CustomCmd(filter, CustomCmdType.IMPINJ_M4_Qt, para);
                }
            }
            catch (OpFaidedException notagexp)
            {
                if (notagexp.ErrCode == 0x400)
                {
                    MessageBox.Show("no tag");
                }
                else
                {
                    MessageBox.Show("operation failed:" + notagexp.ToString());
                }

                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show("operation failed:" + ex.ToString());
                return;
            }
        }
Ejemplo n.º 2
0
        private void btnsetimpinjqt_Click(object sender, EventArgs e)
        {
            int ret;

            ret = IsAntSet();
            if (ret == -1)
            {
                MessageBox.Show("请选择操作天线");
                return;
            }
            else if (ret == 1)
            {
                DialogResult stat = DialogResult.OK;
                stat = MessageBox.Show("在未检测到天线的端口执行操作,真的要执行吗?", "警告",
                                       MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
                                       MessageBoxDefaultButton.Button2);
                if (stat != DialogResult.OK)
                {
                    return;
                }
            }

            byte[] pwd = null;

            ret = Form1.IsValidPasswd(this.tbaccesspasswd.Text.Trim());
            {
                switch (ret)
                {
                case -3:
                    MessageBox.Show("访问密码不能为空");
                    break;

                case -2:
                case -4:
                    MessageBox.Show("访问密码必须是8个16进制数");
                    break;

                case -1:
                    MessageBox.Show("访问密码只能是16进制数字");
                    break;
                }
            }
            if (ret != 0)
            {
                return;
            }
            else
            {
                pwd = ByteFormat.FromHex(this.tbaccesspasswd.Text.Trim());
            }

            Gen2TagFilter filter = null;

            if (checkfilter(ref filter) != 0)
            {
                return;
            }

            if ((!this.rbimpinjqtread.Checked) && (!this.rbimpinjwrite.Checked))
            {
                MessageBox.Show("请选择命令类型");
                return;
            }

            try
            {
                if (this.rbimpinjqtread.Checked)
                {
                    IMPINJ_M4_QtPara para = new IMPINJ_M4_QtPara(pwd);

                    IMPINJ_M4_QtResult qtret = (IMPINJ_M4_QtResult)mrdr.CustomCmd(filter, CustomCmdType.IMPINJ_M4_Qt, para);
                    if (qtret.MemType == IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Private)
                    {
                        this.rbimpinjqtmemprivate.Checked = true;
                    }
                    else
                    {
                        this.rbimpinjqtmempublic.Checked = true;
                    }
                    if (qtret.RangeType == IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_FarField)
                    {
                        this.rbimpinjqtfarfield.Checked = true;
                    }
                    else
                    {
                        this.rbimpinjqtnearfiled.Checked = true;
                    }
                }
                else
                {
                    if ((!rbimpinjqtnearfiled.Checked) && (!rbimpinjqtfarfield.Checked))
                    {
                        MessageBox.Show("请选择识别距离");
                        return;
                    }
                    if ((!rbimpinjqtmemprivate.Checked) && (!rbimpinjqtmempublic.Checked))
                    {
                        MessageBox.Show("请选择内存视图");
                        return;
                    }
                    if ((!rbimpinjqtperm.Checked) && (!rbimpinjqttemp.Checked))
                    {
                        MessageBox.Show("请选择状态类型");
                        return;
                    }

                    IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type   trange   = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_Invalid;
                    IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Invalid;
                    IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type     tmem     = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Invalid;

                    if (rbimpinjqtnearfiled.Checked)
                    {
                        trange = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_NearField;
                    }
                    else
                    {
                        trange = IMPINJ_M4_QtPara.IMPINJ_Qt_Range_Type.IMPINJ_Qt_Range_FarField;
                    }
                    if (rbimpinjqtmemprivate.Checked)
                    {
                        tmem = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Private;
                    }
                    else
                    {
                        tmem = IMPINJ_M4_QtPara.IMPINJ_Qt_Mem_Type.IMPINJ_Qt_Mem_Public;
                    }
                    if (rbimpinjqtperm.Checked)
                    {
                        tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Perm;
                    }
                    else
                    {
                        tpersist = IMPINJ_M4_QtPara.IMPINJ_Qt_Persist_Type.IMPINJ_Qt_Persist_Temp;
                    }

                    IMPINJ_M4_QtPara para = new IMPINJ_M4_QtPara(pwd, tpersist, trange, tmem);
                    mrdr.CustomCmd(filter, CustomCmdType.IMPINJ_M4_Qt, para);
                }
            }
            catch (OpFaidedException notagexp)
            {
                if (notagexp.ErrCode == 0x400)
                {
                    MessageBox.Show("没法发现标签");
                }
                else
                {
                    MessageBox.Show("操作失败:" + notagexp.ToString());
                }

                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show("操作失败:" + ex.ToString());
                return;
            }
        }