초기 커밋.

This commit is contained in:
2025-12-17 12:40:51 +09:00
parent e8d195c03e
commit 368acb1aa8
184 changed files with 95393 additions and 0 deletions

View File

@@ -0,0 +1,285 @@
using DevExpress.XtraEditors;
using DevExpress.XtraRichEdit.Import.Doc;
using LFP_Manager.DataStructure;
using LFP_Manager.Function;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
namespace LFP_Manager.Controls
{
public partial class UcAntiTheftControl : DevExpress.XtraEditors.XtraUserControl
{
#region DELEGATE
public delegate void setCalibUpdate(object sender);
public delegate void setCalibCommand(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
public delegate Int32 getBattData(int item, int cno);
#endregion
#region VARIABLES
private int SystemId = 0;
private const int CALC_INDEX = 6;
private DeviceParamData rParam;
private DeviceCalibration rCalib;
private DeviceCalibration wCalib;
public event setCalibCommand OnCommand = null;
public event getBattData OnGetBattData = null;
public event SendDataUartEvent OnSendUartData = null;
#endregion
#region CONSTRUCTORS
public UcAntiTheftControl()
{
InitializeComponent();
TmrDisplay.Enabled = true;
}
#endregion
#region EXT EVENT FUNCTION
private void OnCommnadEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
{
OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib);
}
private Int32 OnGetBattDataEvent(int item, int cno)
{
Int32 result = 0;
if (OnGetBattData != null)
{
result = OnGetBattData(item, cno);
}
return result;
}
#endregion
#region PUBLIC FUCTIONS
public void UpdateData(int sId, DeviceCalibration aCalib)
{
SystemId = sId;
rCalib = aCalib;
}
#endregion
#region DISPLAY DATA
private void DisplayAntiTheft()
{
if (rCalib != null)
{
TeTimeOutSet.Text = string.Format("{0}", rCalib.AntiTheftComm.TimeOut);
TeFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftComm.FuncSwitch);
TeGyroXAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.XAxis);
TeGyroYAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.YAxis);
TeGyroZAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.ZAxis);
TeGyroPolSel.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroPolicySel);
TeGyroFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroFuncSwitch);
TeGyroState.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroState);
}
}
#endregion
#region BUTTON EVENT
private void BtnCommUnlock_Click(object sender, EventArgs e)
{
AntiTheftCommParamWrite(0x3001, 0);
}
private void BtnATCommTimeoutSet_Click(object sender, EventArgs e)
{
if (TeTimeOutSetNew.Text != "")
{
int tmp = Convert.ToInt32(TeTimeOutSetNew.Text);
AntiTheftCommParamWrite(0x3000, tmp);
}
}
private void BtnATCommFuncSwSet_Click(object sender, EventArgs e)
{
if (TeFunctionSwitchNew.Text != "")
{
int tmp = Convert.ToInt32(TeFunctionSwitchNew.Text);
AntiTheftCommParamWrite(0x3002, tmp);
}
}
private void BtnGyroUnlock_Click(object sender, EventArgs e)
{
GyroScopeParamWrite(0x4007, 1);
}
private void MultiDateWriteCmd(ushort addr, int data, int len)
{
byte[] crc;
int i = 0;
// Normal mode --> Bootloader mode
byte[] sdata = new byte[7 + 2 + 2];
sdata[i++] = (byte)SystemId; // Device ID
sdata[i++] = (byte)CsSerialCommFunctionDelta.PRESET_MULTI_REG; // Command
sdata[i++] = (byte)(addr >> 8); // Write Register Address MSB
sdata[i++] = (byte)(addr >> 0); // Write Register Address LSB
sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
sdata[i++] = (byte)(data >> 8);
sdata[i++] = (byte)(data >> 0);
crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
sdata[i++] = crc[0]; // CRCH
sdata[i++] = crc[1]; // CRCL
OnSendUartData?.Invoke(addr, sdata, false, 1);
}
private void BtnGyroXAxisSet_Click(object sender, EventArgs e)
{
if (TeGyroXAxisNew.Text != "")
{
int tmp = Convert.ToInt32(TeGyroXAxisNew.Text);
wCalib = rCalib.DeepCopy();
wCalib.AntiTheftGyro.XAxis = tmp;
OnCommand?.Invoke(26, CALC_INDEX, 1, ref rParam, ref wCalib);
}
}
private void BtnGyroYAxisSet_Click(object sender, EventArgs e)
{
if (TeGyroYAxisNew.Text != "")
{
int tmp = Convert.ToInt32(TeGyroYAxisNew.Text);
wCalib = rCalib.DeepCopy();
wCalib.AntiTheftGyro.YAxis = tmp;
OnCommand?.Invoke(27, CALC_INDEX, 1, ref rParam, ref wCalib);
}
}
private void BtnGyroZAxisSet_Click(object sender, EventArgs e)
{
if (TeGyroZAxisNew.Text != "")
{
int tmp = Convert.ToInt32(TeGyroZAxisNew.Text);
wCalib = rCalib.DeepCopy();
wCalib.AntiTheftGyro.ZAxis = tmp;
OnCommand?.Invoke(28, CALC_INDEX, 1, ref rParam, ref wCalib);
}
}
private void GyroScopeParamWrite(ushort waddr, int data)
{
byte[] crc;
ushort raddr = 0x4000;
int i = 0;
// Normal mode --> Bootloader mode
byte[] sdata = new byte[11 + 2 + 2];
sdata[i++] = (byte)SystemId; // Device ID
sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command
sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
sdata[i++] = (byte)(7 >> 8); // Read Count of Register MSB
sdata[i++] = (byte)(7 >> 0); // Read Count of Register LSB
sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
sdata[i++] = (byte)(data >> 8);
sdata[i++] = (byte)(data >> 0);
crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
sdata[i++] = crc[1]; // CRCH
sdata[i++] = crc[0]; // CRCL
OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
}
private void AntiTheftCommParamWrite(ushort waddr, int data)
{
byte[] crc;
ushort raddr = 0x3000;
int i = 0;
// Normal mode --> Bootloader mode
byte[] sdata = new byte[11 + 2 + 2];
sdata[i++] = (byte)SystemId; // Device ID
sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command
sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
sdata[i++] = (byte)(3 >> 8); // Read Count of Register MSB
sdata[i++] = (byte)(3 >> 0); // Read Count of Register LSB
sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
sdata[i++] = (byte)(data >> 8);
sdata[i++] = (byte)(data >> 0);
crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
sdata[i++] = crc[1]; // CRCH
sdata[i++] = crc[0]; // CRCL
OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
}
private void BtnGyroPolSel_Click(object sender, EventArgs e)
{
if (TeGyroPolSelNew.Text != "")
{
int tmp = Convert.ToInt32(TeGyroPolSelNew.Text);
GyroScopeParamWrite(0x4003, tmp);
}
}
private void BtnFuncSw_Click(object sender, EventArgs e)
{
if (TeGyroFunctionSwitchNew.Text != "")
{
int tmp = Convert.ToInt32(TeGyroFunctionSwitchNew.Text);
GyroScopeParamWrite(0x4004, tmp);
}
}
private void BtnGyroState_Click(object sender, EventArgs e)
{
}
#endregion
#region TIMER EVENT
private void TmrDisplay_Tick(object sender, EventArgs e)
{
DisplayAntiTheft();
}
#endregion
}
}