using System;
using [Link];
using [Link];
using UsbLibrary;
namespace baiUSB
{
public partial class Form1 : Form
{
private bool isManualMode = false;
private bool isMode3Active = false;
private int lastHour = -1;
public Form1()
{
InitializeComponent();
[Link] = 0x04D8;
[Link] = 0x0001;
[Link] +=
usbHidPort1_OnSpecifiedDeviceArrived;
[Link] +=
usbHidPort1_OnSpecifiedDeviceRemoved;
[Link] += usbHidPort1_OnDataRecieved;
[Link] += button1_Click;
[Link] += button2_Click;
[Link] += button3_Click;
[Link] += button6_Click;
[Link] += button7_Click;
[Link] = 1000;
[Link] += timer1_Tick;
[Link]();
}
protected override void OnHandleCreated(EventArgs e)
{
[Link](e);
[Link](Handle);
}
protected override void WndProc(ref Message m)
{
[Link](ref m);
[Link](ref m);
}
private void button4_Click(object sender, EventArgs e)
{
[Link]();
}
private void button5_Click(object sender, EventArgs e)
{
[Link] = "Disconnected";
[Link] = [Link];
isManualMode = false;
isMode3Active = false;
[Link] = "Chế độ GUI";
[Link] = true;
[Link] = true;
[Link] = true;
}
private void button1_Click(object sender, EventArgs e)
{
if (isManualMode) return;
SendToDevice("A");
isMode3Active = false;
}
private void button2_Click(object sender, EventArgs e)
{
if (isManualMode) return;
SendToDevice("B");
isMode3Active = false;
}
private void button3_Click(object sender, EventArgs e)
{
if (isManualMode) return;
isMode3Active = true;
lastHour = -1;
SendMode3CommandByTime();
}
private void button6_Click(object sender, EventArgs e)
{
isManualMode = true;
isMode3Active = false;
[Link] = "Chế độ Thủ công";
[Link] = false;
[Link] = false;
[Link] = false;
SendToDevice("M");
}
private void button7_Click(object sender, EventArgs e)
{
isManualMode = false;
isMode3Active = false;
[Link] = "Chế độ Giao Diện";
[Link] = true;
[Link] = true;
[Link] = true;
SendToDevice("G");
}
private void timer1_Tick(object sender, EventArgs e)
{
[Link] = [Link]("HH:mm:ss");
if (isMode3Active && !isManualMode)
{
int hour = [Link];
if (hour != lastHour)
{
lastHour = hour;
SendMode3CommandByTime();
}
}
}
private void SendMode3CommandByTime()
{
var cmd = ([Link] >= 5 && [Link] < 22) ? "C" :
"B";
SendToDevice(cmd);
}
private void SendToDevice(string cmd)
{
if ([Link] == null)
{
[Link]("Thiết bị chưa kết nối!", "Lỗi",
[Link], [Link]);
return;
}
byte[] data = new byte[65];
data[0] = 0x00;
data[1] = (byte)cmd[0];
try
{
[Link](data);
}
catch (Exception ex)
{
[Link]($"Gửi dữ liệu lỗi: {[Link]}", "Lỗi",
[Link], [Link]);
}
}
private void usbHidPort1_OnDataRecieved(object sender,
DataRecievedEventArgs args)
{
BeginInvoke((Action)(() =>
{
char c = (char)[Link][1];
if (c == 'R') [Link] = [Link];
if (c == 'Y') [Link] = [Link];
if (c == 'G') [Link] = [Link];
}));
}
private void usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs
e)
{
[Link] = "Connected";
[Link] = [Link];
if (!isManualMode)
{
[Link] = true;
[Link] = true;
[Link] = true;
}
}
private void usbHidPort1_OnSpecifiedDeviceRemoved(object sender, EventArgs
e)
{
[Link] = "Disconnected";
[Link] = [Link];
[Link] = false;
[Link] = false;
[Link] = false;
}
private void usbHidPort1_OnDeviceArrived(object sender, EventArgs e) { }
private void usbHidPort1_OnDeviceRemoved(object sender, EventArgs e) { }
private void usbHidPort1_OnDataSend(object sender, EventArgs e) { }
private void textBox5_TextChanged(object sender, EventArgs e) { }
private void textBox7_TextChanged(object sender, EventArgs e) { }
private void label1_Click(object sender, EventArgs e) { }
private void textBox1_TextChanged(object sender, EventArgs e) { }
private void groupBox3_Enter(object sender, EventArgs e) { }
private void label5_Click(object sender, EventArgs e) { }
private void label6_Click(object sender, EventArgs e) { }
private void label7_Click(object sender, EventArgs e) { }
private void button3_Click_1(object sender, EventArgs e) { }
private void Form1_Load(object sender, EventArgs e) { }
private void label4_Click(object sender, EventArgs e) { }
private void button6_Click_1(object sender, EventArgs e) { }
}
}