|
@@ -29,6 +29,7 @@ namespace AwInitilizer
|
|
|
{
|
|
|
private string barCode = string.Empty;
|
|
|
private DispatcherTimer CleanInputTimer;
|
|
|
+ private DispatcherTimer LogoutTimer;
|
|
|
|
|
|
private bool IsInitilizing = false;
|
|
|
|
|
@@ -47,22 +48,33 @@ namespace AwInitilizer
|
|
|
System.Net.ServicePointManager.Expect100Continue = false;
|
|
|
|
|
|
CleanInputTimer = new DispatcherTimer();
|
|
|
- CleanInputTimer.Interval = TimeSpan.FromSeconds(2);
|
|
|
+ CleanInputTimer.Interval = TimeSpan.FromSeconds(1);
|
|
|
CleanInputTimer.Tick += CleanInputTimer_Tick;
|
|
|
|
|
|
+ LogoutTimer = new DispatcherTimer();
|
|
|
+ LogoutTimer.Interval = TimeSpan.FromMinutes(1);
|
|
|
+ LogoutTimer.Tick += LogoutTimer_Tick;
|
|
|
+
|
|
|
Loaded += MainWindow_Loaded;
|
|
|
PreviewKeyDown += MainWindow_PreviewKeyDown;
|
|
|
+ PreviewKeyUp += MainWindow_PreviewKeyUp;
|
|
|
|
|
|
+ SystemID.TryParse("AWLU770001W1P0D2045A001A0", out var systemID);
|
|
|
//this.DataContext = new MainViewModel();
|
|
|
this.DataContext = new MainViewModel() {
|
|
|
- //ModelName = "DSYE601E0ED2PH",
|
|
|
- //SerialNumber = "NeedSetupSN",
|
|
|
- //FourGenModuleVersion = "EC25AFFAR07A08M4G",
|
|
|
+ //SystemID = systemID,
|
|
|
+ //ModelName = "AWLU770001W1P0",
|
|
|
+ //SettingModelName = "AWLU770001W1P0",
|
|
|
+ //SerialNumber = "D2045A001A0",
|
|
|
+ ////FourGenModuleVersion = "EC25AFFAR07A08M4G",
|
|
|
//IsSimInsert = false,
|
|
|
- //ICCID = "12345678901234567890",
|
|
|
- //IMSI = "123456789012345",
|
|
|
- //CSUVersion = "V1.01.01.0601.00",
|
|
|
- //MCUVersion = "D0.52.40.1770.P0"
|
|
|
+ ////ICCID = "12345678901234567890",
|
|
|
+ ////IMSI = "123456789012345",
|
|
|
+ ////CSUVersion = "V1.01.01.0601.00",
|
|
|
+ ////MCUVersion = "D0.52.40.1770.P0",
|
|
|
+ //IsInputCheckpassed = true,
|
|
|
+ //FirmwareUpdateModels = new List<FirmwareUpdateModel>(),
|
|
|
+
|
|
|
};
|
|
|
this.DataContextChanged += MainWindow_DataContextChanged;
|
|
|
}
|
|
@@ -75,29 +87,82 @@ namespace AwInitilizer
|
|
|
private void CleanInputTimer_Tick(object sender, EventArgs e)
|
|
|
{
|
|
|
CleanInputTimer.Stop();
|
|
|
+
|
|
|
+ Console.WriteLine(barCode);
|
|
|
+
|
|
|
+ if (SystemID.TryParse(barCode, out SystemID systemID))
|
|
|
+ {
|
|
|
+ SystemIDScanReseived(systemID);
|
|
|
+ }
|
|
|
+
|
|
|
barCode = string.Empty;
|
|
|
}
|
|
|
|
|
|
+ bool shiftPressed = false;
|
|
|
private void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
|
|
|
{
|
|
|
- barCode += e.Key;
|
|
|
+ ResetLogoutTimer();
|
|
|
+
|
|
|
+ if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
|
|
|
+ {
|
|
|
+ shiftPressed = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else if (e.Key == Key.Enter)
|
|
|
+ {
|
|
|
+ e.Handled = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (e.Key >= Key.D0 && e.Key <= Key.D9)
|
|
|
+ {
|
|
|
+ // Number keys pressed so need to so special processing
|
|
|
+ // also check if shift pressed
|
|
|
+ var input = e.Key.ToString();
|
|
|
+ input = input.Remove(0, 1);
|
|
|
+ barCode += input;
|
|
|
+ }
|
|
|
+ else if (e.Key == Key.OemMinus)
|
|
|
+ {
|
|
|
+ barCode += "-";
|
|
|
+ }
|
|
|
+ else if (e.Key == Key.Return)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var input = e.Key.ToString();
|
|
|
+ if (shiftPressed)
|
|
|
+ input = input.ToUpper();
|
|
|
+ barCode += input;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
CleanInputTimer.Stop();
|
|
|
CleanInputTimer.Start();
|
|
|
+ }
|
|
|
|
|
|
- if (SystemID.TryParse(barCode,out SystemID systemID))
|
|
|
+ private void SystemIDScanReseived(SystemID systemID)
|
|
|
+ {
|
|
|
+ ViewModel.IsInputCheckpassed = false;
|
|
|
+ inputSystemID = systemID;
|
|
|
+ var serialNumber = inputSystemID.SerialNumber;
|
|
|
+ if (!DLL.SajetConnect.SajetTransSnCheck(ref serialNumber))
|
|
|
{
|
|
|
- inputSystemID = systemID;
|
|
|
- uxModelName.Text = systemID.ModelName.ToString();
|
|
|
- uxSerialNumber.Text = systemID.SerialNumber;
|
|
|
+ MessageBox.Show("Serial Number or WorkOrder Error");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- if(ViewModel!=null && !string.IsNullOrEmpty(ViewModel.ModelName))
|
|
|
- {
|
|
|
- if (systemID.ModelName.ToString() != ViewModel.ModelName)
|
|
|
- {
|
|
|
- MessageBox.Show("Model Name Mismatch");
|
|
|
- }
|
|
|
- }
|
|
|
+ LoadConfigBySystemID(systemID);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void MainWindow_PreviewKeyUp(object sender, KeyEventArgs e)
|
|
|
+ {
|
|
|
+ if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
|
|
|
+ {
|
|
|
+ shiftPressed = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -113,12 +178,32 @@ namespace AwInitilizer
|
|
|
//procedures.Add(new ButtonStatusCheckPorcedure());
|
|
|
//procedures.Add(new RestarttoIdelProcedure());
|
|
|
|
|
|
- //uxProcedureDataGrid.ItemsSource = procedures;
|
|
|
+ //ViewModel.UpdateProcedure.Add(new VersionLogProcedure());
|
|
|
+
|
|
|
+ //uxProcedureDataGrid.ItemsSource = procedures;\
|
|
|
+
|
|
|
+// var test = new HintDialog();
|
|
|
+// test.ImgPath = "pack://application:,,,/AwInitilizer;component/Image/Blue.png";
|
|
|
+// test.Message = "BLUE BOTTON"
|
|
|
+//; test.ShowDialog();
|
|
|
+
|
|
|
+ DisplayLogin();
|
|
|
}
|
|
|
|
|
|
private void StartInit_Click(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
- if(CheckInputData())
|
|
|
+ //check again
|
|
|
+ ViewModel.IsInputCheckpassed = false;
|
|
|
+ inputSystemID = ViewModel.SystemID;
|
|
|
+ var serialNumber = inputSystemID.SerialNumber;
|
|
|
+ if (!DLL.SajetConnect.SajetTransSnCheck(ref serialNumber))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Serial Number or WorkOrder Error");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ ViewModel.IsInputCheckpassed = CheckInputData();
|
|
|
+ if (ViewModel.IsInputCheckpassed)
|
|
|
{
|
|
|
ViewModel.IsUdatIng = true;
|
|
|
_ = UpdateTask();
|
|
@@ -150,7 +235,7 @@ namespace AwInitilizer
|
|
|
bool isAvaliable = true;
|
|
|
string alertMsg = string.Empty;
|
|
|
UpdateData updateData;
|
|
|
- if(DataContext is MainViewModel viewModel)
|
|
|
+ if (DataContext is MainViewModel viewModel)
|
|
|
{
|
|
|
updateData = viewModel;
|
|
|
}
|
|
@@ -160,12 +245,12 @@ namespace AwInitilizer
|
|
|
}
|
|
|
|
|
|
|
|
|
- if(string.IsNullOrEmpty(updateData.ModelName))
|
|
|
+ if (string.IsNullOrEmpty(updateData.ModelName))
|
|
|
{
|
|
|
alertMsg += "Model Name is Required\n";
|
|
|
isAvaliable = false;
|
|
|
}
|
|
|
- else if(ViewModel.SettingModelName!= updateData.ModelName)
|
|
|
+ else if (ViewModel.SettingModelName != updateData.ModelName)
|
|
|
{
|
|
|
alertMsg += "Model Name setting is Mismathed\n";
|
|
|
isAvaliable = false;
|
|
@@ -178,9 +263,9 @@ namespace AwInitilizer
|
|
|
}
|
|
|
|
|
|
var systemIDString = updateData.ModelName + updateData.SerialNumber;
|
|
|
- if(!string.IsNullOrEmpty(systemIDString))
|
|
|
+ if (!string.IsNullOrEmpty(systemIDString))
|
|
|
{
|
|
|
- if(SystemID.TryParse(systemIDString,out SystemID systemID))
|
|
|
+ if (SystemID.TryParse(systemIDString, out SystemID systemID))
|
|
|
{
|
|
|
updateData.SystemID = systemID;
|
|
|
}
|
|
@@ -191,7 +276,7 @@ namespace AwInitilizer
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (updateData.SystemID!=null &&
|
|
|
+ if (updateData.SystemID != null &&
|
|
|
updateData.SystemID.ModelName.Network.ToString().Contains("4G"))
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(updateData.FourGenModuleVersion))
|
|
@@ -245,7 +330,7 @@ namespace AwInitilizer
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(!isAvaliable)
|
|
|
+ if (!isAvaliable)
|
|
|
{
|
|
|
MessageBox.Show(alertMsg);
|
|
|
}
|
|
@@ -258,11 +343,16 @@ namespace AwInitilizer
|
|
|
ProcedureBase.Logger = this;
|
|
|
uxTerminal.Inlines.Clear();
|
|
|
|
|
|
+ Dictionary<string, string> logPairs = new Dictionary<string, string>();
|
|
|
+ //logPairs.Add("ModelName", ViewModel.SystemID.ModelName.ToString());
|
|
|
+ //logPairs.Add("SerialNumber", ViewModel.SystemID.SerialNumber);
|
|
|
+
|
|
|
ViewModel.IsUdatIng = true;
|
|
|
var procedureList = ViewModel.UpdateProcedure.Where(x => x.IsActivated).ToList();
|
|
|
int procedureIndex;
|
|
|
for (procedureIndex = 0; procedureIndex < procedureList.Count; procedureIndex++)
|
|
|
{
|
|
|
+ procedureList[procedureIndex].LogPair.Clear();
|
|
|
procedureList[procedureIndex].Reset();
|
|
|
}
|
|
|
|
|
@@ -271,31 +361,77 @@ namespace AwInitilizer
|
|
|
uxProgress.Value = (procedureIndex * 100 / procedureList.Count);
|
|
|
uxProgressRate.Content = ((int)(procedureIndex * 100 / procedureList.Count)) + "%";
|
|
|
var result = await procedureList[procedureIndex].DoWork();
|
|
|
+
|
|
|
+ foreach(var procedureLog in procedureList[procedureIndex].LogPair)
|
|
|
+ {
|
|
|
+ logPairs.Add(procedureLog.Key, procedureLog.Value);
|
|
|
+ }
|
|
|
+
|
|
|
if (!result)
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //report MES result
|
|
|
+ ReportMESLog(logPairs);
|
|
|
+
|
|
|
if (procedureIndex == procedureList.Count)
|
|
|
{
|
|
|
uxProgress.Value = 100;
|
|
|
uxProgressRate.Content = "100%";
|
|
|
+ //report Success
|
|
|
+ DLL.SajetConnect.SajetTranFinish(true);
|
|
|
}
|
|
|
CreateLogFile();
|
|
|
ViewModel.IsUdatIng = false;
|
|
|
}
|
|
|
|
|
|
+ private void ReportMESLog(Dictionary<string, string> logPairs)
|
|
|
+ {
|
|
|
+ //build header
|
|
|
+ Dictionary<string, int> valuePairs = new Dictionary<string, int>();
|
|
|
+ foreach (var pair in logPairs)
|
|
|
+ {
|
|
|
+ if(int.TryParse(pair.Value,out int val))
|
|
|
+ {
|
|
|
+ valuePairs.Add(pair.Key,val);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ valuePairs.Add(string.Format("{0}:{1}", pair.Key, pair.Value),1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //register Header
|
|
|
+ var codePair = new Dictionary<string, string>();
|
|
|
+ var model = ViewModel.SystemID.ModelName.ToString();
|
|
|
+ foreach(var key in valuePairs.Keys)
|
|
|
+ {
|
|
|
+ var code = DLL.SajetConnect.SajetTransRegisterHeader(model,key);
|
|
|
+ if (string.IsNullOrEmpty(code))
|
|
|
+ continue;
|
|
|
+ codePair.Add(key, code);
|
|
|
+ }
|
|
|
+ //report value
|
|
|
+ var reportResult = DLL.SajetConnect.SajetTransReport(valuePairs, codePair);
|
|
|
+ }
|
|
|
+
|
|
|
private void CreateLogFile()
|
|
|
{
|
|
|
var fileName = ViewModel.SystemID + ViewModel.SerialNumber + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".txt";
|
|
|
var folderName = "Log";
|
|
|
var filePath = Path.Combine(folderName, fileName);
|
|
|
string content = "";
|
|
|
-
|
|
|
- if(File.Exists(fileName))
|
|
|
+
|
|
|
+ if (File.Exists(fileName))
|
|
|
{
|
|
|
File.Delete(fileName);
|
|
|
}
|
|
|
|
|
|
+ if (!Directory.Exists("Log"))
|
|
|
+ {
|
|
|
+ Directory.CreateDirectory("Log");
|
|
|
+ }
|
|
|
+
|
|
|
FileStream fileStream = new FileStream(filePath, FileMode.Create);
|
|
|
StreamWriter fileWriter = new StreamWriter(fileStream);
|
|
|
|
|
@@ -310,7 +446,7 @@ namespace AwInitilizer
|
|
|
fileWriter.WriteLine($"sim ICCID:{ ViewModel.ICCID}");
|
|
|
fileWriter.WriteLine($"sim IMSI:{ ViewModel.IMSI}");
|
|
|
|
|
|
- foreach(var model in ViewModel.FirmwareUpdateModels)
|
|
|
+ foreach (var model in ViewModel.FirmwareUpdateModels)
|
|
|
{
|
|
|
fileWriter.WriteLine($"{model.Module} version:{ model.Version}");
|
|
|
}
|
|
@@ -328,14 +464,15 @@ namespace AwInitilizer
|
|
|
|
|
|
fileWriter.WriteLine("==========================");
|
|
|
fileWriter.Close();
|
|
|
- //fileStream.Close();
|
|
|
+ fileStream.Close();
|
|
|
}
|
|
|
|
|
|
public void Print(string msg, bool isError = false)
|
|
|
{
|
|
|
- Dispatcher.Invoke(()=> {
|
|
|
+ DLL.SajetConnect.SajetTransLog(msg, isError);
|
|
|
+ Dispatcher.Invoke(() => {
|
|
|
Span line = new Span();
|
|
|
- line.Inlines.Add(msg+"\n");
|
|
|
+ line.Inlines.Add(msg + "\n");
|
|
|
Span.SetForeground(line, isError ? Brushes.Red : Brushes.Green);
|
|
|
|
|
|
uxTerminal.Inlines.Add(line);
|
|
@@ -344,45 +481,75 @@ namespace AwInitilizer
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- private void SettingFileSelect_Click(object sender, RoutedEventArgs e)
|
|
|
+ private void LoadConfigBySystemID(SystemID systemID)
|
|
|
{
|
|
|
- OpenFileDialog openFileDialog = new OpenFileDialog();
|
|
|
- openFileDialog.Filter = "Setting file|*.ini";
|
|
|
- openFileDialog.Multiselect = false;
|
|
|
- if (openFileDialog.ShowDialog() == true)
|
|
|
- {
|
|
|
- //check format
|
|
|
- var filePath = openFileDialog.FileName;
|
|
|
- if (!string.IsNullOrEmpty(filePath) &&
|
|
|
- File.Exists(filePath))
|
|
|
+ string settingRootFolder;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var defaultPath = Properties.Settings.Default.FirmwareRoot;
|
|
|
+ if(string.IsNullOrEmpty(defaultPath))
|
|
|
{
|
|
|
- var settingString = File.ReadAllText(filePath);
|
|
|
- SettingConfig setting;
|
|
|
- try
|
|
|
- {
|
|
|
- setting = JsonConvert.DeserializeObject<SettingConfig>(settingString);
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- MessageBox.Show("Setting file ERROR");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if(CheckSettingConfig(System.IO.Path.GetDirectoryName(filePath),ref setting))
|
|
|
- {
|
|
|
- ViewModel.SettingModelName = setting.ModelName;
|
|
|
- ViewModel.SettingFileName = Path.GetFileName(filePath);
|
|
|
- ViewModel.FourGenModuleVersion = setting.FourGenModuleVersion;
|
|
|
- ViewModel.IsSimInsert = setting.IsSimInsert;
|
|
|
- ViewModel.ICCID = setting.ICCID;
|
|
|
- ViewModel.IMSI = setting.IMSI;
|
|
|
- ViewModel.FirmwareUpdateModels = setting.FirmwareUpdateList
|
|
|
- .Where(x => !string.IsNullOrEmpty(x.Module) && !string.IsNullOrEmpty(x.Version) && !string.IsNullOrEmpty(x.FirmwareFileName)
|
|
|
- ).ToList() ;
|
|
|
-
|
|
|
- UpdateProcedure();
|
|
|
- }
|
|
|
+ defaultPath = ".\\";
|
|
|
}
|
|
|
+ settingRootFolder = Path.GetFullPath(defaultPath);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ MessageBox.Show("Firmware root path ERROR");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Directory.Exists(settingRootFolder))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Firmware root path not exist");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ string modelDirectoy = Path.Combine(settingRootFolder, systemID.ModelName.ToString());
|
|
|
+ if (!Directory.Exists(modelDirectoy))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Model firmware root path not exist");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ string modelSeettingFilePath = Path.Combine(modelDirectoy, systemID.ModelName.ToString() + ".ini");
|
|
|
+ if (!File.Exists(modelSeettingFilePath))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Model firmware setting not exist");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //check format
|
|
|
+ var settingString = File.ReadAllText(modelSeettingFilePath);
|
|
|
+ SettingConfig setting;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ setting = JsonConvert.DeserializeObject<SettingConfig>(settingString);
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ MessageBox.Show("Setting file ERROR");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CheckSettingConfig(System.IO.Path.GetDirectoryName(modelSeettingFilePath), ref setting))
|
|
|
+ {
|
|
|
+ ViewModel.SystemID = systemID;
|
|
|
+ ViewModel.ModelName = systemID.ModelName.ToString();
|
|
|
+ ViewModel.SerialNumber = systemID.SerialNumber;
|
|
|
+
|
|
|
+ ViewModel.SettingModelName = setting.ModelName;
|
|
|
+ ViewModel.SettingFileName = Path.GetFileName(modelSeettingFilePath);
|
|
|
+ ViewModel.FourGenModuleVersion = setting.FourGenModuleVersion;
|
|
|
+ ViewModel.IsSimInsert = setting.IsSimInsert;
|
|
|
+ ViewModel.ICCID = setting.ICCID;
|
|
|
+ ViewModel.IMSI = setting.IMSI;
|
|
|
+ ViewModel.FirmwareUpdateModels = setting.FirmwareUpdateList
|
|
|
+ .Where(x => !string.IsNullOrEmpty(x.Module) && !string.IsNullOrEmpty(x.Version) && !string.IsNullOrEmpty(x.FirmwareFileName)
|
|
|
+ ).ToList();
|
|
|
+
|
|
|
+ UpdateProcedure();
|
|
|
+ ViewModel.IsInputCheckpassed = CheckInputData();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -391,15 +558,15 @@ namespace AwInitilizer
|
|
|
List<ProcedureBase> procedures = new List<ProcedureBase>();
|
|
|
|
|
|
//init intilize procedure list
|
|
|
+ procedures.Add(new ButtonStatusCheckPorcedure());
|
|
|
procedures.Add(new BasicInfoUpdateProcedure());
|
|
|
procedures.Add(new FourGenModuleCheckProcedure());
|
|
|
for (int firemwareIndex = 0; firemwareIndex < ViewModel.FirmwareUpdateModels.Count ; firemwareIndex++)
|
|
|
{
|
|
|
procedures.Add(new FirmwareUpdateProcedure(ViewModel.FirmwareUpdateModels[firemwareIndex]));
|
|
|
}
|
|
|
-
|
|
|
- procedures.Add(new ButtonStatusCheckPorcedure());
|
|
|
procedures.Add(new RestarttoIdelProcedure());
|
|
|
+ procedures.Add(new VersionLogProcedure());
|
|
|
|
|
|
ViewModel.UpdateProcedure.Clear();
|
|
|
|
|
@@ -519,20 +686,20 @@ namespace AwInitilizer
|
|
|
isCheckPassed = false;
|
|
|
}
|
|
|
|
|
|
- byte[] imgType = new byte[4];
|
|
|
- if (fs.Read(imgType, 0, 4) == 4)
|
|
|
- {
|
|
|
- if (!imgType.SequenceEqual(new byte[] { 0x10, 0x00, 0x00, 0x04, }))
|
|
|
- {
|
|
|
- MessageBox.Show($"{model.Module} Firemware type ERROR");
|
|
|
- isCheckPassed = false;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- MessageBox.Show($"{model.Module} Firemware header ERROR");
|
|
|
- isCheckPassed = false;
|
|
|
- }
|
|
|
+ //byte[] imgType = new byte[4];
|
|
|
+ //if (fs.Read(imgType, 0, 4) == 4)
|
|
|
+ //{
|
|
|
+ // if (!imgType.SequenceEqual(new byte[] { 0x10, 0x00, 0x00, 0x04, }))
|
|
|
+ // {
|
|
|
+ // MessageBox.Show($"{model.Module} Firemware type ERROR");
|
|
|
+ // isCheckPassed = false;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // MessageBox.Show($"{model.Module} Firemware header ERROR");
|
|
|
+ // isCheckPassed = false;
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
@@ -550,5 +717,73 @@ namespace AwInitilizer
|
|
|
|
|
|
return isCheckPassed;
|
|
|
}
|
|
|
+
|
|
|
+ private void ResetLogoutTimer()
|
|
|
+ {
|
|
|
+ if(LogoutTimer!=null)
|
|
|
+ {
|
|
|
+ logoutCheckCnt = 0;
|
|
|
+ LogoutTimer.Stop();
|
|
|
+ LogoutTimer.Start();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void DisplayLogin()
|
|
|
+ {
|
|
|
+ LogoutTimer?.Stop();
|
|
|
+ var signinDialog = new SigninDialog();
|
|
|
+ signinDialog.Owner = this;
|
|
|
+ signinDialog.ShowDialog();
|
|
|
+ if (signinDialog.DialogResult != true)
|
|
|
+ {
|
|
|
+ App.Current.Shutdown();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ViewModel.UserID = signinDialog.UserId;
|
|
|
+ ViewModel.WorkOrder = signinDialog.WorkOrder;
|
|
|
+ LogoutTimer?.Start();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int logoutCheckCnt = 0;
|
|
|
+ private void LogoutTimer_Tick(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ LogoutTimer.Stop();
|
|
|
+
|
|
|
+ if (ViewModel.IsUdatIng)
|
|
|
+ {
|
|
|
+ logoutCheckCnt = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (++logoutCheckCnt > 10)
|
|
|
+ {
|
|
|
+ logoutCheckCnt = 0;
|
|
|
+ DisplayLogin();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LogoutTimer.Start();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Logout_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ DisplayLogin();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void WorkOrder_TextChanged(object sender, TextChangedEventArgs e)
|
|
|
+ {
|
|
|
+ ViewModel.IsInputCheckpassed = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void WorkOrder_KeyDown(object sender, KeyEventArgs e)
|
|
|
+ {
|
|
|
+ //ViewModel.IsInputCheckpassed = true;
|
|
|
+ if (e.Key == Key.Enter && ViewModel.SystemID != null)
|
|
|
+ {
|
|
|
+ SystemIDScanReseived(ViewModel.SystemID);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|