using FastReport.Controls;
using FastReport.Editor;
using FastReport.Utils;
using System;
using System.Windows.Forms;
namespace FastReport.Forms
{
public partial class RFIDLabelEditorForm : BaseDialogForm
{
public RFIDLabel RFID { get; set; }
public RFIDLabelEditorForm()
{
InitializeComponent();
Localize();
UIUtils.CheckRTL(this);
UpdateDpiDependencies();
}
private void RFIDLabelEditor_Load(object sender, EventArgs e)
{
cbAccesPasswordMode.Items.AddRange(new object[] { "Unlock", "Lock", "Open", "Protected" });
cbKillPasswordMode.Items.AddRange(new object[] { "Unlock", "Lock", "Open", "Protected" });
cbECPBankMode.Items.AddRange(new object[] { "Unlock", "Lock", "Open", "Protected" });
cbUserBankMode.Items.AddRange(new object[] { "Unlock", "Lock", "Open", "Protected" });
cbEPCDataFormat.Items.AddRange(new object[] { "Hex", "ASCII" });
cbFormatTIDBank.Items.AddRange(new object[] { "Hex", "ASCII" });
cbUserDataFormat.Items.AddRange(new object[] { "Hex", "ASCII" });
cbErrorHandleMode.Items.AddRange(new object[] { "None", "Pause mode", "Erorr mode" });
tbKillPassword.Text = RFID.KillPassword;
cbKillPasswordMode.SelectedIndex = ToIndex(RFID.LockKillPassword);
tbAccessPassword.Text = RFID.AccessPassword;
cbAccesPasswordMode.SelectedIndex = ToIndex(RFID.LockAccessPassword);
cbFormatTIDBank.SelectedIndex = ToIndex(RFID.TIDBank.DataFormat);
tbTID.Text = RFID.TIDBank.Data;
cbEPCDataFormat.SelectedIndex = ToIndex(RFID.EpcBank.DataFormat);
tbEPC.Text = RFID.EpcBank.Data;
tbEPCFormat.Text = RFID.EpcFormat;
cbECPBankMode.SelectedIndex = ToIndex(RFID.LockEPCBank);
cbUseAdjust.Checked = RFID.UseAdjustForEPC;
cbRewriteEPC.Checked = RFID.RewriteEPCbank;
cbUserDataFormat.SelectedIndex = ToIndex(RFID.UserBank.DataFormat);
tbUserData.Text = RFID.UserBank.Data;
cbUserBankMode.SelectedIndex = ToIndex(RFID.LockUserBank);
nudStartPermalock.Value = RFID.StartPermaLock;
nudCountPermalock.Value = RFID.CountPermaLock;
cbAdaptiveAntenna.Checked = RFID.AdaptiveAntenna;
cbErrorHandleMode.SelectedIndex = ToIndex(RFID.ErrorHandle);
nudReadPower.Value = RFID.ReadPower;
nudWritePower.Value = RFID.WritePower;
tbAccessPasswordDataColumn.Text = RFID.AccessPasswordDataColumn;
tbKillPasswordDataColumn.Text = RFID.KillPasswordDataColumn;
tbEPCDataColumn.Text = RFID.EpcBank.DataColumn;
tbUserDataColumn.Text = RFID.UserBank.DataColumn;
tbTIDDataColumn.Text = RFID.TIDBank.DataColumn;
}
private void RFIDLabelEditor_FormClosed(object sender, FormClosedEventArgs e)
{
RFID.KillPassword = tbKillPassword.Text;
RFID.LockKillPassword = ConvertMode(cbKillPasswordMode.SelectedIndex);
RFID.AccessPassword = tbAccessPassword.Text;
RFID.LockAccessPassword = ConvertMode(cbAccesPasswordMode.SelectedIndex);
RFID.TIDBank.DataFormat = ConvertFormat(cbFormatTIDBank.SelectedIndex);
RFID.TIDBank.Data = tbTID.Text;
RFID.EpcBank.DataFormat = ConvertFormat(cbEPCDataFormat.SelectedIndex);
RFID.EpcBank.Data = tbEPC.Text;
RFID.EpcFormat = tbEPCFormat.Text;
RFID.LockEPCBank = ConvertMode(cbECPBankMode.SelectedIndex);
RFID.UseAdjustForEPC = cbUseAdjust.Checked;
RFID.RewriteEPCbank = cbRewriteEPC.Checked;
RFID.UserBank.DataFormat = ConvertFormat(cbUserDataFormat.SelectedIndex);
RFID.UserBank.Data = tbUserData.Text;
RFID.LockUserBank = ConvertMode(cbUserBankMode.SelectedIndex);
RFID.StartPermaLock = (int)nudStartPermalock.Value;
RFID.CountPermaLock = (int)nudCountPermalock.Value;
RFID.AdaptiveAntenna = cbAdaptiveAntenna.Checked;
RFID.ErrorHandle = ConvertErrorHandleMode(cbErrorHandleMode.SelectedIndex);
RFID.ReadPower = (short)nudReadPower.Value;
RFID.WritePower = (short)nudWritePower.Value;
RFID.AccessPasswordDataColumn = tbAccessPasswordDataColumn.Text;
RFID.KillPasswordDataColumn = tbKillPasswordDataColumn.Text;
RFID.EpcBank.DataColumn = tbEPCDataColumn.Text;
RFID.UserBank.DataColumn = tbUserDataColumn.Text;
RFID.TIDBank.DataColumn = tbTIDDataColumn.Text;
}
private RFIDLabel.LockType ConvertMode(int index)
{
switch (index)
{
case 0:
return RFIDLabel.LockType.Unlock;
case 1:
return RFIDLabel.LockType.Lock;
case 2:
return RFIDLabel.LockType.Open;
case 3:
return RFIDLabel.LockType.Protect;
default:
return RFIDLabel.LockType.Unlock;
}
}
private RFIDLabel.RFIDBank.Format ConvertFormat(int index)
{
switch (index)
{
case 0:
return RFIDLabel.RFIDBank.Format.Hex;
case 1:
return RFIDLabel.RFIDBank.Format.ASCII;
default:
return RFIDLabel.RFIDBank.Format.Hex;
}
}
private RFIDLabel.EErrorHandle ConvertErrorHandleMode(int index)
{
switch (index)
{
case 0:
return RFIDLabel.EErrorHandle.None;
case 1:
return RFIDLabel.EErrorHandle.PauseMode;
default:
return RFIDLabel.EErrorHandle.ErrorMode;
}
}
private int ToIndex(RFIDLabel.EErrorHandle value)
{
switch (value)
{
case RFIDLabel.EErrorHandle.None:
return 0;
case RFIDLabel.EErrorHandle.PauseMode:
return 1;
case RFIDLabel.EErrorHandle.ErrorMode:
return 2;
default:
return 0;
}
}
private int ToIndex(RFIDLabel.RFIDBank.Format value)
{
switch (value)
{
case RFIDLabel.RFIDBank.Format.Hex:
return 0;
case RFIDLabel.RFIDBank.Format.ASCII:
return 1;
default:
return 0;
}
}
private int ToIndex(RFIDLabel.LockType value)
{
switch (value)
{
case RFIDLabel.LockType.Unlock:
return 0;
case RFIDLabel.LockType.Lock:
return 1;
case RFIDLabel.LockType.Open:
return 2;
case RFIDLabel.LockType.Protect:
return 3;
default:
return 0;
}
}
private void TbAccessPassword_TextChanged(object sender, EventArgs e)
{
if (tbAccessPassword.Text != "" && tbAccessPassword.Text != "00000000")
{
cbECPBankMode.Enabled = true;
cbAccesPasswordMode.Enabled = true;
cbKillPasswordMode.Enabled = true;
cbUserBankMode.Enabled = true;
}
else
{
cbECPBankMode.Enabled = false;
cbAccesPasswordMode.Enabled = false;
cbKillPasswordMode.Enabled = false;
cbUserBankMode.Enabled = false;
}
}
private void CbRewriteEPC_CheckedChanged(object sender, System.EventArgs e)
{
cbUseAdjust.Enabled = !cbRewriteEPC.Checked;
}
private void CbUseAdjust_CheckedChanged(object sender, System.EventArgs e)
{
cbRewriteEPC.Enabled = !cbUseAdjust.Checked;
}
private void TbDataColumn_ButtonClick(object sender, System.EventArgs e)
{
TextBoxButton textBox = sender as TextBoxButton;
using (TextEditorForm form = new TextEditorForm(RFID.Report))
{
form.ExpressionText = textBox.Text;
form.Brackets = "[,]";
if (form.ShowDialog() == DialogResult.OK)
{
textBox.Text = form.ExpressionText;
}
}
}
///
public override void UpdateDpiDependencies()
{
base.UpdateDpiDependencies();
tbAccessPasswordDataColumn.Image = this.GetImage(52);
tbKillPasswordDataColumn.Image = this.GetImage(52);
tbEPCDataColumn.Image = this.GetImage(52);
tbUserDataColumn.Image = this.GetImage(52);
tbTIDDataColumn.Image = this.GetImage(52);
}
///
public override void Localize()
{
base.Localize();
MyRes res = new MyRes("Forms,RFIDLabelEditor");
Text = res.Get("");
pageReservedBank.Text = res.Get("ReservedBank");
gbReservedBank.Text = res.Get("ReservedBank");
lbAccessPassword.Text = res.Get("AccessPassword");
lbAccessPassWriteMode.Text = res.Get("AccessPassWriteMode");
lbKillPassword.Text = res.Get("KillPassword");
lbKillPassWriteMode.Text = res.Get("KillPassWriteMode");
lbAccessDataColumn.Text = res.Get("DataColumn");
lbKillDataColumn.Text = res.Get("DataColumn");
pageTIDBank.Text = res.Get("TIDBank");
gbTIDBank.Text = res.Get("TIDBank");
lbTID.Text = res.Get("TID");
lbTIDDataFormat.Text = res.Get("DataFormat");
lbTIDDataColumn.Text = res.Get("DataColumn");
pageEPCBank.Text = res.Get("EPCBank");
gbEPCBank.Text = res.Get("EPCBankFullName");
lbEPCDataFormat.Text = res.Get("DataFormat");
lbEPCFormat.Text = res.Get("EPCFormat");
lbEPC.Text = res.Get("EPC");
lbEPCBankMode.Text = res.Get("EPCBankMode");
cbUseAdjust.Text = res.Get("UseAdjust");
cbRewriteEPC.Text = res.Get("RewriteEPC");
lbEPCDataColumn.Text = res.Get("DataColumn");
pageUserBank.Text = res.Get("UserBank");
gbUserBank.Text = res.Get("UserBank");
lbUserDataFormat.Text = res.Get("DataFormat");
lbUserData.Text = res.Get("UserData");
lbUserBankMode.Text = res.Get("UserBankMode");
lbStartPermalock.Text = res.Get("StartPermalock");
lbCountPermalock.Text = res.Get("CountPermalock");
lbUserDataColumn.Text = res.Get("DataColumn");
pageOther.Text = res.Get("Other");
gbOther.Text = res.Get("Other");
cbAdaptiveAntenna.Text = res.Get("AdaptiveAntenna");
lbReadPower.Text = res.Get("ReadPower");
lbWritePower.Text = res.Get("WritePower");
lbErrorHandleMode.Text = res.Get("ErrorHandleMode");
}
}
}