ITC81DB_2/ITC81DB_2/Forms/FormMain.cs

9358 lines
446 KiB
C#

using System;
using System.Linq;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using SmartX;
using ITC81DB_2.DialogForms;
using InModbus;
using System.Net.Sockets;
using ITC81DB_2.Datastore;
namespace ITC81DB_2.Forms
{
public partial class FormMain : Form
{
#region Field
private SmartSplash SmartSplashProgramLoad;
public bool IsCommunicationLogOpen;
private int CommunicationCheckCount;
public bool IsBootingComplete;
public int BufferSmartUart;
public bool IsJudgmentNow1;
public bool IsJudgmentNow2;
public int UpdateValue; // Modbus - Update 될 때마다 +1
public bool IsOPCModbusUsing;
public bool IsAlarmOccured;
private static int ModbusTotalBytes = 100; // 전체 bytes
// Ethernet
private bool IsEthernetThreadStop;
private bool IsEthernetTransferData;
private bool IsUDPThreadStop = true;
public object EthernetTransferData;
private TcpClient EthernetTcpClient;
private NetworkStream EthernetNetStream;
private StreamReader EthernetStmReader;
private StreamWriter EthernetStmWriter;
// 로그온 색상
public Color ColorLogOff;
public Color ColorLogOn;
// 파일 위치
private string m_PathLaunchFolder; // 프로그램 실행 폴더
private string m_PathDataBackupFolder; // 데이터 백업 폴더
private string m_PathSystemFileFolder1; // 시스템 파일 폴더1
private string m_PathSystemFileFolder2; // 시스템 파일 폴더2
private string m_PathSystemFileBackupFolder; // 시스템 파일 백업 폴더
// 통신설정 - 전송 지연시간
public Queue<object> QueueCOM1;
public Queue<object> QueueCOM3;
public Queue<object> QueueCOM4;
public Queue<object> QueueEthernet;
// Bacode
public Barcode CurrentBarcode;
// Modbus
public Modbus Modbus;
// Modbus Data
public _30000_ModbusData Current30000ModbusData1;
public _30000_ModbusData Current30000ModbusData2;
public _40000_ModbusData Current40000ModbusData1;
public _40000_ModbusData Current40000ModbusData2;
// 시스템 상태
private SystemStatus m_CurrentSystemStatus;
// System Configuration
public SystemConfigurationItem SystemConfig;
// #1 현재 선택 된 품목
public ProductItem CurrentProductItem1;
// #2 현재 선택 된 품목
public ProductItem CurrentProductItem2;
// #1 JudgmentSet
public JudgmentSetItem CurrentJudgmentSetItem1;
// #2 JudgmentSet
public JudgmentSetItem CurrentJudgmentSetItem2;
// 중량 조정 설정값
public CalibrationItem CurrentCalibrationItem;
// #1 중량 데이터
public WeightData CurrentWeightData1;
// #2 중량 데이터
public WeightData CurrentWeightData2;
// 현재 피드백 값
public FeedbackItem CurrentFeedbackItem1;
// 현재 피드백 값
public FeedbackItem CurrentFeedbackItem2;
// 시스템파라미터 - 9507
public SystemParameter9507 CurrentSystemParameter9507;
// 시스템파라미터 - 9508
public SystemParameter9508 CurrentSystemParameter9508;
// 시스템파라미터 - 9509
public SystemParameter9509 CurrentSystemParameter9509;
// 시스템파라미터 - 9510
public SystemParameter9510 CurrentSystemParameter9510;
// 시스템파라미터 - 9511
public SystemParameter9511 CurrentSystemParameter9511;
// 시스템파라미터3 : 외부출력
public SystemParameter3 CurrentSystemParameter3;
// Form
public FormMainDisplay ChildFormMainDisplay;
public FormMenu ChildFormMenu;
// IO Test Input 데이터 취합
private Collection<string> CollectionIOTest_InputData;
// 판정설정 그래프 데이터
private Collection<int> CollectionGraphData;
// User
public User CurrentUser;
// UserGroup
public UserGroup CurrentUserGroup;
// 알람
private AlarmList CurrentAlarmList;
public List<short> CurrentAlarm;
private delegate void TextStatusCallback(string strText);
private delegate void UIServerStatusCallback(bool bEnable);
private delegate void TransferByteArrayDataCallback(byte[] byteArray);
private delegate void TransferStringDataCallback(string strText);
private delegate void TransferByteDataCallback(byte byteText);
private delegate void UIControlCallback(bool bEnable);
private delegate void UITimerWorkCallback(bool bEnable);
private delegate void TimerTryConnectCallback(bool bEnable);
private delegate void UIOPT5QueueCountCallback(int count);
#endregion
#region Constructor
public FormMain()
{
InitializeComponent();
// 프로그램 로딩 이미지
this.SmartSplashProgramLoad = new SmartX.SmartSplash();
this.SmartSplashProgramLoad.CenterPosition = true;
this.SmartSplashProgramLoad.AnimationInterval = 100;
this.SmartSplashProgramLoad.LoadingImagePathname = "SmartLoading3";
this.SmartSplashProgramLoad.Start();
}
#endregion
#region Property
public string PathLaunchFolder
{
get { return this.m_PathLaunchFolder; }
set { this.m_PathLaunchFolder = value; }
}
public string PathDataBackupFolder
{
get { return this.m_PathDataBackupFolder; }
set { this.m_PathDataBackupFolder = value; }
}
public string PathSystemFileFolder1
{
get { return this.m_PathSystemFileFolder1; }
set { this.m_PathSystemFileFolder1 = value; }
}
public string PathSystemFileFolder2
{
get { return this.m_PathSystemFileFolder2; }
set { this.m_PathSystemFileFolder2 = value; }
}
public string PathSystemFileBackupFolder
{
get { return m_PathSystemFileBackupFolder; }
set { m_PathSystemFileBackupFolder = value; }
}
public SystemStatus CurrentSystemStatus
{
get { return this.m_CurrentSystemStatus; }
private set { this.m_CurrentSystemStatus = value; }
}
#endregion
#region Method
private void DefaultSetting()
{
this.IsCommunicationLogOpen = false;
this.CommunicationCheckCount = 0;
this.IsBootingComplete = false;
this.BufferSmartUart = 1000000;
this.IsJudgmentNow1 = false;
this.IsJudgmentNow2 = false;
this.UpdateValue = 0;
this.IsOPCModbusUsing = false;
this.EthernetTransferData = "";
this.CurrentAlarmList = new AlarmList();
this.CurrentAlarm = new List<short>();
this.CurrentAlarmList.EventAlarmStateChange += new Define.EventHandlerAlarmStateChange(this.CurrentAlarmList_Change);
this.Modbus = new Modbus();
this.Current30000ModbusData1 = new _30000_ModbusData();
this.Current40000ModbusData1 = new _40000_ModbusData();
this.ColorLogOff = Color.Red;
this.ColorLogOn = Color.Lime;
this.PathLaunchFolder = "SD Card\\";
this.PathSystemFileFolder1 = this.PathLaunchFolder + "SystemFile1\\";
this.PathSystemFileFolder2 = this.PathLaunchFolder + "SystemFile2\\";
this.PathDataBackupFolder = this.PathLaunchFolder + "DataBackup\\";
this.PathSystemFileBackupFolder = this.PathLaunchFolder + "SystemFileBackup\\";
this.CollectionIOTest_InputData = new Collection<string>();
this.CollectionIOTest_InputData.Clear();
for (int i = 0; i < 8; i++)
this.CollectionIOTest_InputData.Add("0");
this.CollectionGraphData = new Collection<int>();
this.CollectionGraphData.Clear();
for (int i = 0; i < 300; i++)
this.CollectionGraphData.Add(0);
this.QueueCOM1 = new Queue<object>();
this.QueueCOM3 = new Queue<object>();
this.QueueCOM4 = new Queue<object>();
this.QueueEthernet = new Queue<object>();
this.SystemConfig = new SystemConfigurationItem();
this.CurrentProductItem1 = new ProductItem();
this.CurrentProductItem2 = new ProductItem();
this.CurrentJudgmentSetItem1 = new JudgmentSetItem();
this.CurrentJudgmentSetItem2 = new JudgmentSetItem();
this.CurrentCalibrationItem = new CalibrationItem();
this.CurrentWeightData1 = new WeightData();
this.CurrentWeightData2 = new WeightData();
this.CurrentSystemStatus = new SystemStatus();
this.CurrentFeedbackItem1 = new FeedbackItem();
this.CurrentFeedbackItem2 = new FeedbackItem();
this.CurrentSystemParameter9507 = new SystemParameter9507();
this.CurrentSystemParameter9508 = new SystemParameter9508();
this.CurrentSystemParameter9509 = new SystemParameter9509();
this.CurrentSystemParameter9510 = new SystemParameter9510();
this.CurrentSystemParameter9511 = new SystemParameter9511();
this.CurrentUser = new User();
this.CurrentUserGroup = new UserGroup();
this.CurrentSystemParameter3 = new SystemParameter3();
// SystemFile1 폴더 생성
if (Directory.Exists(this.PathSystemFileFolder1) == false)
Directory.CreateDirectory(this.PathSystemFileFolder1);
// SystemFile2 폴더 생성
if (Directory.Exists(this.PathSystemFileFolder2) == false)
Directory.CreateDirectory(this.PathSystemFileFolder2);
// DataBackup 폴더 생성
if (Directory.Exists(this.PathDataBackupFolder) == false)
Directory.CreateDirectory(this.PathDataBackupFolder);
}
private void DefaultSetting2()
{
// 이더넷
if (this.SystemConfig.EthernetOperationMode == 1)
{
try
{
if (string.Compare(this.smartConfigs.IPSettings.DeviceIP, "0.0.0.0") != 0)
this.EthernetServerStart();
this.ChildFormMainDisplay.TimerServer(true);
}
catch
{
}
}
else if (this.SystemConfig.EthernetOperationMode == 2)
{
this.EthernetClientDisconnect();
}
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : this.SystemConfig.EthernetCommMode", DateTime.Now, this.SystemConfig.EthernetCommMode));
if (this.SystemConfig.EthernetCommMode != (int)Define.E_CommMode.f0_None)
{
switch (this.SystemConfig.EthernetCommMode)
{
case (int)Define.E_CommMode.f5_Modbus:
this.ChildFormMainDisplay.MainBottomModbusIconAdd(true);
break;
default:
break;
}
}
this.ChildFormMainDisplay.InitialEthernetIcon();
}
private void CreateForm()
{
this.ChildFormMainDisplay = new FormMainDisplay(this);
this.ChildFormMenu = new FormMenu(this);
this.smartForm.MainForm = this;
this.smartForm.AddChildForm(this.ChildFormMainDisplay);
this.smartForm.AddChildForm(this.ChildFormMenu);
}
public static void Exception(Exception ex)
{
try
{
string fileName = "SD Card\\Data\\Others\\Log\\" + string.Format("{0:yyyyMMdd_HHmmss}_Exception.txt", DateTime.Now);
FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.Write(ex.ToString());
sw.Close();
fs.Close();
}
catch
{
string fileName = "Flash Disk\\" + string.Format("{0:yyyyMMdd_HHmmss}_Exception.txt", DateTime.Now);
FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.Write(ex.ToString());
sw.Close();
fs.Close();
}
}
public void TransferProductParameter1(int productNumber)
{
string value = "";
StringBuilder sb = new StringBuilder();
ProductItem pItem = new ProductItem();
JudgmentSetItem jItem = new JudgmentSetItem();
SystemParameter3 sItem = new SystemParameter3();
this.LoadProductFile1(ref pItem, productNumber - 1);
this.LoadJudgmentSetFile1(ref jItem, productNumber - 1);
this.LoadSystemParameter3File(ref sItem);
sb.Append(Helper.StringZeroFillDigits7(pItem.UnderRange)); // 하한값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.PassRange)); // 기준값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.OverRange)); // 상한값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.TareRange)); // 용기(7)
value = Helper.DoubleToString(jItem.DynamicCorrection, 6);
value = value.Replace(".", "");
sb.Append(Helper.StringZeroFillDigits7(value)); // 동보정(7)
sb.Append(Helper.StringZeroFillDigits4(jItem.Filter.ToString())); // 필터(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.JudgmentDelayTime.ToString())); // 판정지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.DoubleDelayTime.ToString())); // 이중지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.JudgmentCount.ToString())); // 판정개수(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AscendDelayTime.ToString())); // 상승지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.DescendDelayTime.ToString())); // 하강지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed1.ToString())); // 인버터1속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed2.ToString())); // 인버터2속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed3.ToString())); // 인버터3속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgmentLength.ToString())); // 자동판정-길이(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment1.ToString())); // 자동판정-1(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment2.ToString())); // 자동판정-2(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment3.ToString())); // 자동판정-3(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1Mode.ToString())); // 선별기1모드(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1DelayTime.ToString())); // 선별기1지연시간(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1RunTime.ToString())); // 선별기1동작시간(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut9Mode)); // 외부출력9모드(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut9DelayTime)); // 외부출력9지연시간(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut9RunTime)); // 외부출력9동작시간(4)
sb.Append(Helper.StringZeroFillDigits4(this.SystemConfig.EquipmentID.ToString())); // 장비ID(4)
sb.Append("0000000"); // Dummy1(7)
sb.Append("0000000"); // Dummy2(7)
sb.Append("0000"); // Dummy3(4)
sb.Append("0000"); // Dummy4(4)
sb.Append("0000"); // Dummy5(4)
sb.Append(Helper.StringZeroFillDigits4(pItem.Number.ToString())); // 품번(4)
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._9045_SystemParameterWrite, sb.ToString());
}
public void TransferProductParameter2(int productNumber)
{
string value = "";
StringBuilder sb = new StringBuilder();
ProductItem pItem = new ProductItem();
JudgmentSetItem jItem = new JudgmentSetItem();
SystemParameter3 sItem = new SystemParameter3();
this.LoadProductFile2(ref pItem, productNumber - 1);
this.LoadJudgmentSetFile2(ref jItem, productNumber - 1);
this.LoadSystemParameter3File(ref sItem);
sb.Append(Helper.StringZeroFillDigits7(pItem.UnderRange)); // 하한값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.PassRange)); // 기준값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.OverRange)); // 상한값(7)
sb.Append(Helper.StringZeroFillDigits7(pItem.TareRange)); // 용기(7)
value = Helper.DoubleToString(jItem.DynamicCorrection, 6);
value = value.Replace(".", "");
sb.Append(Helper.StringZeroFillDigits7(value)); // 동보정(7)
sb.Append(Helper.StringZeroFillDigits4(jItem.Filter.ToString())); // 필터(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.JudgmentDelayTime.ToString())); // 판정지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.DoubleDelayTime.ToString())); // 이중지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.JudgmentCount.ToString())); // 판정개수(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AscendDelayTime.ToString())); // 상승지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.DescendDelayTime.ToString())); // 하강지연(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed1.ToString())); // 인버터1속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed2.ToString())); // 인버터2속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.FeedSpeed3.ToString())); // 인버터3속도(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgmentLength.ToString())); // 자동판정-길이(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment1.ToString())); // 자동판정-1(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment2.ToString())); // 자동판정-2(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.AutoJudgment3.ToString())); // 자동판정-3(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1Mode.ToString())); // 선별기2모드(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1DelayTime.ToString())); // 선별기2지연시간(4)
sb.Append(Helper.StringZeroFillDigits4(jItem.Sorter1RunTime.ToString())); // 선별기2동작시간(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut10Mode)); // 외부출력10모드(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut10DelayTime)); // 외부출력10지연시간(4)
sb.Append(Helper.StringZeroFillDigits4(sItem.ExternalOut10RunTime)); // 외부출력10동작시간(4)
sb.Append(Helper.StringZeroFillDigits4(this.SystemConfig.EquipmentID.ToString())); // 장비ID(4)
sb.Append("0000000"); // Dummy1(7)
sb.Append("0000000"); // Dummy2(7)
sb.Append("0000"); // Dummy3(4)
sb.Append("0000"); // Dummy4(4)
sb.Append("0000"); // Dummy5(4)
sb.Append(Helper.StringZeroFillDigits4(pItem.Number.ToString())); // 품번(4)
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._9046_SystemParameterWrite, sb.ToString());
}
public void TransferCurrentProductItem1(ProductItem pItem)
{
StringBuilder sb = new StringBuilder();
sb.Append(Helper.StringZeroFillDigits7(pItem.UnderRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.PassRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.OverRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.TareRange));
sb.Append(Helper.StringZeroFillDigits4(this.SystemConfig.ProductNumber.ToString()));
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.SubBoard1, CommunicationAddress._9024_ParameterWeightSetting, sb.ToString());
}
public void TransferCurrentProductItem2(ProductItem pItem)
{
StringBuilder sb = new StringBuilder();
sb.Append(Helper.StringZeroFillDigits7(pItem.UnderRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.PassRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.OverRange));
sb.Append(Helper.StringZeroFillDigits7(pItem.TareRange));
sb.Append(Helper.StringZeroFillDigits4(this.SystemConfig.ProductNumber.ToString()));
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.SubBoard2, CommunicationAddress._9024_ParameterWeightSetting, sb.ToString());
}
private void ConverterAlarm(ref WeightData data, string alarm, int laneNum)
{
string sValue1 = "", sValue2 = "", sValue3 = "";
if (alarm.Length != 3)
return;
sValue1 = Convert.ToString(Convert.ToInt16(alarm.Substring(0, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0');
sValue2 = Convert.ToString(Convert.ToInt16(alarm.Substring(1, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0');
sValue3 = Convert.ToString(Convert.ToInt16(alarm.Substring(2, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0');
// 알람 12-외부에러
if (sValue3[0] == '0')
{ }
else
{ }
// 알람 11-진입센서걸림(센서에러감지시간)
if (sValue3[1] == '0')
data.IsEntryStucked = false;
else
{
data.IsEntryStucked = true;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
{
this.TransferData(CommunicationCommand.BuzzerOnContinuousEnable, CommunicationID.MainBoard);
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
}
// 알람 10-
if (sValue3[2] == '0')
{ }
else
{ }
// 알람 9-인버터에러
if (sValue3[3] == '0')
{ }
else
{ }
// 알람 8-제품진입 미감지
if (sValue2[0] == '0')
data.IsEntryNotDetected = false;
else
{
if (laneNum == 1)
{
if (this.IsJudgmentNow1 == false)
{
data.IsEntryNotDetected = true;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
{
this.TransferData(CommunicationCommand.BuzzerOnContinuousEnable, CommunicationID.MainBoard);
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
}
}
else
{
if (this.IsJudgmentNow2 == false)
{
data.IsEntryNotDetected = true;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
{
this.TransferData(CommunicationCommand.BuzzerOnContinuousEnable, CommunicationID.MainBoard);
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
}
}
}
// 알람 7-리젝터 동작 감지
if (sValue2[1] == '0')
{ }
else
{ }
// 알람 6-적체센서 에러
if (sValue2[2] == '0')
{ }
else
{ }
// 알람 5-공압에러
if (sValue2[3] == '0')
{ }
else
{ }
// 알람 4-Emergency
if (sValue1[0] == '0')
data.IsEmergencyStop = false;
else
data.IsEmergencyStop = true;
// 알람 3-도어인터록
if (sValue1[1] == '0')
{ }
else
{ }
// 알람 2-셀 에러
if (sValue1[2] == '0')
data.IsLoadCellError = false;
else
data.IsLoadCellError = true;
// 알람 1-입력센서 에러
if (sValue1[3] == '0')
data.IsEntrySensorError = false;
else
data.IsEntrySensorError = true;
}
/// <summary>
/// Set Mode
/// </summary>
/// <param name="mode"></param>
public void SetDisplayMode(Define.E_DisplayMode mode)
{
if (this.CurrentSystemStatus.CurrentMode == mode)
return;
else
this.CurrentSystemStatus.CurrentMode = mode;
switch (mode)
{
case Define.E_DisplayMode.Normal:
this.TransferData(CommunicationCommand.ModeNormal, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.Menu:
this.TransferData(CommunicationCommand.ModeMenu, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.Calibration:
this.TransferData(CommunicationCommand.ModeCalibration, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.SystemSetting:
this.TransferData(CommunicationCommand.ModeJudgment, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.IOTest:
this.TransferData(CommunicationCommand.ModeIOTest, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.Bypass:
this.TransferData(CommunicationCommand.ModeBypass, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.EquipmentTest:
this.TransferData(CommunicationCommand.ModeEquipmentTest, CommunicationID.MainBoard);
break;
case Define.E_DisplayMode.SorterTest:
this.TransferData(CommunicationCommand.ModeRejectorTest, CommunicationID.MainBoard);
break;
default:
break;
}
}
/// <summary>
/// Set User
/// </summary>
/// <param name="user"></param>
public void SetUser(Define.E_UserGroup user)
{
if (this.CurrentSystemStatus.CurrentUserPasswordType.Group != user)
this.CurrentSystemStatus.CurrentUserPasswordType.Group = user;
}
public void PrintingHeadLine()
{
if (this.SystemConfig.SerialCOM1Mode == 3)
{
this.TransferSerialCOM1("\n--------------------------------");
this.TransferSerialCOM1(" NO LANE GRADE WEIGHT COUNT");
this.TransferSerialCOM1("--------------------------------");
}
if (this.SystemConfig.SerialCOM3Mode == 3)
{
this.TransferSerialCOM3("\n--------------------------------");
this.TransferSerialCOM3(" NO LANE GRADE WEIGHT COUNT");
this.TransferSerialCOM3("--------------------------------");
}
}
public void PrintingWeight(WeightData data1, WeightData data2, ProductItem pItem1, ProductItem pItem2)
{
string value = "";
if (this.SystemConfig.SerialCOM1Mode == 3)
{
this.TransferSerialCOM1("##############################");
this.TransferSerialCOM1(" TOTAL PRINT LINE1 ");
this.TransferSerialCOM1("##############################");
this.TransferSerialCOM1(string.Format(" PART = {0}", pItem1.Number));
if (data1.StartTime.Year == 1111 || data1.StopTime.Year == 1111)
data1.StartTime = data1.StopTime = DateTime.Now;
this.TransferSerialCOM1(string.Format(" START = {0}", data1.StartTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM1(string.Format(" END = {0}", data1.StopTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM1(string.Format("\n UNDER = {0}g",
Helper.StringToDecimalPlaces(pItem1.UnderRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data1.UnderCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data1.UnderSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.UnderAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data1.UnderRatio));
this.TransferSerialCOM1(string.Format("\n PASS = {0}g",
Helper.StringToDecimalPlaces(pItem1.PassRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data1.PassCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data1.PassSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.PassAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data1.PassRatio));
this.TransferSerialCOM1(string.Format("\n OVER = {0}g",
Helper.StringToDecimalPlaces(pItem1.OverRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data1.OverCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data1.OverSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.OverAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data1.OverRatio));
this.TransferSerialCOM1(string.Format("\n TARE = {0}g",
Helper.StringToDecimalPlaces(pItem1.TareRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1("\n TOTAL");
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data1.TotalCount));
this.TransferSerialCOM1("##############################\n\n\n\n");
this.TransferSerialCOM1("##############################");
this.TransferSerialCOM1(" TOTAL PRINT LINE2 ");
this.TransferSerialCOM1("##############################");
this.TransferSerialCOM1(string.Format(" PART = {0}", pItem2.Number));
if (data2.StartTime.Year == 1111 || data2.StopTime.Year == 1111)
data2.StartTime = data2.StopTime = DateTime.Now;
this.TransferSerialCOM1(string.Format(" START = {0}", data2.StartTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM1(string.Format(" END = {0}", data2.StopTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM1(string.Format("\n UNDER = {0}g",
Helper.StringToDecimalPlaces(pItem2.UnderRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data2.UnderCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data2.UnderSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.UnderAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data2.UnderRatio));
this.TransferSerialCOM1(string.Format("\n PASS = {0}g",
Helper.StringToDecimalPlaces(pItem2.PassRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data2.PassCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data2.PassSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.PassAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data2.PassRatio));
this.TransferSerialCOM1(string.Format("\n OVER = {0}g",
Helper.StringToDecimalPlaces(pItem2.OverRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data2.OverCount));
this.TransferSerialCOM1(string.Format(" TOTAL.W = {0}kg", data2.OverSumWeightKG));
this.TransferSerialCOM1(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.OverAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1(string.Format(" RATIO = {0}%", data2.OverRatio));
this.TransferSerialCOM1(string.Format("\n TARE = {0}g",
Helper.StringToDecimalPlaces(pItem2.TareRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM1("\n TOTAL");
this.TransferSerialCOM1(string.Format(" COUNT = {0}", data2.TotalCount));
this.TransferSerialCOM1("##############################\n\n\n\n");
}
if (this.SystemConfig.SerialCOM3Mode == 3)
{
this.TransferSerialCOM3("##############################");
this.TransferSerialCOM3(" TOTAL PRINT LINE1 ");
this.TransferSerialCOM3("##############################");
this.TransferSerialCOM3(string.Format(" PART = {0}", pItem1.Number));
if (data1.StartTime.Year == 1111 || data1.StopTime.Year == 1111)
data1.StartTime = data1.StopTime = DateTime.Now;
this.TransferSerialCOM3(string.Format(" START = {0}", data1.StartTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM3(string.Format(" END = {0}", data1.StopTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM3(string.Format("\n UNDER = {0}g",
Helper.StringToDecimalPlaces(pItem1.UnderRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data1.UnderCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data1.UnderSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.UnderAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data1.UnderRatio));
this.TransferSerialCOM3(string.Format("\n PASS = {0}g",
Helper.StringToDecimalPlaces(pItem1.PassRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data1.PassCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data1.PassSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.PassAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data1.PassRatio));
this.TransferSerialCOM3(string.Format("\n OVER = {0}g",
Helper.StringToDecimalPlaces(pItem1.OverRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data1.OverCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data1.OverSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data1.OverAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data1.OverRatio));
this.TransferSerialCOM3(string.Format("\n TARE = {0}g",
Helper.StringToDecimalPlaces(pItem1.TareRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3("\n TOTAL");
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data1.TotalCount));
this.TransferSerialCOM3("##############################\n\n\n\n");
this.TransferSerialCOM3("##############################");
this.TransferSerialCOM3(" TOTAL PRINT LINE2 ");
this.TransferSerialCOM3("##############################");
this.TransferSerialCOM3(string.Format(" PART = {0}", pItem2.Number));
if (data2.StartTime.Year == 1111 || data2.StopTime.Year == 1111)
data2.StartTime = data2.StopTime = DateTime.Now;
this.TransferSerialCOM3(string.Format(" START = {0}", data2.StartTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM3(string.Format(" END = {0}", data2.StopTime.ToString("yyyy-MM-dd HH:mm:ss")));
this.TransferSerialCOM3(string.Format("\n UNDER = {0}g",
Helper.StringToDecimalPlaces(pItem2.UnderRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data2.UnderCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data2.UnderSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.UnderAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data2.UnderRatio));
this.TransferSerialCOM3(string.Format("\n PASS = {0}g",
Helper.StringToDecimalPlaces(pItem2.PassRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data2.PassCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data2.PassSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.PassAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data2.PassRatio));
this.TransferSerialCOM3(string.Format("\n OVER = {0}g",
Helper.StringToDecimalPlaces(pItem2.OverRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data2.OverCount));
this.TransferSerialCOM3(string.Format(" TOTAL.W = {0}kg", data2.OverSumWeightKG));
this.TransferSerialCOM3(string.Format(" AVG = {0}g",
Helper.DoubleToString(data2.OverAverage, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3(string.Format(" RATIO = {0}%", data2.OverRatio));
this.TransferSerialCOM3(string.Format("\n TARE = {0}g",
Helper.StringToDecimalPlaces(pItem2.TareRange, this.SystemConfig.DecimalPlaces)));
this.TransferSerialCOM3("\n TOTAL");
this.TransferSerialCOM3(string.Format(" COUNT = {0}", data2.TotalCount));
this.TransferSerialCOM3("##############################\n\n\n\n");
}
}
public void TimerSensorErrorInterval()
{
if (this.timerSensorError1.Enabled == true)
this.timerSensorError1.Enabled = false;
this.timerSensorError1.Interval = this.SystemConfig.SensorErrorDetectingTime;
if (this.timerSensorError2.Enabled == true)
this.timerSensorError2.Enabled = false;
this.timerSensorError2.Interval = this.SystemConfig.SensorErrorDetectingTime;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("timerSensorError Interval ({0:yyyy-MM-dd HH:mm:ss}): timer1:{1}, timer2:{2}", DateTime.Now,
this.timerSensorError1.Interval, this.timerSensorError2.Interval));
}
public void TimerEntryNotDetectedIgnoreTimeInverval()
{
this.timerEntryNotDetectedIgnoreTime1.Interval = this.SystemConfig.EntryNotDetectedIgnoreTime;
this.timerEntryNotDetectedIgnoreTime2.Interval = this.SystemConfig.EntryNotDetectedIgnoreTime;
}
// 피드백 데이터(피드백 편차 변경 X)
public void UpdateFeedbackData1(ProductItem item, SystemParameter9508 parameter)
{
if (this.ChildFormMainDisplay.MainFeedback.IsUsingFeedback() == true)
{
int temp = 0;
string feedbackValue = "";
if (parameter.OPT1IsWeightSetting == "1")
{
temp = item.PassRangeInt + this.CurrentFeedbackItem1.OverRangeDeviationInt;
if (temp <= 0)
{
parameter.OPT1OverRange1 = "0";
this.UpdateFeedbackDeviation1(this.CurrentProductItem1, this.CurrentSystemParameter9508);
}
else
parameter.OPT1OverRange1 = (item.PassRangeInt + this.CurrentFeedbackItem1.OverRangeDeviationInt).ToString();
temp = item.PassRangeInt + this.CurrentFeedbackItem1.UnderRangeDeviationInt;
if (temp <= 0)
{
parameter.OPT1UnderRange1 = "0";
this.UpdateFeedbackDeviation1(this.CurrentProductItem1, this.CurrentSystemParameter9508);
}
else
parameter.OPT1UnderRange1 = (item.PassRangeInt + this.CurrentFeedbackItem1.UnderRangeDeviationInt).ToString();
}
else
{
parameter.OPT1OverRange1 = item.OverRange;
parameter.OPT1UnderRange1 = item.UnderRange;
}
if (parameter.OPT1OverRange1Int < item.PassRangeInt)
parameter.OPT1OverRange1 = item.PassRange;
feedbackValue = Helper.StringZeroFillDigits7(parameter.OPT1OverRange1);
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._6205_OPT1OverRange1, feedbackValue);
feedbackValue = Helper.StringZeroFillDigits7(parameter.OPT1UnderRange1);
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._6206_OPT1UnderRange1, feedbackValue);
}
this.ChildFormMainDisplay.MainFeedback.DisplayRefresh(this.CurrentSystemStatus);
}
public void UpdateFeedbackData2(ProductItem item, SystemParameter9508 parameter)
{
if (this.ChildFormMainDisplay.MainFeedback.IsUsingFeedback() == true)
{
int temp = 0;
string feedbackValue = "";
if (parameter.OPT1IsWeightSetting == "1")
{
temp = item.PassRangeInt + this.CurrentFeedbackItem2.OverRangeDeviationInt;
if (temp <= 0)
{
parameter.OPT1OverRange2 = "0";
this.UpdateFeedbackDeviation2(this.CurrentProductItem2, this.CurrentSystemParameter9508);
}
else
parameter.OPT1OverRange2 = (item.PassRangeInt + this.CurrentFeedbackItem2.OverRangeDeviationInt).ToString();
temp = item.PassRangeInt + this.CurrentFeedbackItem2.UnderRangeDeviationInt;
if (temp <= 0)
{
parameter.OPT1UnderRange2 = "0";
this.UpdateFeedbackDeviation2(this.CurrentProductItem2, this.CurrentSystemParameter9508);
}
else
parameter.OPT1UnderRange2 = (item.PassRangeInt + this.CurrentFeedbackItem2.UnderRangeDeviationInt).ToString();
}
else
{
parameter.OPT1OverRange2 = item.OverRange;
parameter.OPT1UnderRange2 = item.UnderRange;
}
if (parameter.OPT1OverRange2Int < item.PassRangeInt)
parameter.OPT1OverRange2 = item.PassRange;
feedbackValue = Helper.StringZeroFillDigits7(parameter.OPT1OverRange2);
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._6216_OPT1OverRange2, feedbackValue);
feedbackValue = Helper.StringZeroFillDigits7(parameter.OPT1UnderRange2);
this.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress._6217_OPT1UnderRange2, feedbackValue);
}
this.ChildFormMainDisplay.MainFeedback.DisplayRefresh(this.CurrentSystemStatus);
}
public void UpdateFeedbackDeviation1(ProductItem item, SystemParameter9508 parameter)
{
string sValue = "";
sValue = this.ChildFormMainDisplay.MainFeedback.CaculateDeviation1(parameter.OPT1OverRange1Int);
this.CurrentFeedbackItem1.OverRangeDeviation = sValue;
sValue = this.ChildFormMainDisplay.MainFeedback.CaculateDeviation1(parameter.OPT1UnderRange1Int);
this.CurrentFeedbackItem1.UnderRangeDeviation = sValue;
this.ChildFormMainDisplay.MainFeedback.DisplayRefresh(this.CurrentSystemStatus);
}
public void UpdateFeedbackDeviation2(ProductItem item, SystemParameter9508 parameter)
{
string sValue = "";
sValue = this.ChildFormMainDisplay.MainFeedback.CaculateDeviation2(parameter.OPT1OverRange2Int);
this.CurrentFeedbackItem2.OverRangeDeviation = sValue;
sValue = this.ChildFormMainDisplay.MainFeedback.CaculateDeviation2(parameter.OPT1UnderRange2Int);
this.CurrentFeedbackItem2.UnderRangeDeviation = sValue;
this.ChildFormMainDisplay.MainFeedback.DisplayRefresh(this.CurrentSystemStatus);
}
private void UpdateScreen()
{
if (int.Parse(this.CurrentSystemParameter9507.OptionBoard) > 0)
{
this.ChildFormMainDisplay.CurrentBottomMenuControlEnable();
this.ChildFormMainDisplay.UpdateIcomDisplay();
this.ChildFormMenu.CenterConfiOptionBoard.InitializeDesign();
this.ChildFormMenu.CenterConfiHelp.OptionBoardVisible();
this.ChildFormMenu.BottomConfiguration.OptionBoardVisible();
this.UpdateFeedbackData1(this.CurrentProductItem1, this.CurrentSystemParameter9508);
this.UpdateFeedbackData2(this.CurrentProductItem2, this.CurrentSystemParameter9508);
this.UpdateFeedbackDeviation1(this.CurrentProductItem1, this.CurrentSystemParameter9508);
this.UpdateFeedbackDeviation2(this.CurrentProductItem2, this.CurrentSystemParameter9508);
}
}
#region Uart Communication
public void OpenSmartUartLink()
{
string fullPath = "";
try
{
if (this.smartSerialPort2.IsOpen == false)
this.smartSerialPort2.Open();
}
catch
{
}
#region Test 용 통신 로그
fullPath = this.PathDataBackupFolder + "Communicationlog.txt";
this.smartFileCommunicationLog.FilePathName = fullPath;
//this.smartFileCommunicationLog.Open();
//this.IsCommunicationLogOpen = true;
#endregion
}
public void CloseSmartUartLink()
{
if (this.IsCommunicationLogOpen == true)
{
this.IsCommunicationLogOpen = false;
this.smartFileCommunicationLog.Close();
}
this.smartSerialPort2.Close();
}
private bool SizeCheck(string cmd, string strTemp)
{
bool ret = false;
string dataSize = "";
int size = 0;
if (strTemp == null || strTemp.Length == 0)
{
ret = false;
return ret;
}
try
{
if (cmd == "P")
dataSize = strTemp.Substring(14, strTemp.Length - 16);
else // "S"
dataSize = strTemp.Substring(10, strTemp.Length - 12);
size = int.Parse(strTemp.Substring(6, 4).Trim());
}
catch
{
ret = false;
return ret;
}
if (dataSize.Length == size)
ret = true;
else
ret = false;
return ret;
}
private bool ChksumCheck(string strTemp)
{
bool ret = false;
string chkSum = "", dataChksum = "";
if (strTemp == null || strTemp.Length == 0)
ret = false;
else
{
chkSum = strTemp.Substring(strTemp.Length - 2, 2);
dataChksum = this.Checksumcalculator(strTemp.Substring(0, strTemp.Length - 2));
if (chkSum == dataChksum)
ret = true;
else
ret = false;
}
return ret;
}
private string Checksumcalculator(string strTemp)
{
string chkSum = "";
byte[] temp;
int value = 0, first = 0, second = 0;
char char1, char2;
if (strTemp == null || strTemp.Length == 0)
chkSum = "cc";
else
{
temp = new UTF8Encoding().GetBytes(strTemp);
for (int i = 0; i < temp.Length; i++)
value += temp[i];
first = (value & 0x00f0) >> 4;
if (first > 9)
char1 = (char)(first + 0x37);
else
char1 = (char)(first + 0x30);
second = value & 0x000f;
if (second > 9)
char2 = (char)(second + 0x37);
else
char2 = (char)(second + 0x30);
chkSum = char1.ToString() + char2.ToString();
}
return chkSum;
}
public int TransferData(string command, string id)
{
int ret = 0;
string chkSum = "cc";
StringBuilder sb = new StringBuilder();
sb.Append(command);
sb.Append(id);
chkSum = this.Checksumcalculator(sb.ToString());
sb.Append(chkSum);
if (this.smartSerialPort2.IsOpen == true)
this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Send ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, sb.ToString()));
return ret;
}
public int TransferDataCOM3(string command, string id)
{
int ret = 0;
string chkSum = "cc";
StringBuilder sb = new StringBuilder();
sb.Append(command);
sb.Append(id);
chkSum = this.Checksumcalculator(sb.ToString());
sb.Append(chkSum);
if (this.smartSerialPort3.IsOpen == true)
this.smartSerialPort3.WriteNoneFrame((char)0x02 + sb.ToString() + (char)0x03, SmartSerialPort.CODETYPES.ASCIICODE);
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Send COM3({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, sb.ToString()));
return ret;
}
public int TransferDataStream(string command, string id, string address, string data)
{
int ret = 0;
string chkSum = "cc";
StringBuilder sb = new StringBuilder();
sb.Append(command);
sb.Append(id);
sb.Append(Helper.StringZeroFillDigits4(data.Length.ToString()));
sb.Append(address);
sb.Append(data);
chkSum = this.Checksumcalculator(sb.ToString());
sb.Append(chkSum);
if (this.smartSerialPort2.IsOpen == true)
this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Send ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, sb.ToString()));
return ret;
}
public int TransferDataToCOM3Stream(string command, string id, string address, string data)
{
int ret = 0;
string chkSum = "cc";
StringBuilder sb = new StringBuilder();
sb.Append(command);
sb.Append(id);
sb.Append(Helper.StringZeroFillDigits4(data.Length.ToString()));
sb.Append(address);
sb.Append(data);
chkSum = this.Checksumcalculator(sb.ToString());
sb.Append(chkSum);
if (this.smartSerialPort3.IsOpen == true)
this.smartSerialPort3.WriteNoneFrame((char)0x02 + sb.ToString() + (char)0x03, SmartSerialPort.CODETYPES.ASCIICODE);
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Send COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, sb.ToString()));
return ret;
}
private void ReceiveData()
{
int ret = 0;
string strTemp = "";
byte[] readByte;
SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
try
{
receiveDataState = this.smartSerialPort2.ReadQueue(out readByte);
strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
}
catch
{
return;
}
if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
{
return;
}
try
{
switch (strTemp[0])
{
case 'C':
if ((ret = this.ReceiveCommandC(strTemp)) != 0)
return;
break;
case 'P':
if ((ret = this.ReceiveCommandP(strTemp)) != 0)
return;
break;
case 'S':
if ((ret = this.ReceiveCommandS(strTemp)) != 0)
return;
break;
default:
break;
}
}
catch
{
}
}
private int ReceiveCommandC(string strTemp)
{
int ret = 0;
string cmd = "", lane = "";
if (this.ChksumCheck(strTemp) == false)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Receive Command Data CHKSUM Error", DateTime.Now, strTemp));
return ret = -1;
}
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
cmd = strTemp.Substring(0, 3);
lane = strTemp.Substring(5, 1);
switch (cmd)
{
case "CI0":
#region Main Board Booted
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
{
this.CurrentSystemStatus.Equipment = Define.E_EquipmentStatus.Stop;
// 생산속도 Clear
this.CurrentWeightData1.ProductionSpeed = 0;
this.CurrentWeightData2.ProductionSpeed = 0;
this.CurrentWeightData1.IsStart = false;
this.CurrentWeightData2.IsStart = false;
// 정지 시간 저장
this.CurrentWeightData1.StopTime = DateTime.Now;
this.CurrentWeightData2.StopTime = DateTime.Now;
this.SaveCounterFile1(this.CurrentWeightData1, this.SystemConfig.ProductNumber - 1);
this.SaveCounterFile2(this.CurrentWeightData2, this.SystemConfig.ProductNumber - 1);
this.ChildFormMainDisplay.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
}
// Read SystemParameter1
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9507_SystemParameterRead, "");
#endregion
break;
case "CBI":
#region 공장초기화완료
this.ChildFormMenu.CenterEquipInitialize.UpdateDisplayMainBoardInitialization();
#endregion
break;
case "CBS":
#region 운전
this.CurrentSystemStatus.Equipment = Define.E_EquipmentStatus.Start;
// 운전시 중량 0 으로 Clear
this.CurrentWeightData1.Weight = 0.0;
this.CurrentWeightData2.Weight = 0.0;
// 운전 시간 저장
if (this.CurrentWeightData1.TotalCount == 0 && this.CurrentWeightData2.TotalCount == 0)
{
this.CurrentWeightData1.StartTime = DateTime.Now;
this.CurrentWeightData2.StartTime = DateTime.Now;
this.SaveCounterFile1(this.CurrentWeightData1, this.SystemConfig.ProductNumber - 1);
this.SaveCounterFile2(this.CurrentWeightData2, this.SystemConfig.ProductNumber - 1);
}
// 운전 시, Pop up 창 자동 Close
this.ChildFormMainDisplay.PopUpWarningClose();
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
else
this.ChildFormMenu.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
if (this.ChildFormMainDisplay.MainFeedback.IsUsingFeedback() == true)
this.ChildFormMainDisplay.MainFeedback.ItemChangeEnable(false);
#endregion
break;
case "CBT":
#region 정지
this.CurrentSystemStatus.Equipment = Define.E_EquipmentStatus.Stop;
// 생산속도 Clear
this.CurrentWeightData1.ProductionSpeed = 0;
this.CurrentWeightData2.ProductionSpeed = 0;
this.CurrentWeightData1.IsStart = false;
this.CurrentWeightData2.IsStart = false;
// 정지 시간 저장
this.CurrentWeightData1.StopTime = DateTime.Now;
this.CurrentWeightData2.StopTime = DateTime.Now;
this.SaveCounterFile1(this.CurrentWeightData1, this.SystemConfig.ProductNumber - 1);
this.SaveCounterFile2(this.CurrentWeightData2, this.SystemConfig.ProductNumber - 1);
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
else
this.ChildFormMenu.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
if (this.ChildFormMainDisplay.MainFeedback.IsUsingFeedback() == true)
this.ChildFormMainDisplay.MainFeedback.ItemChangeEnable(true);
#endregion
break;
case "CBE":
#region 소거
#endregion
break;
case "CBZ":
#region 영점
#endregion
break;
case "CSa":
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
{
try
{
switch (lane)
{
case "A":
// 센서에러 감지시간 설정 시
if (this.SystemConfig.SensorErrorDetectingTime > 0)
this.timerSensorError1.Enabled = true;
break;
case "B":
// 센서에러 감지시간 설정 시
if (this.SystemConfig.SensorErrorDetectingTime > 0)
this.timerSensorError2.Enabled = true;
break;
default:
break;
}
}
catch
{
ret = -1;
}
}
break;
default:
break;
}
return ret;
}
private int ReceiveCommandP(string strTemp)
{
int ret = 0;
string cmd = "", address = "", lane = "", receiveData = "";
// SIZE 확인
if (this.SizeCheck("P", strTemp) == false)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Receive Stream Data SIZE Error", DateTime.Now, strTemp));
return ret = -1;
}
// CHKSUM 확인
if (this.ChksumCheck(strTemp) == false)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Receive Stream Data CHKSUM Error", DateTime.Now, strTemp));
return ret = -1;
}
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
cmd = strTemp.Substring(0, 3);
lane = strTemp.Substring(5, 1);
address = strTemp.Substring(10, 4);
receiveData = strTemp.Substring(14, strTemp.Length - 16);
switch (cmd)
{
case "PR0":
if ((ret = this.ReceiveCommandPR0(lane, address, receiveData)) != 0)
return ret = -1;
break;
case "PW0":
if ((ret = this.ReceiveCommandPW0(lane, address, receiveData)) != 0)
return ret = -1;
break;
case "PB0":
if ((ret = this.ReceiveCommandPB0(lane, address, receiveData)) != 0)
return ret = -1;
break;
default:
break;
}
return ret;
}
private int ReceiveCommandS(string strTemp)
{
int ret = 0;
string cmd = "", lane = "", receiveData = "", transferCount = "";
// SIZE 확인
if (this.SizeCheck("S", strTemp) == false)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Receive Stream Data SIZE Error", DateTime.Now, strTemp));
return ret = -1;
}
// CHKSUM 확인
if (this.ChksumCheck(strTemp) == false)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Receive Stream Data CHKSUM Error", DateTime.Now, strTemp));
return ret = -1;
}
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
cmd = strTemp.Substring(0, 3);
transferCount = strTemp.Substring(3, 2);
lane = strTemp.Substring(5, 1);
receiveData = strTemp.Substring(10, strTemp.Length - 12);
switch (cmd)
{
case "SN0":
if ((ret = this.ReceiveCommandSN0(lane, receiveData)) != 0)
return ret;
break;
case "SR0":
if ((ret = this.ReceiveCommandSR0(lane, transferCount, receiveData)) != 0)
return ret;
break;
case "SC0":
if ((ret = this.ReceiveCommandSC0(lane, receiveData)) != 0)
return ret;
break;
case "ST0":
if ((ret = this.ReceiveCommandST0(lane, receiveData)) != 0)
return ret;
break;
case "SF0":
if ((ret = this.ReceiveCommandSF0(lane, receiveData)) != 0)
return ret;
break;
case "SG0":
if ((ret = this.ReceiveCommandSG0(lane, receiveData)) != 0)
return ret;
break;
case "SB0":
if ((ret = this.ReceiveCommandSB0(lane, receiveData)) != 0)
return ret;
break;
default:
break;
}
// ex
#region ex
//if (cmd == "SG0")
//{
// byte[] a = new UTF8Encoding().GetBytes(strTemp.Substring(0, strTemp.Length - 2));
// int j = 0, first, second;
// char char1, char2;
// string value1 = "";
// for (int i = 0; i < a.Length; i++)
// {
// j += a[i];
// }
// first = (j & 0x00f0) >> 4;
// if (first > 9)
// char1 = (char)(first + 0x37);
// else
// char1 = (char)(first + 0x30);
// second = j & 0x000f;
// if (second > 9)
// char2 = (char)(second + 0x37);
// else
// char2 = (char)(second + 0x30);
// value1 = char1.ToString() + char2.ToString();
// this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateChecksumDisplay(strTemp.Substring(strTemp.Length - 2, 2), value1);
//}
#endregion
return ret;
}
// 파라미터 읽기 응답
private int ReceiveCommandPR0(string lane, string address, string receiveData)
{
int ret = 0, iValue = 0;
string sValue = "";
try
{
switch (address)
{
case "1501":
#region Value Assign
this.SystemConfig.MainBoardVersion = receiveData.Substring(0, 4);
#endregion
this.ChildFormMenu.CenterInforSystemInformation.UpdateMainBoardVersionDisplay(this.SystemConfig.MainBoardVersion);
break;
case "2001":
#region Value Assign
iValue = int.Parse(receiveData);
if (iValue <= 0 || iValue > 1000)
return ret = -1;
#endregion
if (iValue != this.SystemConfig.ProductNumber)
{
this.SystemConfig.ProductNumber = iValue;
this.SaveSystemConfigurationFile1(this.SystemConfig);
}
// 최초에 부팅이 완료 되었는지 확인
if (this.IsBootingComplete == false)
this.IsBootingComplete = true;
this.LoadProductFile1(ref this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.LoadProductFile2(ref this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
this.LoadCounterFile1(ref this.CurrentWeightData1, this.SystemConfig.ProductNumber - 1);
this.LoadCounterFile2(ref this.CurrentWeightData2, this.SystemConfig.ProductNumber - 1);
this.LoadJudgmentSetFile1(ref this.CurrentJudgmentSetItem1, this.SystemConfig.ProductNumber - 1);
this.LoadJudgmentSetFile2(ref this.CurrentJudgmentSetItem2, this.SystemConfig.ProductNumber - 1);
// 생산속도 Clear
this.CurrentWeightData1.ProductionSpeed = 0;
this.CurrentWeightData2.ProductionSpeed = 0;
this.CurrentWeightData1.IsStart = false;
this.CurrentWeightData2.IsStart = false;
this.UpdateScreen();
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.UpdateCurrentProductDisplay(this.CurrentSystemStatus.Equipment,
this.CurrentProductItem1, this.CurrentProductItem2, this.CurrentWeightData1, this.CurrentWeightData2);
else if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.SystemJudgmentSetting)
this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateCurrentProductDisplay(this.CurrentSystemStatus.Equipment, this.CurrentProductItem1, this.CurrentProductItem2);
break;
case "3601":
#region Value Assign
this.CurrentCalibrationItem.Constant1 = receiveData.Substring(0, 7).Trim();
this.CurrentCalibrationItem.Constant2 = receiveData.Substring(7, 7).Trim();
#endregion
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.SystemCalibration)
this.ChildFormMenu.CenterSystemCalibration.UpdateConstantDisplay(this.CurrentCalibrationItem);
else if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.SystemJudgmentSetting)
this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateConstantDisplay(this.CurrentSystemStatus.Equipment, this.CurrentCalibrationItem);
break;
case "3901":
#region Value Assign
this.CurrentCalibrationItem.MaxWeight = receiveData.Substring(0, 7).Trim();
this.CurrentCalibrationItem.BalanceWeight = receiveData.Substring(7, 7).Trim();
this.CurrentCalibrationItem.Digit = receiveData.Substring(14, 7).Trim();
this.CurrentCalibrationItem.Constant1 = receiveData.Substring(21, 7).Trim();
this.CurrentCalibrationItem.Constant2 = receiveData.Substring(28, 7).Trim();
#endregion
this.ChildFormMenu.CenterSystemCalibration.UpdateCalibrationItemDisplay(this.CurrentSystemStatus.Equipment, this.CurrentCalibrationItem);
break;
case "4901":
#region Value Assign
this.CurrentSystemParameter9510.AutoZero1Time = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Range = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Variate = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Mode = receiveData.Substring(12, 4).Trim();
#endregion
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.SystemAutoZero)
this.ChildFormMenu.CenterSystemAutoZero.UpdateZero1ParameterDisplay(this.CurrentSystemParameter9510);
else if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.MainSubMenu.UpdateZero1ParameterDisplay(this.CurrentSystemParameter9510);
break;
case "4902":
#region Value Assign
this.CurrentSystemParameter9510.AutoZero2Mode = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Time = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Range = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Variate = receiveData.Substring(12, 4).Trim();
#endregion
this.ChildFormMenu.CenterSystemAutoZero.UpdateZero2ParameterDisplay(this.CurrentSystemParameter9510);
break;
case "4903":
#region Value Assign
this.CurrentSystemParameter9511.AutoZero1Time = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Range = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Variate = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Mode = receiveData.Substring(12, 4).Trim();
#endregion
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.SystemAutoZero)
this.ChildFormMenu.CenterSystemAutoZero.UpdateZero3ParameterDisplay(this.CurrentSystemParameter9511);
else if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.MainSubMenu.UpdateZero2ParameterDisplay(this.CurrentSystemParameter9511);
break;
case "4904":
#region Value Assign
this.CurrentSystemParameter9511.AutoZero2Mode = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Time = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Range = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Variate = receiveData.Substring(12, 4).Trim();
#endregion
this.ChildFormMenu.CenterSystemAutoZero.UpdateZero4ParameterDisplay(this.CurrentSystemParameter9511);
break;
case "5302":
#region Value Assign
#endregion
break;
case "6901":
#region Value Assign
#endregion
break;
case "9507":
#region Value Assign
this.CurrentSystemParameter9507.BuzzerOnTime = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9507.RelayOnTime = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9507.SorterDoubleEntry = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9507.Chattering = receiveData.Substring(12, 4).Trim();
this.CurrentSystemParameter9507.EntryNotDetectedWeight = receiveData.Substring(16, 7).Trim();
this.CurrentSystemParameter9507.Dummy1 = receiveData.Substring(23, 7).Trim();
this.CurrentSystemParameter9507.Dummy2 = receiveData.Substring(30, 7).Trim();
this.CurrentSystemParameter9507.Dummy3 = receiveData.Substring(37, 7).Trim();
this.CurrentSystemParameter9507.OptionBoard = receiveData.Substring(44, 4).Trim();
this.CurrentSystemParameter9507.Dummy4 = receiveData.Substring(48, 4).Trim();
this.CurrentSystemParameter9507.Dummy5 = receiveData.Substring(52, 4).Trim();
this.CurrentSystemParameter9507.Dummy6 = receiveData.Substring(56, 4).Trim();
this.CurrentSystemParameter9507.Dummy7 = receiveData.Substring(60, 4).Trim();
this.CurrentSystemParameter9507.Dummy8 = receiveData.Substring(64, 4).Trim();
this.CurrentSystemParameter9507.Dummy9 = receiveData.Substring(68, 4).Trim();
this.CurrentSystemParameter9507.Dummy10 = receiveData.Substring(72, 4).Trim();
this.CurrentSystemParameter9507.Dummy11 = receiveData.Substring(76, 4).Trim();
#endregion
// Read SystemParameter9508
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9508_SystemParameterRead, "");
break;
case "9508":
#region Value Assign
this.CurrentSystemParameter9508.OPT1SamplingCount = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9508.OPT1DelayCount = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9508.OPT1PulseWidth = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9508.OPT1IsWeightSetting = receiveData.Substring(12, 4).Trim();
this.CurrentSystemParameter9508.OPT1OverRange1 = receiveData.Substring(16, 7).Trim();
this.CurrentSystemParameter9508.OPT1UnderRange1 = receiveData.Substring(23, 7).Trim();
this.CurrentSystemParameter9508.OPT1Port = receiveData.Substring(30, 4).Trim();
this.CurrentSystemParameter9508.OPT2Port = receiveData.Substring(34, 4).Trim();
this.CurrentSystemParameter9508.OPT2DelayTime1 = receiveData.Substring(38, 4).Trim();
this.CurrentSystemParameter9508.OPT2DelayTime2 = receiveData.Substring(42, 4).Trim();
this.CurrentSystemParameter9508.OPT1OverRange2 = receiveData.Substring(46, 7).Trim();
this.CurrentSystemParameter9508.OPT1UnderRange2 = receiveData.Substring(53, 7).Trim();
this.CurrentSystemParameter9508.Dummy1 = receiveData.Substring(60, 4).Trim();
this.CurrentSystemParameter9508.Dummy2 = receiveData.Substring(64, 4).Trim();
this.CurrentSystemParameter9508.Dummy3 = receiveData.Substring(68, 4).Trim();
this.CurrentSystemParameter9508.Dummy4 = receiveData.Substring(72, 4).Trim();
this.CurrentSystemParameter9508.Dummy5 = receiveData.Substring(76, 4).Trim();
#endregion
// Read SystemParameter9509
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9509_SystemParameterRead, "");
break;
case "9509":
#region Value Assign
this.CurrentSystemParameter9509.ExternalOut1Mode = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut1DelayTime = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut1RunTime = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut2Mode = receiveData.Substring(12, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut2DelayTime = receiveData.Substring(16, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut2RunTime = receiveData.Substring(20, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut3Mode = receiveData.Substring(24, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut3DelayTime = receiveData.Substring(28, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut3RunTime = receiveData.Substring(32, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut4Mode = receiveData.Substring(36, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut4DelayTime = receiveData.Substring(40, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut4RunTime = receiveData.Substring(44, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut9Mode = receiveData.Substring(48, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut9DelayTime = receiveData.Substring(52, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut9RunTime = receiveData.Substring(56, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut10Mode = receiveData.Substring(60, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut10DelayTime = receiveData.Substring(64, 4).Trim();
this.CurrentSystemParameter9509.ExternalOut10RunTime = receiveData.Substring(68, 4).Trim();
this.CurrentSystemParameter9509.Dummy1 = receiveData.Substring(72, 4).Trim();
this.CurrentSystemParameter9509.Dummy2 = receiveData.Substring(76, 4).Trim();
#endregion
// Read SystemParameter9510
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9510_SystemParameterRead, "");
break;
case "9510":
#region Value Assign
this.CurrentSystemParameter9510.AutoZero1Time = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Range = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Variate = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9510.AutoZero1Mode = receiveData.Substring(12, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Mode = receiveData.Substring(16, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Time = receiveData.Substring(20, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Range = receiveData.Substring(24, 4).Trim();
this.CurrentSystemParameter9510.AutoZero2Variate = receiveData.Substring(28, 4).Trim();
this.CurrentSystemParameter9510.Dummy1 = receiveData.Substring(32, 4).Trim();
this.CurrentSystemParameter9510.Dummy2 = receiveData.Substring(36, 4).Trim();
this.CurrentSystemParameter9510.Dummy3 = receiveData.Substring(40, 4).Trim();
this.CurrentSystemParameter9510.Dummy4 = receiveData.Substring(44, 4).Trim();
this.CurrentSystemParameter9510.Dummy5 = receiveData.Substring(48, 4).Trim();
this.CurrentSystemParameter9510.Dummy6 = receiveData.Substring(52, 4).Trim();
#endregion
// Read SystemParameter9511
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9511_SystemParameterRead, "");
break;
case "9511":
#region Value Assign
this.CurrentSystemParameter9511.AutoZero1Time = receiveData.Substring(0, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Range = receiveData.Substring(4, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Variate = receiveData.Substring(8, 4).Trim();
this.CurrentSystemParameter9511.AutoZero1Mode = receiveData.Substring(12, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Mode = receiveData.Substring(16, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Time = receiveData.Substring(20, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Range = receiveData.Substring(24, 4).Trim();
this.CurrentSystemParameter9511.AutoZero2Variate = receiveData.Substring(28, 4).Trim();
this.CurrentSystemParameter9511.Dummy1 = receiveData.Substring(32, 4).Trim();
this.CurrentSystemParameter9511.Dummy2 = receiveData.Substring(36, 4).Trim();
this.CurrentSystemParameter9511.Dummy3 = receiveData.Substring(40, 4).Trim();
this.CurrentSystemParameter9511.Dummy4 = receiveData.Substring(44, 4).Trim();
this.CurrentSystemParameter9511.Dummy5 = receiveData.Substring(48, 4).Trim();
this.CurrentSystemParameter9511.Dummy6 = receiveData.Substring(52, 4).Trim();
#endregion
this.TransferProductParameter1(this.SystemConfig.ProductNumber);
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
// 파라미터 쓰기 응답
private int ReceiveCommandPW0(string lane, string address, string receiveData)
{
int ret = 0;
Define.E_ResponseData response = Define.E_ResponseData.NAK;
try
{
if (receiveData == "0")
response = Define.E_ResponseData.NAK;
else
response = Define.E_ResponseData.ACK;
switch (address)
{
case "4004":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._4901_ParameterRead1, "");
break;
case "4005":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._4902_ParameterRead2, "");
break;
case "4024":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._4903_ParameterRead3, "");
break;
case "4025":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._4904_ParameterRead4, "");
break;
case "9006":
if (response == Define.E_ResponseData.ACK)
this.TransferProductParameter1(this.SystemConfig.ProductNumber);
break;
case "9007":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._2001_ProductNumber, "");
break;
case "9045":
if (response == Define.E_ResponseData.ACK)
this.TransferProductParameter2(this.SystemConfig.ProductNumber);
break;
case "9046":
if (response == Define.E_ResponseData.ACK)
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._2001_ProductNumber, "");
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
// Bypass to motor
private int ReceiveCommandPB0(string lane, string address, string receiveData)
{
int ret = 0;
Define.E_ResponseData response = Define.E_ResponseData.NAK;
try
{
if (receiveData == "0000")
response = Define.E_ResponseData.NAK;
else
response = Define.E_ResponseData.ACK;
switch (address)
{
case "1101":
break;
case "1102":
break;
case "1103":
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
// 정지시 중량
private int ReceiveCommandSN0(string lane, string receiveData)
{
int ret = 0;
try
{
switch (lane)
{
case "Z":
#region Value Assign
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
{
this.CurrentWeightData1.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData1.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData1.ADCValue = receiveData.Substring(10, 5);
this.CurrentWeightData2.Status = Helper.StringToWeightStatus(receiveData.Substring(19, 2));
this.ConverterAlarm(ref this.CurrentWeightData2, receiveData.Substring(21, 3), 2);
this.CurrentWeightData2.Weight = Helper.StringToWeight(receiveData.Substring(24, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData2.ADCValue = receiveData.Substring(29, 5);
}
else
{
this.CurrentWeightData1.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData2.Status = Helper.StringToWeightStatus(receiveData.Substring(19, 2));
this.ConverterAlarm(ref this.CurrentWeightData2, receiveData.Substring(21, 3), 2);
}
#endregion
if (this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.ChildFormMainDisplay.UpdateStopWeightDisplay(this.CurrentSystemStatus.Equipment, this.CurrentWeightData1, this.CurrentWeightData2);
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
// 운전시 중량
private int ReceiveCommandSR0(string lane, string transferCount, string receiveData)
{
int ret = 0;
if (this.timerSensorError1.Enabled == true)
this.timerSensorError1.Enabled = false;
if (this.timerSensorError2.Enabled == true)
this.timerSensorError2.Enabled = false;
try
{
switch (lane)
{
case "A":
#region Value Assign
this.CurrentWeightData1.JudgmentStatus = Helper.StringToJudgmentStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData1.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData1.WeightString = receiveData.Substring(5, 5);
this.CurrentWeightData1.ADCValue = receiveData.Substring(10, 5);
this.CurrentWeightData1.ProductionSpeed = int.Parse(receiveData.Substring(15, 4).Trim());
this.CurrentWeightData1.WeightSum(this.CurrentWeightData1.JudgmentStatus);
#endregion
// 통신 제대로 받으면 ACK
this.TransferData(string.Format("{0}{1}{2}", CommunicationCommand.RunWeightData, (int)Define.E_ResponseData.ACK, transferCount), CommunicationID.MainBoard);
this.IsJudgmentNow1 = true;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("IsJudgmentNow1 ({0:yyyy-MM-dd HH:mm:ss}): true", DateTime.Now));
this.timerEntryNotDetectedIgnoreTime1.Enabled = true;
#region 통신
if (this.SystemConfig.SerialCOM1Mode != 0)
{
#region COM1
switch (this.SystemConfig.SerialCOM1Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM1(this.Transfer_1_STD1(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM1(this.Transfer_2_Remote(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane2)
if (this.SystemConfig.IsPrint1Enable == true)
this.TransferSerialCOM1(this.Transfer_3_Print(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM1(this.Transfer_4_STD2(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
default:
break;
}
#endregion
}
if (this.SystemConfig.SerialCOM3Mode != 0)
{
#region COM3
switch (this.SystemConfig.SerialCOM3Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM3(this.Transfer_1_STD1(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM3(this.Transfer_2_Remote(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane2)
if (this.SystemConfig.IsPrint1Enable == true)
this.TransferSerialCOM3(this.Transfer_3_Print(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM3(this.Transfer_4_STD2(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
default:
break;
}
#endregion
}
if (this.SystemConfig.SerialCOM4Mode != 0)
{
#region COM4
switch (this.SystemConfig.SerialCOM4Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM4(this.Transfer_1_STD1(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM4(this.Transfer_2_Remote(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane2)
if (this.SystemConfig.IsPrint1Enable == true)
this.TransferSerialCOM4(this.Transfer_3_Print(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane2)
this.TransferSerialCOM4(this.Transfer_4_STD2(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
default:
break;
}
#endregion
}
// 이더넷
switch (this.SystemConfig.EthernetOperationMode)
{
case 1: // Server
if (this.smartTCPMultiServer.ClientInfoList != null)
{
#region Server
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
switch (this.SystemConfig.EthernetCommMode)
{
case 1:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetServerSendMessage(client,
this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetServerSendMessage(client, this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 3:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
if (this.SystemConfig.IsPrint1Enable == true)
this.EthernetServerSendMessage(client, this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 4:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetServerSendMessage(client,
this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 5:
break;
default:
break;
}
}
#endregion
}
break;
case 2: // Client
switch (this.SystemConfig.EthernetCommMode)
{
#region Client
case 1:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetWeightData(this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetWeightData(this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case 3:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
if (this.SystemConfig.IsPrint1Enable == true)
this.EthernetWeightData(this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case (int)Define.E_CommMode.f4_STD2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane2)
this.EthernetWeightData(this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane1, this.SystemConfig, this.CurrentWeightData1, this.CurrentProductItem1));
break;
case (int)Define.E_CommMode.f5_Modbus: // 22, Modbus TCP
if (this.SystemConfig.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
{
byte[] sendData = this.Modbus.MakeTCPSendAllData(this.Transfer_5_Modbus_Write_1Lane(), this.SystemConfig.ModbusTCPStartAddress);
this.EthernetWeightDataForModbus(sendData);
}
break;
default:
break;
#endregion
}
break;
default:
break;
}
#endregion
// CurrentDisplay
switch (this.CurrentSystemStatus.CurrentDisplay)
{
case Define.E_DisplayStore.MainDisplay:
#region MainDisplay
this.ChildFormMainDisplay.UpdateStartWeightDisplay1(this.CurrentSystemStatus.Equipment, this.CurrentWeightData1);
if (this.CurrentWeightData1.JudgmentStatus != Define.E_JudgmentStatus.Empty)
this.DataBackup1(this.CurrentWeightData1);
// 표준분포
this.CurrentWeightData1.SetNormalDistribution(this.CurrentProductItem1.CollectionNormalDistributionRange, this.CurrentWeightData1.WeightString);
#endregion
break;
default:
break;
}
break;
case "B":
#region Value Assign
this.CurrentWeightData2.JudgmentStatus = Helper.StringToJudgmentStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 2);
this.CurrentWeightData2.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData2.WeightString = receiveData.Substring(5, 5);
this.CurrentWeightData2.ADCValue = receiveData.Substring(10, 5);
this.CurrentWeightData2.ProductionSpeed = int.Parse(receiveData.Substring(15, 4).Trim());
this.CurrentWeightData2.WeightSum(this.CurrentWeightData2.JudgmentStatus);
#endregion
// 통신 제대로 받으면 ACK
this.TransferData(string.Format("{0}{1}{2}", CommunicationCommand.RunWeightData, (int)Define.E_ResponseData.ACK, transferCount), CommunicationID.MainBoard);
this.IsJudgmentNow2 = true;
// 로그
//if (this.IsCommunicationLogOpen == true)
// this.smartFileCommunicationLog.WriteString(string.Format("IsJudgmentNow2 ({0:yyyy-MM-dd HH:mm:ss}): true", DateTime.Now));
this.timerEntryNotDetectedIgnoreTime2.Enabled = true;
#region 통신
if (this.SystemConfig.SerialCOM1Mode != 0)
{
#region COM1
switch (this.SystemConfig.SerialCOM1Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM1(this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM1(this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane1, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane1)
if (this.SystemConfig.IsPrint2Enable == true)
this.TransferSerialCOM1(this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM1 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM1(this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroCOM1, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
default:
break;
}
#endregion
}
if (this.SystemConfig.SerialCOM3Mode != 0)
{
#region COM3
switch (this.SystemConfig.SerialCOM3Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM3(this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM3(this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane1)
if (this.SystemConfig.IsPrint2Enable == true)
this.TransferSerialCOM3(this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM3 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM3(this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroCOM3, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
default:
break;
}
#endregion
}
if (this.SystemConfig.SerialCOM4Mode != 0)
{
#region COM4
switch (this.SystemConfig.SerialCOM4Mode)
{
case 1:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM4(this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 2:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM4(this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 3:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane1)
if (this.SystemConfig.IsPrint1Enable == true)
this.TransferSerialCOM4(this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 4:
if (this.SystemConfig.SelectLaneCOM4 != (int)Define.E_Lane.Lane1)
this.TransferSerialCOM4(this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroCOM4, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
default:
break;
}
#endregion
}
// 이더넷
switch (this.SystemConfig.EthernetOperationMode)
{
case 1: // Server
if (this.smartTCPMultiServer.ClientInfoList != null)
{
#region Server
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
switch (this.SystemConfig.EthernetCommMode)
{
case 1:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetServerSendMessage(client,
this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetServerSendMessage(client, this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 3:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
if (this.SystemConfig.IsPrint1Enable == true)
this.EthernetServerSendMessage(client, this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 4:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetServerSendMessage(client,
this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 5:
break;
default:
break;
}
}
#endregion
}
break;
case 2: // Client
switch (this.SystemConfig.EthernetCommMode)
{
#region Client
case 1:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetWeightData(this.Transfer_1_STD1
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetWeightData(this.Transfer_2_Remote
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case 3:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
if (this.SystemConfig.IsPrint1Enable == true)
this.EthernetWeightData(this.Transfer_3_Print
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case (int)Define.E_CommMode.f4_STD2:
if (this.SystemConfig.SelectLaneEthernet != (int)Define.E_Lane.Lane1)
this.EthernetWeightData(this.Transfer_4_STD2
(this.SystemConfig.IsCharToFillZeroEthernet, Define.E_Lane.Lane2, this.SystemConfig, this.CurrentWeightData2, this.CurrentProductItem2));
break;
case (int)Define.E_CommMode.f5_Modbus: // 22, Modbus TCP
if (this.SystemConfig.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
{
byte[] sendData = this.Modbus.MakeTCPSendAllData(this.Transfer_5_Modbus_Write_1Lane(), this.SystemConfig.ModbusTCPStartAddress);
this.EthernetWeightDataForModbus(sendData);
}
break;
default:
break;
#endregion
}
break;
default:
break;
}
#endregion
// CurrentDisplay
switch (this.CurrentSystemStatus.CurrentDisplay)
{
case Define.E_DisplayStore.MainDisplay:
#region MainDisplay
this.ChildFormMainDisplay.UpdateStartWeightDisplay2(this.CurrentSystemStatus.Equipment, this.CurrentWeightData2);
if (this.CurrentWeightData2.JudgmentStatus != Define.E_JudgmentStatus.Empty)
this.DataBackup2(this.CurrentWeightData2);
// 표준분포
this.CurrentWeightData2.SetNormalDistribution(this.CurrentProductItem2.CollectionNormalDistributionRange, this.CurrentWeightData2.WeightString);
#endregion
break;
default:
break;
}
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
// 중량조정시 중량
private int ReceiveCommandSC0(string lane, string receiveData)
{
int ret = 0;
switch (lane)
{
case "Z":
#region Value Assign
this.CurrentWeightData1.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData1.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData1.ADCValue = receiveData.Substring(10, 5);
this.CurrentWeightData2.Status = Helper.StringToWeightStatus(receiveData.Substring(19, 2));
this.ConverterAlarm(ref this.CurrentWeightData2, receiveData.Substring(21, 3), 2);
this.CurrentWeightData2.Weight = Helper.StringToWeight(receiveData.Substring(24, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData2.ADCValue = receiveData.Substring(29, 5);
#endregion
this.ChildFormMenu.CenterSystemCalibration.UpdateWeightDisplay(this.CurrentSystemStatus.Equipment, this.CurrentWeightData1, this.CurrentWeightData2);
break;
default:
break;
}
return ret;
}
// IO테스트-IN
private int ReceiveCommandST0(string lane, string receiveData)
{
int ret = 0;
switch (lane)
{
case "0":
#region Value Assign
for (int i = 0; i < 8; i++)
this.CollectionIOTest_InputData[i] = receiveData.Substring(i, 1);
#endregion
if (this.CurrentSystemStatus.CurrentMode == Define.E_DisplayMode.IOTest)
this.ChildFormMenu.CenterSystemIOTest.UpdateInputRead(this.CollectionIOTest_InputData);
break;
default:
break;
}
return ret;
}
// 판정설정시 중량 - 정지
private int ReceiveCommandSF0(string lane, string receiveData)
{
int ret = 0;
switch (lane)
{
case "Z":
#region Value Assign
this.CurrentWeightData1.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData1.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData1.ADCValue = receiveData.Substring(10, 5);
this.CurrentWeightData2.Status = Helper.StringToWeightStatus(receiveData.Substring(19, 2));
this.ConverterAlarm(ref this.CurrentWeightData2, receiveData.Substring(21, 3), 2);
this.CurrentWeightData2.Weight = Helper.StringToWeight(receiveData.Substring(24, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData2.ADCValue = receiveData.Substring(29, 5);
#endregion
this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateStopWeightDisplay(this.CurrentSystemStatus.Equipment,
this.CurrentWeightData1, this.CurrentWeightData2);
break;
default:
break;
}
return ret;
}
// 판정설정 그래프
private int ReceiveCommandSG0(string lane, string receiveData)
{
int ret = 0, temp = 15;
if (this.timerSensorError1.Enabled == true)
this.timerSensorError1.Enabled = false;
if (this.timerSensorError2.Enabled == true)
this.timerSensorError2.Enabled = false;
switch (lane)
{
case "A":
#region Value Assign
this.CurrentWeightData1.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData1, receiveData.Substring(2, 3), 1);
this.CurrentWeightData1.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData1.ADCValue = receiveData.Substring(10, 5);
for (int i = 0; i < this.CollectionGraphData.Count; i++)
{
this.CollectionGraphData[i] = int.Parse(receiveData.Substring(temp, 5));
temp += 5;
}
#endregion
this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateGraphDataDisplay(this.CurrentSystemStatus.Equipment, this.CurrentWeightData1, this.CollectionGraphData);
break;
case "B":
#region Value Assign
this.CurrentWeightData2.Status = Helper.StringToWeightStatus(receiveData.Substring(0, 2));
this.ConverterAlarm(ref this.CurrentWeightData2, receiveData.Substring(2, 3), 2);
this.CurrentWeightData2.Weight = Helper.StringToWeight(receiveData.Substring(5, 5), this.SystemConfig.DecimalPlaces);
this.CurrentWeightData2.ADCValue = receiveData.Substring(10, 5);
for (int i = 0; i < this.CollectionGraphData.Count; i++)
{
this.CollectionGraphData[i] = int.Parse(receiveData.Substring(temp, 5));
temp += 5;
}
#endregion
this.ChildFormMenu.CenterSystemJudgmentSetting.UpdateGraphDataDisplay(this.CurrentSystemStatus.Equipment, this.CurrentWeightData2, this.CollectionGraphData);
break;
default:
break;
}
return ret;
}
// 피드백 데이터
private int ReceiveCommandSB0(string lane, string receiveData)
{
int ret = 0;
int temp = 0;
try
{
switch (lane)
{
case "A":
#region Value Assign
this.CurrentFeedbackItem1.SampleCount = receiveData.Substring(0, 4);
this.CurrentFeedbackItem1.DelayCount = receiveData.Substring(4, 4);
this.CurrentFeedbackItem1.Sign = receiveData.Substring(8, 1);
this.CurrentFeedbackItem1.FeedbackWeight = receiveData.Substring(9, 7);
#endregion
this.ChildFormMainDisplay.MainFeedback.UpdateDisplayCurrentValue1(this.CurrentFeedbackItem1);
break;
case "B":
#region Value Assign
this.CurrentFeedbackItem2.SampleCount = receiveData.Substring(0, 4);
this.CurrentFeedbackItem2.DelayCount = receiveData.Substring(4, 4);
this.CurrentFeedbackItem2.Sign = receiveData.Substring(8, 1);
this.CurrentFeedbackItem2.FeedbackWeight = receiveData.Substring(9, 7);
#endregion
this.ChildFormMainDisplay.MainFeedback.UpdateDisplayCurrentValue2(this.CurrentFeedbackItem2);
break;
default:
break;
}
}
catch
{
ret = -1;
}
return ret;
}
#endregion
#region Communication protocol
private string Transfer_1_STD1(bool isFillZero, Define.E_Lane line, SystemConfigurationItem system, WeightData weight, ProductItem product)
{
StringBuilder sb = new StringBuilder();
if (weight.JudgmentStatus == Define.E_JudgmentStatus.Empty)
return "";
sb.Append((char)0x02);
sb.Append(string.Format("IN{0:000}", system.EquipmentID));
sb.Append(string.Format("{0:0000}", product.Number));
sb.Append((int)line);
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.UnderRange, this.SystemConfig.DecimalPlaces)));
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.PassRange, this.SystemConfig.DecimalPlaces)));
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.OverRange, this.SystemConfig.DecimalPlaces)));
switch (weight.JudgmentStatus)
{
case Define.E_JudgmentStatus.Empty:
break;
case Define.E_JudgmentStatus.Under:
sb.Append("U");
break;
case Define.E_JudgmentStatus.Pass:
sb.Append("P");
break;
case Define.E_JudgmentStatus.Over:
sb.Append("O");
break;
case Define.E_JudgmentStatus.Double:
sb.Append("D");
break;
case Define.E_JudgmentStatus.Metal:
sb.Append("M");
break;
case Define.E_JudgmentStatus.ExNg:
sb.Append("E");
break;
default:
sb.Append("E");
break;
}
sb.Append(Helper.StringZeroFillDigits6(Helper.DoubleToString(weight.Weight, this.SystemConfig.DecimalPlaces)));
sb.Append((char)0x03);
return sb.ToString();
}
private string Transfer_2_Remote(bool isFillZero, Define.E_Lane line, WeightData weight, ProductItem product)
{
StringBuilder sb = new StringBuilder();
if (weight.JudgmentStatus == Define.E_JudgmentStatus.Empty)
return "";
sb.Append((char)0x02);
sb.Append("01");
switch (weight.JudgmentStatus)
{
case Define.E_JudgmentStatus.Empty:
break;
case Define.E_JudgmentStatus.Under:
sb.Append("U");
break;
case Define.E_JudgmentStatus.Pass:
sb.Append("P");
break;
case Define.E_JudgmentStatus.Over:
sb.Append("O");
break;
case Define.E_JudgmentStatus.Double:
sb.Append("D");
break;
case Define.E_JudgmentStatus.Metal:
sb.Append("M");
break;
case Define.E_JudgmentStatus.ExNg:
sb.Append("E");
break;
default:
sb.Append(" ");
break;
}
sb.Append(Helper.StringZeroFillDigits6(Helper.DoubleToString(weight.Weight, this.SystemConfig.DecimalPlaces)));
sb.Append((char)0x03);
return sb.ToString();
}
private string Transfer_3_Print(bool isFillZero, Define.E_Lane line, WeightData weight, ProductItem product)
{
string value = "";
StringBuilder sb = new StringBuilder();
if (weight.JudgmentStatus == Define.E_JudgmentStatus.Empty)
return "";
sb.Append(string.Format("{0, 4}", this.SystemConfig.ProductNumber));
sb.Append(string.Format("{0, 3}", (int)line));
if (weight.JudgmentStatus == Define.E_JudgmentStatus.Under)
sb.Append(" U");
else if (weight.JudgmentStatus == Define.E_JudgmentStatus.Pass)
sb.Append(" P");
else if (weight.JudgmentStatus == Define.E_JudgmentStatus.Over)
sb.Append(" O");
else if (weight.JudgmentStatus == Define.E_JudgmentStatus.Double)
sb.Append(" D");
else
sb.Append(" E");
value = Helper.DoubleToString(weight.Weight, this.SystemConfig.DecimalPlaces);
sb.Append(value.PadLeft(8, ' '));
value = weight.TotalCount.ToString();
sb.Append(value.PadLeft(11, ' '));
return sb.ToString();
}
private string Transfer_4_STD2(bool isFillZero, Define.E_Lane line, SystemConfigurationItem system, WeightData weight, ProductItem product)
{
StringBuilder sb = new StringBuilder();
if (weight.JudgmentStatus == Define.E_JudgmentStatus.Empty)
return "";
sb.Append((char)0x02);
sb.Append(string.Format("IN{0:000}", system.EquipmentID));
sb.Append(string.Format("{0:0000}", product.Number));
sb.Append((int)line);
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.UnderRange, this.SystemConfig.DecimalPlaces)));
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.PassRange, this.SystemConfig.DecimalPlaces)));
sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.OverRange, this.SystemConfig.DecimalPlaces)));
sb.Append(string.Format("{0:0000000}", weight.UnderCount));
sb.Append(string.Format("{0:0000000}", weight.PassCount));
sb.Append(string.Format("{0:0000000}", weight.OverCount));
sb.Append(string.Format("{0:0000000}", weight.ETCExNGCount));
sb.Append(string.Format("{0:000000000}", weight.TotalCount));
switch (weight.JudgmentStatus)
{
case Define.E_JudgmentStatus.Empty:
break;
case Define.E_JudgmentStatus.Under:
sb.Append("U");
break;
case Define.E_JudgmentStatus.Pass:
sb.Append("P");
break;
case Define.E_JudgmentStatus.Over:
sb.Append("O");
break;
case Define.E_JudgmentStatus.Double:
sb.Append("D");
break;
case Define.E_JudgmentStatus.Metal:
sb.Append("M");
break;
case Define.E_JudgmentStatus.ExNg:
sb.Append("E");
break;
default:
sb.Append("E");
break;
}
if (weight.Weight <= 0.0)
sb.Append("-");
else
sb.Append(" ");
string temp = Helper.DoubleToString(weight.Weight, this.SystemConfig.DecimalPlaces);
if (temp.StartsWith("-"))
temp = temp.Substring(1, temp.Length - 1);
sb.Append(temp.PadLeft(6, ' '));
sb.Append((char)0x03);
return sb.ToString();
}
public byte[] Transfer_5_Modbus_Write_1Lane()
{
byte[] madeData = new byte[ModbusTotalBytes];
byte[] Length4Value = new byte[4];
byte[] productName = new UTF8Encoding().GetBytes(this.CurrentProductItem1.Name);
//Console.Write("\n" + string.Format("Transfer_22_Modbus_Write {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, this.CurrentProductItem1.Name));
double underValue = Helper.StringToWeight(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces);
double passValue = Helper.StringToWeight(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces);
double overValue = Helper.StringToWeight(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces);
double tareValue = Helper.StringToWeight(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces);
int equipmentStatus;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
equipmentStatus = 1;
else
equipmentStatus = 0;
int alarmStatus;
if (this.IsAlarmOccured == true)
alarmStatus = 1;
else
alarmStatus = 0;
int judgmentStatus;
switch (this.CurrentWeightData1.JudgmentStatus)
{
case Define.E_JudgmentStatus.Over:
judgmentStatus = 0;
break;
case Define.E_JudgmentStatus.Pass:
judgmentStatus = 1;
break;
case Define.E_JudgmentStatus.Under:
judgmentStatus = 2;
break;
case Define.E_JudgmentStatus.Metal:
judgmentStatus = 3;
break;
case Define.E_JudgmentStatus.Double:
judgmentStatus = 4;
break;
default:
judgmentStatus = 5;
break;
}
Length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 4; i++)
madeData[i] = Length4Value[3 - i];
Length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 4; i++)
madeData[4 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 4; i++)
madeData[8 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 4; i++)
madeData[12 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 4; i++)
madeData[16 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 4; i++)
madeData[20 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 4; i++)
madeData[24 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 4; i++)
madeData[28 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.PassCount);
for (int i = 0; i < 4; i++)
madeData[32 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.OverCount);
for (int i = 0; i < 4; i++)
madeData[36 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.OverCount + this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 4; i++)
madeData[40 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.ExNGCount);
for (int i = 0; i < 4; i++)
madeData[44 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.TotalCount);
for (int i = 0; i < 4; i++)
madeData[48 + i] = Length4Value[3 - i];
Length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 4; i++)
madeData[52 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)this.CurrentWeightData1.Weight);
for (int i = 0; i < 4; i++)
madeData[56 + i] = Length4Value[3 - i];
Length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 4; i++)
madeData[60 + i] = Length4Value[3 - i];
Length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 4; i++)
madeData[64 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.ProductionSpeed);
for (int i = 0; i < 4; i++)
madeData[68 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.MetalDetectionCount);
for (int i = 0; i < 4; i++)
madeData[72 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData1.DoubleEntryCount);
for (int i = 0; i < 4; i++)
madeData[76 + i] = Length4Value[3 - i];
int nameLength = productName.Length;
for (int i = 0; i < nameLength; i++)
madeData[80 + i] = productName[i];
for (int i = 0; i < 20 - nameLength; i++)
madeData[80 + nameLength + i] = 0x00;
//Console.Write("\n" + string.Format("Transfer_22_Modbus_Write {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, Helper.ByteToHexString(madeData)));
return madeData;
}
public byte[] Transfer_5_Modbus_Write_2Lane()
{
byte[] madeData = new byte[ModbusTotalBytes];
byte[] Length4Value = new byte[4];
byte[] productName = new UTF8Encoding().GetBytes(this.CurrentProductItem2.Name);
//Console.Write("\n" + string.Format("Transfer_22_Modbus_Write {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, this.CurrentProductItem1.Name));
double underValue = Helper.StringToWeight(this.CurrentProductItem2.UnderRange, this.SystemConfig.DecimalPlaces);
double passValue = Helper.StringToWeight(this.CurrentProductItem2.PassRange, this.SystemConfig.DecimalPlaces);
double overValue = Helper.StringToWeight(this.CurrentProductItem2.OverRange, this.SystemConfig.DecimalPlaces);
double tareValue = Helper.StringToWeight(this.CurrentProductItem2.TareRange, this.SystemConfig.DecimalPlaces);
int equipmentStatus;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
equipmentStatus = 1;
else
equipmentStatus = 0;
int alarmStatus;
if (this.IsAlarmOccured == true)
alarmStatus = 1;
else
alarmStatus = 0;
int judgmentStatus;
switch (this.CurrentWeightData2.JudgmentStatus)
{
case Define.E_JudgmentStatus.Over:
judgmentStatus = 0;
break;
case Define.E_JudgmentStatus.Pass:
judgmentStatus = 1;
break;
case Define.E_JudgmentStatus.Under:
judgmentStatus = 2;
break;
case Define.E_JudgmentStatus.Metal:
judgmentStatus = 3;
break;
case Define.E_JudgmentStatus.Double:
judgmentStatus = 4;
break;
default:
judgmentStatus = 5;
break;
}
Length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 4; i++)
madeData[i] = Length4Value[3 - i];
Length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 4; i++)
madeData[4 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 4; i++)
madeData[8 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 4; i++)
madeData[12 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 4; i++)
madeData[16 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 4; i++)
madeData[20 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 4; i++)
madeData[24 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.UnderCount);
for (int i = 0; i < 4; i++)
madeData[28 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.PassCount);
for (int i = 0; i < 4; i++)
madeData[32 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.OverCount);
for (int i = 0; i < 4; i++)
madeData[36 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.OverCount + this.CurrentWeightData2.UnderCount);
for (int i = 0; i < 4; i++)
madeData[40 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.ExNGCount);
for (int i = 0; i < 4; i++)
madeData[44 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.TotalCount);
for (int i = 0; i < 4; i++)
madeData[48 + i] = Length4Value[3 - i];
Length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 4; i++)
madeData[52 + i] = Length4Value[3 - i];
Length4Value = GetBytes((Single)this.CurrentWeightData2.Weight);
for (int i = 0; i < 4; i++)
madeData[56 + i] = Length4Value[3 - i];
Length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 4; i++)
madeData[60 + i] = Length4Value[3 - i];
Length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 4; i++)
madeData[64 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.ProductionSpeed);
for (int i = 0; i < 4; i++)
madeData[68 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.MetalDetectionCount);
for (int i = 0; i < 4; i++)
madeData[72 + i] = Length4Value[3 - i];
Length4Value = GetBytes(this.CurrentWeightData2.DoubleEntryCount);
for (int i = 0; i < 4; i++)
madeData[76 + i] = Length4Value[3 - i];
int nameLength = productName.Length;
for (int i = 0; i < nameLength; i++)
madeData[80 + i] = productName[i];
for (int i = 0; i < 20 - nameLength; i++)
madeData[80 + nameLength + i] = 0x00;
//Console.Write("\n" + string.Format("Transfer_22_Modbus_Write {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, Helper.ByteToHexString(madeData)));
return madeData;
}
private byte[] Transfer_5_Modbus_Read_RTU(byte[] readByte)
{
byte[] startAddressByte = new byte[2] { readByte[2], readByte[3] };
byte[] numberOfRegisterByte = new byte[2] { readByte[4], readByte[5] };
int startAddressInt;
int numberOfRegisterInt;
int madeDataIndex = 0;
byte[] length2Value = new byte[2];
byte[] length4Value = new byte[4];
startAddressInt = Modbus.ToBigEndianAndInt(startAddressByte);
numberOfRegisterInt = Modbus.ToBigEndianAndInt(numberOfRegisterByte);
byte[] madeData = new byte[numberOfRegisterInt * 2];
if (readByte[1] == ModbusFunctionCode.FunctionCode_03)
{
#region Read Holding Register(0x03)
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Make data
case _40000_ModbusAddress._01_Clear:
length2Value = GetBytes(this.Current40000ModbusData1._40011_Clear);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._02_ClearResult:
length2Value = GetBytes(this.Current40000ModbusData1._40012_ClearResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._03_Operation:
length2Value = GetBytes(this.Current40000ModbusData1._40013_Operation);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._04_OperationResult:
length2Value = GetBytes(this.Current40000ModbusData1._40014_OperationResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._05_ProductChange_High:
length4Value = GetBytes(this.Current40000ModbusData1._40015_ProductChange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._06_ProductChange_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40015_ProductChange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._07_ProductChangeResult:
length2Value = GetBytes(this.Current40000ModbusData1._40017_ProductChangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._08_UnderRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40018_UnderRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._09_UnderRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40018_UnderRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._10_UnderRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40020_UnderRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._11_PassRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40021_PassRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._12_PassRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40021_PassRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._13_PassRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40023_PassRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._14_OverRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40024_OverRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._15_OverRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40024_OverRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._16_OverRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40026_OverRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._17_TareWeight1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40027_TareWeight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._18_TareWeight1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40027_TareWeight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._19_TareWeightResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40029_TareWeightResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
default:
break;
#endregion
}
madeDataIndex += 2;
}
#endregion
}
else if (readByte[1] == ModbusFunctionCode.FunctionCode_04)
{
#region Read Input Register(0x04)
double underValue = Helper.StringToWeight(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces);
double passValue = Helper.StringToWeight(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces);
double overValue = Helper.StringToWeight(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces);
double tareValue = Helper.StringToWeight(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces);
int equipmentStatus;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
equipmentStatus = 1;
else
equipmentStatus = 0;
int alarmStatus;
if (this.IsAlarmOccured == true)
alarmStatus = 1;
else
alarmStatus = 0;
int judgmentStatus;
switch (this.CurrentWeightData1.JudgmentStatus)
{
case Define.E_JudgmentStatus.Over:
judgmentStatus = 0;
break;
case Define.E_JudgmentStatus.Pass:
judgmentStatus = 1;
break;
case Define.E_JudgmentStatus.Under:
judgmentStatus = 2;
break;
case Define.E_JudgmentStatus.Metal:
judgmentStatus = 3;
break;
case Define.E_JudgmentStatus.Double:
judgmentStatus = 4;
break;
default:
judgmentStatus = 5;
break;
}
byte[] productName = this.Current30000ModbusData1.ProductName;
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Make data
#region Data
case _30000_ModbusAddress._01_IsUpdate_High:
length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._02_IsUpdate_Low:
length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._03_EquipmentID_High:
length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._04_EquipmentID_Low:
length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._05_ProductNo_High:
length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._06_ProductNo_Low:
length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._07_UnderValue_High:
length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._08_UnderValue_Low:
length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._09_PassValue_High:
length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._10_PassValue_Low:
length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._11_OverValue_High:
length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._12_OverValue_Low:
length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._13_TareValue_High:
length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._14_TareValue_Low:
length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._15_UnderCount_High:
length4Value = GetBytes(this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._16_UnderCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._17_PassCount_High:
length4Value = GetBytes(this.CurrentWeightData1.PassCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._18_PassCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.PassCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._19_OverCount_High:
length4Value = GetBytes(this.CurrentWeightData1.OverCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._20_OverCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.OverCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._21_NGCount_High:
length4Value = GetBytes(this.CurrentWeightData1.OverCount + this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._22_NGCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.OverCount + this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._23_ExNGCount_High:
length4Value = GetBytes(this.CurrentWeightData1.ExNGCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._24_ExNGCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.ExNGCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._25_TotalCount_High:
length4Value = GetBytes(this.CurrentWeightData1.TotalCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._26_TotalCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.TotalCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._27_Grade_High:
length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._28_Grade_Low:
length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._29_Weight_High:
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
length4Value = GetBytes((Single)0.0);
else
length4Value = GetBytes((Single)this.CurrentWeightData1.Weight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._30_Weight_Low:
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
length4Value = GetBytes((Single)0.0);
else
length4Value = GetBytes((Single)this.CurrentWeightData1.Weight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._31_OperationStatus_High:
length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._32_OperationStatus_Low:
length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._33_AlarmStatus_High:
length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._34_AlarmStatus_Low:
length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._35_Speed_High:
length4Value = GetBytes(this.CurrentWeightData1.ProductionSpeed);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._36_Speed_Low:
length4Value = GetBytes(this.CurrentWeightData1.ProductionSpeed);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._37_MetalDetectionCount_High:
length4Value = GetBytes(this.CurrentWeightData1.MetalDetectionCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._38_MetalDetectionCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.MetalDetectionCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._39_DoubleEntryCount_High:
length4Value = GetBytes(this.CurrentWeightData1.DoubleEntryCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._40_DoubleEntryCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.DoubleEntryCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._41_ProductName:
for (int i = 0; i < productName.Length; i++)
madeData[madeDataIndex + i] = productName[i];
break;
#endregion
#region Alarm
case _30000_ModbusAddress._1001_Alarm1:
if (this.CurrentAlarm.Count > 0)
length2Value = GetBytes(this.CurrentAlarm[0]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1002_Alarm2:
if (this.CurrentAlarm.Count > 1)
length2Value = GetBytes(this.CurrentAlarm[1]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1003_Alarm3:
if (this.CurrentAlarm.Count > 2)
length2Value = GetBytes(this.CurrentAlarm[2]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1004_Alarm4:
if (this.CurrentAlarm.Count > 3)
length2Value = GetBytes(this.CurrentAlarm[3]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1005_Alarm5:
if (this.CurrentAlarm.Count > 4)
length2Value = GetBytes(this.CurrentAlarm[4]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1006_Alarm6:
if (this.CurrentAlarm.Count > 5)
length2Value = GetBytes(this.CurrentAlarm[5]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
#endregion
default:
break;
#endregion
}
if (j == (int)_30000_ModbusAddress._41_ProductName)
madeDataIndex += 20;
else
madeDataIndex += 2;
}
#endregion
}
return madeData;
}
private byte[] Transfer_5_Modbus_Read_TCP(byte[] readByte)
{
byte[] startAddressByte = new byte[2] { readByte[8], readByte[9] };
byte[] numberOfRegisterByte = new byte[2] { readByte[10], readByte[11] };
int startAddressInt;
int numberOfRegisterInt;
int madeDataIndex = 0;
byte[] length2Value = new byte[2];
byte[] length4Value = new byte[4];
startAddressInt = Modbus.ToBigEndianAndInt(startAddressByte);
numberOfRegisterInt = Modbus.ToBigEndianAndInt(numberOfRegisterByte);
byte[] madeData = new byte[numberOfRegisterInt * 2];
if (readByte[7] == ModbusFunctionCode.FunctionCode_03)
{
#region Read Holding Register(0x03)
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Make data
case _40000_ModbusAddress._01_Clear:
length2Value = GetBytes(this.Current40000ModbusData1._40011_Clear);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._02_ClearResult:
length2Value = GetBytes(this.Current40000ModbusData1._40012_ClearResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._03_Operation:
length2Value = GetBytes(this.Current40000ModbusData1._40013_Operation);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._04_OperationResult:
length2Value = GetBytes(this.Current40000ModbusData1._40014_OperationResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._05_ProductChange_High:
length4Value = GetBytes(this.Current40000ModbusData1._40015_ProductChange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._06_ProductChange_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40015_ProductChange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._07_ProductChangeResult:
length2Value = GetBytes(this.Current40000ModbusData1._40017_ProductChangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._08_UnderRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40018_UnderRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._09_UnderRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40018_UnderRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._10_UnderRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40020_UnderRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._11_PassRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40021_PassRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._12_PassRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40021_PassRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._13_PassRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40023_PassRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._14_OverRange1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40024_OverRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._15_OverRange1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40024_OverRange);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._16_OverRangeResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40026_OverRangeResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _40000_ModbusAddress._17_TareWeight1_High:
length4Value = GetBytes(this.Current40000ModbusData1._40027_TareWeight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _40000_ModbusAddress._18_TareWeight1_Low:
length4Value = GetBytes(this.Current40000ModbusData1._40027_TareWeight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _40000_ModbusAddress._19_TareWeightResult1:
length2Value = GetBytes(this.Current40000ModbusData1._40029_TareWeightResult);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
default:
break;
#endregion
}
madeDataIndex += 2;
}
#endregion
}
else if (readByte[7] == ModbusFunctionCode.FunctionCode_04)
{
#region Read Input Register(0x04)
double underValue = Helper.StringToWeight(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces);
double passValue = Helper.StringToWeight(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces);
double overValue = Helper.StringToWeight(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces);
double tareValue = Helper.StringToWeight(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces);
double weight = this.CurrentWeightData1.Weight;
int equipmentStatus;
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
equipmentStatus = 1;
else
equipmentStatus = 0;
int alarmStatus;
if (this.IsAlarmOccured == true)
alarmStatus = 1;
else
alarmStatus = 0;
int judgmentStatus;
switch (this.CurrentWeightData1.JudgmentStatus)
{
case Define.E_JudgmentStatus.Over:
judgmentStatus = 0;
break;
case Define.E_JudgmentStatus.Pass:
judgmentStatus = 1;
break;
case Define.E_JudgmentStatus.Under:
judgmentStatus = 2;
break;
case Define.E_JudgmentStatus.Metal:
judgmentStatus = 3;
break;
case Define.E_JudgmentStatus.Double:
judgmentStatus = 4;
break;
default:
judgmentStatus = 5;
break;
}
byte[] productName = this.Current30000ModbusData1.ProductName;
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Make data
#region Data
case _30000_ModbusAddress._01_IsUpdate_High:
length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._02_IsUpdate_Low:
length4Value = GetBytes(this.UpdateValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._03_EquipmentID_High:
length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._04_EquipmentID_Low:
length4Value = GetBytes(this.SystemConfig.EquipmentID);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._05_ProductNo_High:
length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._06_ProductNo_Low:
length4Value = GetBytes(this.SystemConfig.ProductNumber);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._07_UnderValue_High:
length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._08_UnderValue_Low:
length4Value = GetBytes((Single)underValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._09_PassValue_High:
length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._10_PassValue_Low:
length4Value = GetBytes((Single)passValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._11_OverValue_High:
length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._12_OverValue_Low:
length4Value = GetBytes((Single)overValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._13_TareValue_High:
length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._14_TareValue_Low:
length4Value = GetBytes((Single)tareValue);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._15_UnderCount_High:
length4Value = GetBytes(this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._16_UnderCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._17_PassCount_High:
length4Value = GetBytes(this.CurrentWeightData1.PassCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._18_PassCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.PassCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._19_OverCount_High:
length4Value = GetBytes(this.CurrentWeightData1.OverCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._20_OverCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.OverCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._21_NGCount_High:
length4Value = GetBytes(this.CurrentWeightData1.OverCount + this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._22_NGCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.OverCount + this.CurrentWeightData1.UnderCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._23_ExNGCount_High:
length4Value = GetBytes(this.CurrentWeightData1.ExNGCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._24_ExNGCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.ExNGCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._25_TotalCount_High:
length4Value = GetBytes(this.CurrentWeightData1.TotalCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._26_TotalCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.TotalCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._27_Grade_High:
length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._28_Grade_Low:
length4Value = GetBytes(judgmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._29_Weight_High:
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
length4Value = GetBytes((Single)0.0);
else
length4Value = GetBytes((Single)this.CurrentWeightData1.Weight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._30_Weight_Low:
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
length4Value = GetBytes((Single)0.0);
else
length4Value = GetBytes((Single)this.CurrentWeightData1.Weight);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._31_OperationStatus_High:
length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._32_OperationStatus_Low:
length4Value = GetBytes(equipmentStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._33_AlarmStatus_High:
length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._34_AlarmStatus_Low:
length4Value = GetBytes(alarmStatus);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._35_Speed_High:
length4Value = GetBytes(this.CurrentWeightData1.ProductionSpeed);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._36_Speed_Low:
length4Value = GetBytes(this.CurrentWeightData1.ProductionSpeed);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._37_MetalDetectionCount_High:
length4Value = GetBytes(this.CurrentWeightData1.MetalDetectionCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._38_MetalDetectionCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.MetalDetectionCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._39_DoubleEntryCount_High:
length4Value = GetBytes(this.CurrentWeightData1.DoubleEntryCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[3 - i];
break;
case _30000_ModbusAddress._40_DoubleEntryCount_Low:
length4Value = GetBytes(this.CurrentWeightData1.DoubleEntryCount);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length4Value[1 - i];
break;
case _30000_ModbusAddress._41_ProductName:
for (int i = 0; i < productName.Length; i++)
madeData[madeDataIndex + i] = productName[i];
break;
#endregion
#region Alarm
case _30000_ModbusAddress._1001_Alarm1:
if (this.CurrentAlarm.Count > 0)
length2Value = GetBytes(this.CurrentAlarm[0]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1002_Alarm2:
if (this.CurrentAlarm.Count > 1)
length2Value = GetBytes(this.CurrentAlarm[1]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1003_Alarm3:
if (this.CurrentAlarm.Count > 2)
length2Value = GetBytes(this.CurrentAlarm[2]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1004_Alarm4:
if (this.CurrentAlarm.Count > 3)
length2Value = GetBytes(this.CurrentAlarm[3]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1005_Alarm5:
if (this.CurrentAlarm.Count > 4)
length2Value = GetBytes(this.CurrentAlarm[4]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
case _30000_ModbusAddress._1006_Alarm6:
if (this.CurrentAlarm.Count > 5)
length2Value = GetBytes(this.CurrentAlarm[5]);
else
length2Value = GetBytes(0);
for (int i = 0; i < 2; i++)
madeData[madeDataIndex + i] = length2Value[1 - i];
break;
#endregion
default:
break;
#endregion
}
if (j == (int)_30000_ModbusAddress._41_ProductName)
madeDataIndex += 20;
else
madeDataIndex += 2;
}
#endregion
}
return madeData;
}
#endregion
#region Serial Communication
public string PadLeft(int length, string sValue)
{
string temp;
temp = sValue.PadLeft(length, ' ');
return temp;
}
// 전송지연시간
private void CreateTimer(Define.E_MenuBottomConfiguration port)
{
switch (port)
{
case Define.E_MenuBottomConfiguration.SerialCOM1:
System.Windows.Forms.Timer timerCOM1 = new System.Windows.Forms.Timer();
timerCOM1.Interval = this.SystemConfig.TransmissionDelayTimeCOM1;
timerCOM1.Tick += new EventHandler(this.timerCOM1_Tick);
timerCOM1.Enabled = true;
break;
case Define.E_MenuBottomConfiguration.SerialCOM3:
System.Windows.Forms.Timer timerCOM3 = new System.Windows.Forms.Timer();
timerCOM3.Interval = this.SystemConfig.TransmissionDelayTimeCOM3;
timerCOM3.Tick += new EventHandler(this.timerCOM3_Tick);
timerCOM3.Enabled = true;
break;
case Define.E_MenuBottomConfiguration.SerialCOM4:
System.Windows.Forms.Timer timerCOM4 = new System.Windows.Forms.Timer();
timerCOM4.Interval = this.SystemConfig.TransmissionDelayTimeCOM4;
timerCOM4.Tick += new EventHandler(this.timerCOM4_Tick);
timerCOM4.Enabled = true;
break;
default:
break;
}
}
#endregion
#region Serial COM1
public void OpenSerialCOM1()
{
int baudrate = 9600;
if (this.SystemConfig.SerialCOM1Mode == 0)
return;
this.CloseSerialCOM1();
switch (this.SystemConfig.SerialCOM1BaudRate)
{
case 0:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
case 1:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
baudrate = 19200;
break;
case 2:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
baudrate = 38400;
break;
case 3:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
baudrate = 57600;
break;
case 4:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
baudrate = 115200;
break;
default:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
}
//if (this.FlagSerialDll == false)
//{
this.smartSerialPort1.Open();
//}
//else
//{
// // Port : COM1
// SerialMgrComm.serialPortOpen("COM1:", baudrate, 0, 0, 8);
//}
}
public void CloseSerialCOM1()
{
//if (this.FlagSerialDll == false)
if (this.CheckOpenCOM1() == true)
this.smartSerialPort1.Close();
//else
// SerialMgrComm.serialPortClose("COM1:");
}
public bool CheckOpenCOM1()
{
//if (this.FlagSerialDll == false)
//{
if (this.smartSerialPort1.IsOpen == true)
return true;
else
return false;
//}
//else
// return true;
}
public void TransferDirectSerialCOM1(string strTemp)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM1:", strTemp);
}
public void TransferDirectSerialCOM1(byte[] buffer)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM1:", buffer, buffer.Length);
}
public void TransferSerialCOM1(string strTemp)
{
if (this.SystemConfig.TransmissionDelayTimeCOM1 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM1:", strTemp);
}
else
{
this.QueueCOM1.Enqueue(strTemp);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
}
}
public void TransferSerialCOM1(byte[] buffer)
{
if (this.SystemConfig.TransmissionDelayTimeCOM1 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM1:", buffer, buffer.Length);
}
else
{
this.QueueCOM1.Enqueue(buffer);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
}
}
public void ChangeSerialCOM1FrameSeparateType(Define.E_SeparateType type)
{
//if (this.FlagSerialDll == true)
// return;
// 통신 포트 설정
this.CloseSerialCOM1();
if (type == Define.E_SeparateType.ETXONLY)
{
this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY;
byte[] etxCodes = new byte[2];
etxCodes[0] = 13;
etxCodes[1] = 10;
this.smartSerialPort1.ETXCodes = etxCodes;
}
else if (type == Define.E_SeparateType.STXANDETX)
{
this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
this.smartSerialPort1.STXCode = 2;
this.smartSerialPort1.ETXCode = 3;
}
else if (type == Define.E_SeparateType.NONEFRAME_READTIMEOUT)
{
this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.NONEFRAME_READTIMEOUT;
this.smartSerialPort1.ReadTimeout = 300;
}
else
{
}
this.smartSerialPort1.Open();
}
#endregion
#region Serial COM3
public void OpenSerialCOM3()
{
int baudrate = 9600;
if (this.SystemConfig.SerialCOM3Mode == (int)Define.E_CommMode.f0_None)
return;
this.CloseSerialCOM3();
switch (this.SystemConfig.SerialCOM3BaudRate)
{
case 0:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
case 1:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
baudrate = 19200;
break;
case 2:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
baudrate = 38400;
break;
case 3:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
baudrate = 57600;
break;
case 4:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
baudrate = 115200;
break;
default:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
}
this.smartSerialPort3.Open();
}
public void CloseSerialCOM3()
{
//if (this.FlagSerialDll == false)
if (this.CheckOpenCOM3() == true)
this.smartSerialPort3.Close();
//else
// SerialMgrComm.serialPortClose("COM3:");
}
public bool CheckOpenCOM3()
{
//if (this.FlagSerialDll == false)
//{
if (this.smartSerialPort3.IsOpen == true)
return true;
else
return false;
//}
//else
// return true;
}
public void TransferDirectSerialCOM3(string strTemp)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
}
public void TransferDirectSerialCOM3(byte[] buffer)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
public void TransferDirectSerialCOM3RawData(string strTemp)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.RawSerialPort.Write(strTemp);
//else
// SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
}
public void TransferDirectSerialCOM3RawData(byte[] buffer)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.RawSerialPort.Write(buffer, 0, buffer.Length);
//else
// SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
public void TransferSerialCOM3(string strTemp)
{
if (strTemp == "" || strTemp == null)
return;
if (this.SystemConfig.TransmissionDelayTimeCOM3 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
}
else
{
this.QueueCOM3.Enqueue(strTemp);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
}
}
public void TransferSerialCOM3(byte[] buffer)
{
if (this.SystemConfig.TransmissionDelayTimeCOM3 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
else
{
this.QueueCOM3.Enqueue(buffer);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
}
}
public void TransferSerialCOM3RawData(byte[] buffer)
{
if (this.SystemConfig.TransmissionDelayTimeCOM3 == 0)
{
//if (this.FlagSerialDll == false)
//RawSerialPort 기능을 사용하여 데이터를 전송
this.smartSerialPort3.RawSerialPort.Write(buffer, 0, buffer.Length);
//else
// SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
else
{
this.QueueCOM3.Enqueue(buffer);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
}
}
public void ReceiveSerialCOM3()
{
int ret = 0;
string strTemp = "";
byte[] readByte;
SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
try
{
receiveDataState = this.smartSerialPort3.ReadQueue(out readByte);
strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
}
catch
{
return;
}
if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
return;
}
public void ChangeSerialCOM3FrameSeparateType(Define.E_SeparateType type)
{
//if (this.FlagSerialDll == true)
// return;
// 통신 포트 설정
this.CloseSerialCOM3();
if (type == Define.E_SeparateType.ETXONLY)
{
this.smartSerialPort3.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY;
byte[] etxCodes = new byte[2];
etxCodes[0] = 13;
etxCodes[1] = 10;
this.smartSerialPort3.ETXCodes = etxCodes;
}
else if (type == Define.E_SeparateType.STXANDETX)
{
this.smartSerialPort3.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
this.smartSerialPort3.STXCode = 2;
this.smartSerialPort3.ETXCode = 3;
}
else if (type == Define.E_SeparateType.NONEFRAME_READTIMEOUT)
{
this.smartSerialPort3.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.NONEFRAME_READTIMEOUT;
this.smartSerialPort3.ReadTimeout = 300;
}
else
{
}
this.smartSerialPort3.Open();
}
public void ChangeSerialCOM3ReceiveDetect(SmartSerialPort.RECEIVEDETECTTYPE detectType)
{
this.smartSerialPort3.ReceiveDetect = detectType;
}
public void ChangeSerialCOM3FrameBufferSize(uint size)
{
this.smartSerialPort3.FrameBufferSize = size;
}
#endregion
#region Serial COM4
public void OpenSerialCOM4()
{
int baudrate = 9600;
if (this.SystemConfig.SerialCOM4Mode == 0)
return;
this.CloseSerialCOM4();
switch (this.SystemConfig.SerialCOM4BaudRate)
{
case 0:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
case 1:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
baudrate = 19200;
break;
case 2:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
baudrate = 38400;
break;
case 3:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
baudrate = 57600;
break;
case 4:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
baudrate = 115200;
break;
default:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
baudrate = 9600;
break;
}
//if (this.FlagSerialDll == false)
//{
this.smartSerialPort4.Open();
//}
//else
//{
// // Port : COM4
// SerialMgrComm.serialPortOpen("COM4:", baudrate, 0, 0, 8);
//}
}
public void CloseSerialCOM4()
{
//if (this.FlagSerialDll == false)
this.smartSerialPort4.Close();
//else
// SerialMgrComm.serialPortClose("COM4:");
}
public bool CheckOpenCOM4()
{
//if (this.FlagSerialDll == false)
//{
if (this.smartSerialPort4.IsOpen == true)
return true;
else
return false;
//}
//else
// return true;
}
public void TransferDirectSerialCOM4(string strTemp)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM4:", strTemp);
}
public void TransferDirectSerialCOM4(byte[] buffer)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM4:", buffer, buffer.Length);
}
public void TransferSerialCOM4(string strTemp)
{
if (this.SystemConfig.TransmissionDelayTimeCOM4 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
//else
// SerialMgrComm.serialPortMessageRaw("COM4:", strTemp);
}
else
{
this.QueueCOM4.Enqueue(strTemp);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
}
}
public void TransferSerialCOM4(byte[] buffer)
{
if (this.SystemConfig.TransmissionDelayTimeCOM4 == 0)
{
//if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(buffer);
//else
// SerialMgrComm.serialPortMessageByte("COM4:", buffer, buffer.Length);
}
else
{
this.QueueCOM4.Enqueue(buffer);
this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
}
}
public void ChangeSerialCOM4FrameSeparateType(Define.E_SeparateType type)
{
//if (this.FlagSerialDll == true)
// return;
// 통신 포트 설정
this.CloseSerialCOM4();
if (type == Define.E_SeparateType.ETXONLY)
{
this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY;
byte[] etxCodes = new byte[2];
etxCodes[0] = 13;
etxCodes[1] = 10;
this.smartSerialPort4.ETXCodes = etxCodes;
}
else if (type == Define.E_SeparateType.STXANDETX)
{
this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
this.smartSerialPort4.STXCode = 2;
this.smartSerialPort4.ETXCode = 3;
}
else if (type == Define.E_SeparateType.NONEFRAME_READTIMEOUT)
{
this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.NONEFRAME_READTIMEOUT;
this.smartSerialPort4.ReadTimeout = 300;
}
else
{
}
this.smartSerialPort4.Open();
}
#endregion
#region Data Backup
private void RemoveUsbBackupFile()
{
bool directoryCheck = false;
try
{
string dday = string.Format("{0:yyyyMMdd}", DateTime.Now.AddDays(-180)) + ".csv";
DirectoryInfo dir = new DirectoryInfo(this.PathDataBackupFolder);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] files = dir.GetFiles();
foreach (FileInfo subfile in files)
{
if (subfile.Name.StartsWith("20")) // 날짜 비교하여 180일 지난화일은 삭제함
{
if (subfile.Name.CompareTo(dday) < 0)
{
subfile.Delete();
}
}
}
}
catch
{
}
}
private void DataBackup1(WeightData item)
{
bool fileCheck = false, directoryCheck = false;
string fullFilePath = "";
StreamWriter sw;
DateTime time = DateTime.Now;
this.RemoveUsbBackupFile();
if (this.SystemConfig.IsDataBackup == true)
{
fullFilePath = string.Format("{0}{1:yyyyMMdd}_{2}_{3}_Line1.csv", this.PathDataBackupFolder, DateTime.Now, this.SystemConfig.UsbID, this.CurrentProductItem1.Name);
DirectoryInfo di = new DirectoryInfo(this.PathDataBackupFolder);
directoryCheck = di.Exists;
// 폴더 체크
if (directoryCheck == false)
di.Create();
// 파일 체크
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
sw = new StreamWriter(fullFilePath, true, Encoding.UTF8);
if (fileCheck == false)
{
sw.Write("Date");
sw.Write(",");
sw.Write("Time");
sw.Write(",");
sw.Write("P_No");
sw.Write(",");
sw.Write("Name");
sw.Write(",");
sw.Write("Lot");
sw.Write(",");
sw.Write("UnderRange");
sw.Write(",");
sw.Write("PassRange");
sw.Write(",");
sw.Write("OverRange");
sw.Write(",");
sw.Write("TareRange");
sw.Write(",");
sw.Write("Weight");
sw.Write(",");
sw.Write("Grade");
sw.WriteLine();
}
sw.Write(string.Format("{0:yyyy-MM-dd}", time));
sw.Write(",");
sw.Write(string.Format("{0:HH:mm:ss}", time));
sw.Write(",");
sw.Write(this.CurrentProductItem1.Number);
sw.Write(",");
sw.Write(this.CurrentProductItem1.Name);
sw.Write(",");
sw.Write(this.CurrentProductItem1.LotNo);
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.DoubleToString(item.Weight, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(item.JudgmentStatus);
sw.WriteLine();
sw.Close();
}
}
private void DataBackup2(WeightData item)
{
bool fileCheck = false, directoryCheck = false;
string fullFilePath = "";
StreamWriter sw;
DateTime time = DateTime.Now;
this.RemoveUsbBackupFile();
if (this.SystemConfig.IsDataBackup == true)
{
fullFilePath = string.Format("{0}{1:yyyyMMdd}_{2}_{3}_Line2.csv", this.PathDataBackupFolder, DateTime.Now, this.SystemConfig.UsbID, this.CurrentProductItem1.Name);
DirectoryInfo di = new DirectoryInfo(this.PathDataBackupFolder);
directoryCheck = di.Exists;
// 폴더 체크
if (directoryCheck == false)
di.Create();
// 파일 체크
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
sw = new StreamWriter(fullFilePath, true, Encoding.UTF8);
if (fileCheck == false)
{
sw.Write("Date");
sw.Write(",");
sw.Write("Time");
sw.Write(",");
sw.Write("P_No");
sw.Write(",");
sw.Write("Name");
sw.Write(",");
sw.Write("Lot");
sw.Write(",");
sw.Write("UnderRange");
sw.Write(",");
sw.Write("PassRange");
sw.Write(",");
sw.Write("OverRange");
sw.Write(",");
sw.Write("TareRange");
sw.Write(",");
sw.Write("Weight");
sw.Write(",");
sw.Write("Grade");
sw.WriteLine();
}
sw.Write(string.Format("{0:yyyy-MM-dd}", time));
sw.Write(",");
sw.Write(string.Format("{0:HH:mm:ss}", time));
sw.Write(",");
sw.Write(this.CurrentProductItem1.Number);
sw.Write(",");
sw.Write(this.CurrentProductItem1.Name);
sw.Write(",");
sw.Write(this.CurrentProductItem1.LotNo);
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.StringToDecimalPlaces(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(Helper.DoubleToString(item.Weight, this.SystemConfig.DecimalPlaces));
sw.Write(",");
sw.Write(item.JudgmentStatus);
sw.WriteLine();
sw.Close();
}
}
#endregion
#region OPC, Modbus
public static byte[] GetBytes(int argument)
{
byte[] byteArray = BitConverter.GetBytes(argument);
return byteArray;
}
public static byte[] GetBytes(Single argument)
{
byte[] byteArray = BitConverter.GetBytes(argument);
return byteArray;
}
public static byte[] GetBytes(uint argument)
{
byte[] byteArray = BitConverter.GetBytes(argument);
return byteArray;
}
/// <summary>
/// OPC, Modbus - 항목 업데이트 시마다 +1
/// </summary>
public void Update30000ModbusItem()
{
if (this.IsOPCModbusUsing == false)
return;
if (this.UpdateValue > 999999999)
this.UpdateValue = 0;
else
this.UpdateValue++;
this.Current30000ModbusData1.IsUpdate = this.UpdateValue;
this.Current30000ModbusData1.EquipmentID = this.SystemConfig.EquipmentID;
this.Current30000ModbusData1.ProductNo = this.SystemConfig.ProductNumber;
this.Current30000ModbusData1.UnderValue = Helper.StringToWeight(this.CurrentProductItem1.UnderRange, this.SystemConfig.DecimalPlaces);
this.Current30000ModbusData1.PassValue = Helper.StringToWeight(this.CurrentProductItem1.PassRange, this.SystemConfig.DecimalPlaces);
this.Current30000ModbusData1.OverValue = Helper.StringToWeight(this.CurrentProductItem1.OverRange, this.SystemConfig.DecimalPlaces);
this.Current30000ModbusData1.TareValue = Helper.StringToWeight(this.CurrentProductItem1.TareRange, this.SystemConfig.DecimalPlaces);
this.Current30000ModbusData1.UnderCount = (UInt32)this.CurrentWeightData1.UnderCount;
this.Current30000ModbusData1.PassCount = (UInt32)this.CurrentWeightData1.PassCount;
this.Current30000ModbusData1.OverCount = (UInt32)this.CurrentWeightData1.OverCount;
this.Current30000ModbusData1.NGCount = (UInt32)this.CurrentWeightData1.UnderCount + (UInt32)this.CurrentWeightData1.OverCount;
this.Current30000ModbusData1.ExNGCount = (UInt32)this.CurrentWeightData1.ETCExNGCount;
this.Current30000ModbusData1.TotalCount = (UInt32)this.CurrentWeightData1.TotalCount;
switch (this.CurrentWeightData1.JudgmentStatus)
{
case Define.E_JudgmentStatus.Over:
this.Current30000ModbusData1.Grade = 0;
break;
case Define.E_JudgmentStatus.Pass:
this.Current30000ModbusData1.Grade = 1;
break;
case Define.E_JudgmentStatus.Under:
this.Current30000ModbusData1.Grade = 2;
break;
case Define.E_JudgmentStatus.Metal:
this.Current30000ModbusData1.Grade = 3;
break;
case Define.E_JudgmentStatus.Double:
this.Current30000ModbusData1.Grade = 4;
break;
default:
this.Current30000ModbusData1.Grade = 5;
break;
}
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start)
{
this.Current30000ModbusData1.Weight = this.CurrentWeightData1.Weight;
this.Current30000ModbusData1.OperationStatus = 1;
}
else
{
this.Current30000ModbusData1.Weight = 0.0;
this.Current30000ModbusData1.OperationStatus = 0;
}
if (this.IsAlarmOccured == true)
this.Current30000ModbusData1.AlarmStatus = 1;
else
this.Current30000ModbusData1.AlarmStatus = 0;
if (this.CurrentWeightData1.ProductionSpeed <= 500)
this.Current30000ModbusData1.Speed = this.CurrentWeightData1.ProductionSpeed;
this.Current30000ModbusData1.MetalDetectionCount = (UInt32)this.CurrentWeightData1.MetalDetectionCount;
this.Current30000ModbusData1.DoubleEntryCount = (UInt32)this.CurrentWeightData1.DoubleEntryCount;
try
{
byte[] productName = new UTF8Encoding().GetBytes(this.CurrentProductItem1.Name);
if (productName.Length > 20)
{
for (int i = 0; i < 20; i++)
this.Current30000ModbusData1.ProductName[i] = productName[i];
}
else
{
for (int i = 0; i < productName.Length; i++)
this.Current30000ModbusData1.ProductName[i] = productName[i];
for (int i = productName.Length; i < 20; i++)
this.Current30000ModbusData1.ProductName[i] = 0x20;
}
// 로그
//if (this.IsCommunicationLogOpen == true)
//{
// this.smartFileCommunicationLog.WriteString(string.Format("Update30000ModbusItem ({0:yyyy-MM-dd HH:mm:ss}): {1}, {2}", DateTime.Now, BitConverter.ToString(productName), productName.Length));
//}
}
catch
{
byte[] productName = new UTF8Encoding().GetBytes(this.SystemConfig.ProductNumber.ToString() + "_Name");
for (int i = 0; i < productName.Length; i++)
this.Current30000ModbusData1.ProductName[i] = productName[i];
for (int i = productName.Length; i < 20; i++)
this.Current30000ModbusData1.ProductName[i] = 0x20;
}
this.ChildFormMainDisplay.MainModbus.UpdateData(this.Current30000ModbusData1);
}
public void Update31000ModbusAlarmItem()
{
}
/// <summary>
/// Modbus RTU - Write Multiple Register에 대한 Manage 메소드
/// </summary>
/// <param name="readByte">전송받은 Modbus Data</param>
public void ReceiveModbusRTUWriteManager(byte[] readByte)
{
int startAddressInt;
int numberOfRegisterInt;
float floatNum;
byte[] startAddressByte = new byte[2] { readByte[2], readByte[3] };
byte[] numberOfRegisterByte = new byte[2] { readByte[4], readByte[5] };
int madeDataIndex = 0;
byte[] Length2Value = new byte[2];
byte[] Length4Value = new byte[4];
byte[] Length12Value = new byte[12];
byte[] Length14Value = new byte[14];
startAddressInt = Modbus.ToBigEndianAndInt(startAddressByte);
numberOfRegisterInt = Modbus.ToBigEndianAndInt(numberOfRegisterByte);
try
{
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Change data
case _40000_ModbusAddress._01_Clear:
#region 40011_소거 요청
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40011_Clear = Modbus.ToBigEndianAndInt(Length2Value);
if (this.Current40000ModbusData1._40011_Clear == 1)
{
try
{
this.ChildFormMainDisplay.Clear();
this.Current40000ModbusData1._40011_Clear = 0;
// 성공
this.Current40000ModbusData1._40012_ClearResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40012_ClearResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._02_ClearResult:
#region 40012_소거 요청 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40012_ClearResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._03_Operation:
#region 40013_운전/정지 요청, 1:운전/2:정지
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40013_Operation = Modbus.ToBigEndianAndInt(Length2Value);
if (this.Current40000ModbusData1._40013_Operation != 0)
{
try
{
if (this.Current40000ModbusData1._40013_Operation == 1)
{
this.TransferData(CommunicationCommand.Start, CommunicationID.MainBoard);
}
else
{
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
this.Current40000ModbusData1._40013_Operation = 0;
// 성공
this.Current40000ModbusData1._40014_OperationResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40014_OperationResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._04_OperationResult:
#region 40014_운전/정지 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40014_OperationResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._05_ProductChange_High:
#region 40015_품번 변경 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40015_ProductChange = Modbus.ToBigEndianAndInt(Length4Value);
if (this.Current40000ModbusData1._40015_ProductChange != 0)
{
try
{
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
{
if (this.Current40000ModbusData1._40015_ProductChange >= 1
&& this.Current40000ModbusData1._40015_ProductChange <= 1000)
this.ChildFormMainDisplay.ProductChange(this.Current40000ModbusData1._40015_ProductChange);
this.Current40000ModbusData1._40015_ProductChange = 0;
// 성공
this.Current40000ModbusData1._40017_ProductChangeResult = 1;
}
else
{
this.Current40000ModbusData1._40015_ProductChange = 0;
this.Current40000ModbusData1._40017_ProductChangeResult = 2;
}
}
catch
{
// 실패
this.Current40000ModbusData1._40017_ProductChangeResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._07_ProductChangeResult:
#region 40017_품번 변경 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40017_ProductChangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._08_UnderRange1_High:
#region 40018_Under 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40018_UnderRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40018_UnderRange >= 0 && this.Current40000ModbusData1._40018_UnderRange <= 99999)
{
try
{
this.CurrentProductItem1.UnderRange = this.Current40000ModbusData1._40018_UnderRange.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40018_UnderRange = 0;
// 성공
this.Current40000ModbusData1._40020_UnderRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40020_UnderRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40020_UnderRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._10_UnderRangeResult1:
#region 40020_Under 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40020_UnderRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._11_PassRange1_High:
#region 40021_Pass 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40021_PassRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40021_PassRange >= 0 && this.Current40000ModbusData1._40021_PassRange <= 99999)
{
try
{
string value = "";
int digit = 0, temp = 0;
int oldUnderRangeDeviation = this.CurrentProductItem1.UnderRangeDeviation;
int oldOverRangeDeviation = this.CurrentProductItem1.OverRangeDeviation;
this.CurrentProductItem1.PassRange = this.Current40000ModbusData1._40021_PassRange.ToString();
#region UnderRange
temp = this.CurrentProductItem1.PassRangeInt + oldUnderRangeDeviation;
if (temp < 0)
value = "0";
else
value = temp.ToString();
this.CurrentProductItem1.UnderRange = value;
#endregion
#region OverRange
temp = this.CurrentProductItem1.PassRangeInt + oldOverRangeDeviation;
if (temp > 99999)
value = "99999";
else
value = temp.ToString();
this.CurrentProductItem1.OverRange = value;
#endregion
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40021_PassRange = 0;
// 성공
this.Current40000ModbusData1._40023_PassRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40023_PassRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40023_PassRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._13_PassRangeResult1:
#region 40023_Pass 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40023_PassRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._14_OverRange1_High:
#region 40024_Over 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40024_OverRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40024_OverRange >= 0 && this.Current40000ModbusData1._40024_OverRange <= 99999)
{
try
{
this.CurrentProductItem1.OverRange = this.Current40000ModbusData1._40024_OverRange.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40024_OverRange = 0;
// 성공
this.Current40000ModbusData1._40026_OverRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40026_OverRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40026_OverRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._16_OverRangeResult1:
#region 40026_Over 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40026_OverRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._17_TareWeight1_High:
#region 40027_Tare 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40027_TareWeight =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40027_TareWeight >= 0 && this.Current40000ModbusData1._40027_TareWeight <= 99999)
{
try
{
this.CurrentProductItem1.TareRange = this.Current40000ModbusData1._40027_TareWeight.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40027_TareWeight = 0;
// 성공
this.Current40000ModbusData1._40029_TareWeightResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40029_TareWeightResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40029_TareWeightResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._19_TareWeightResult1:
#region 40029_Tare 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._40029_TareWeightResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._20_UnderRange2_High:
#region 42018_Under 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._42018_UnderRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._42018_UnderRange >= 0 && this.Current40000ModbusData1._42018_UnderRange <= 99999)
{
try
{
this.CurrentProductItem2.UnderRange = this.Current40000ModbusData1._42018_UnderRange.ToString();
this.SaveProductFile2(this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem2(this.CurrentProductItem2);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._42018_UnderRange = 0;
// 성공
this.Current40000ModbusData1._42020_UnderRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._42020_UnderRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._42020_UnderRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._22_UnderRangeResult2:
#region 42020_Under 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._42020_UnderRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._23_PassRange2_High:
#region 42021_Pass 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._42021_PassRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._42021_PassRange >= 0 && this.Current40000ModbusData1._42021_PassRange <= 99999)
{
try
{
string value = "";
int digit = 0, temp = 0;
int oldUnderRangeDeviation = this.CurrentProductItem2.UnderRangeDeviation;
int oldOverRangeDeviation = this.CurrentProductItem2.OverRangeDeviation;
this.CurrentProductItem2.PassRange = this.Current40000ModbusData1._42021_PassRange.ToString();
#region UnderRange
temp = this.CurrentProductItem2.PassRangeInt + oldUnderRangeDeviation;
if (temp < 0)
value = "0";
else
value = temp.ToString();
this.CurrentProductItem2.UnderRange = value;
#endregion
#region OverRange
temp = this.CurrentProductItem2.PassRangeInt + oldOverRangeDeviation;
if (temp > 99999)
value = "99999";
else
value = temp.ToString();
this.CurrentProductItem2.OverRange = value;
#endregion
this.SaveProductFile2(this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem2(this.CurrentProductItem2);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._42021_PassRange = 0;
// 성공
this.Current40000ModbusData1._42023_PassRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._42023_PassRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._42023_PassRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._25_PassRangeResult2:
#region 42023_Pass 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._42023_PassRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._26_OverRange2_High:
#region 42024_Over 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._42024_OverRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._42024_OverRange >= 0 && this.Current40000ModbusData1._42024_OverRange <= 99999)
{
try
{
this.CurrentProductItem2.OverRange = this.Current40000ModbusData1._42024_OverRange.ToString();
this.SaveProductFile2(this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem2(this.CurrentProductItem2);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._42024_OverRange = 0;
// 성공
this.Current40000ModbusData1._42026_OverRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._42026_OverRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._42026_OverRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._28_OverRangeResult2:
#region 42026_Over 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._42026_OverRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._29_TareWeight2_High:
#region 42027_Tare 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[7 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._42027_TareWeight =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._42027_TareWeight >= 0 && this.Current40000ModbusData1._42027_TareWeight <= 99999)
{
try
{
this.CurrentProductItem2.TareRange = this.Current40000ModbusData1._42027_TareWeight.ToString();
this.SaveProductFile2(this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem2(this.CurrentProductItem2);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._42027_TareWeight = 0;
// 성공
this.Current40000ModbusData1._42029_TareWeightResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._42029_TareWeightResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._42029_TareWeightResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._31_TareWeightResult2:
#region 42029_Tare 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[7 + madeDataIndex + i];
this.Current40000ModbusData1._42029_TareWeightResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
default:
break;
#endregion
}
madeDataIndex += 2;
}
}
catch
{
}
}
/// <summary>
/// Modbus TCP - Write Multiple Register에 대한 Manage 메소드
/// </summary>
/// <param name="readByte">전송받은 Modbus Data</param>
public void ReceiveModbusTCPWriteManager(byte[] readByte)
{
int startAddressInt;
int numberOfRegisterInt;
float floatNum;
byte[] startAddressByte = new byte[2] { readByte[8], readByte[9] };
byte[] numberOfRegisterByte = new byte[2] { readByte[10], readByte[11] };
int madeDataIndex = 0;
byte[] Length2Value = new byte[2];
byte[] Length4Value = new byte[4];
byte[] Length12Value = new byte[12];
byte[] Length14Value = new byte[14];
startAddressInt = Modbus.ToBigEndianAndInt(startAddressByte);
numberOfRegisterInt = Modbus.ToBigEndianAndInt(numberOfRegisterByte);
for (int j = startAddressInt; j < startAddressInt + numberOfRegisterInt; j++)
{
switch (j)
{
#region Change data
case _40000_ModbusAddress._01_Clear:
#region 40011_소거 요청
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40011_Clear = Modbus.ToBigEndianAndInt(Length2Value);
if (this.Current40000ModbusData1._40011_Clear == 1)
{
try
{
this.ChildFormMainDisplay.Clear();
this.Current40000ModbusData1._40011_Clear = 0;
// 성공
this.Current40000ModbusData1._40012_ClearResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40012_ClearResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._02_ClearResult:
#region 40012_소거 요청 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40012_ClearResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._03_Operation:
#region 40013_운전/정지 요청, 1:운전/2:정지
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40013_Operation = Modbus.ToBigEndianAndInt(Length2Value);
if (this.Current40000ModbusData1._40013_Operation != 0)
{
try
{
if (this.Current40000ModbusData1._40013_Operation == 1)
{
this.TransferData(CommunicationCommand.Start, CommunicationID.MainBoard);
}
else
{
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
this.Current40000ModbusData1._40013_Operation = 0;
// 성공
this.Current40000ModbusData1._40014_OperationResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40014_OperationResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._04_OperationResult:
#region 40014_운전/정지 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40014_OperationResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._05_ProductChange_High:
#region 40015_품번 변경 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40015_ProductChange = Modbus.ToBigEndianAndInt(Length4Value);
if (this.Current40000ModbusData1._40015_ProductChange != 0)
{
try
{
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Stop)
{
if (this.Current40000ModbusData1._40015_ProductChange >= 1
&& this.Current40000ModbusData1._40015_ProductChange <= 1000)
this.ChildFormMainDisplay.ProductChange(this.Current40000ModbusData1._40015_ProductChange);
this.Current40000ModbusData1._40015_ProductChange = 0;
// 성공
this.Current40000ModbusData1._40017_ProductChangeResult = 1;
}
else
{
this.Current40000ModbusData1._40015_ProductChange = 0;
this.Current40000ModbusData1._40017_ProductChangeResult = 2;
}
}
catch
{
// 실패
this.Current40000ModbusData1._40017_ProductChangeResult = 2;
}
}
#endregion
break;
case _40000_ModbusAddress._07_ProductChangeResult:
#region 40017_품번 변경 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40017_ProductChangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._08_UnderRange1_High:
#region 40018_Under 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[13 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40018_UnderRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40018_UnderRange >= 0 && this.Current40000ModbusData1._40018_UnderRange <= 99999)
{
try
{
this.CurrentProductItem1.UnderRange = this.Current40000ModbusData1._40018_UnderRange.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40018_UnderRange = 0;
// 성공
this.Current40000ModbusData1._40020_UnderRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40020_UnderRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40020_UnderRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._10_UnderRangeResult1:
#region 40020_Under 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40020_UnderRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._11_PassRange1_High:
#region 40021_Pass 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[13 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40021_PassRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40021_PassRange >= 0 && this.Current40000ModbusData1._40021_PassRange <= 99999)
{
try
{
string value = "";
int digit = 0, temp = 0;
int oldUnderRangeDeviation = this.CurrentProductItem1.UnderRangeDeviation;
int oldOverRangeDeviation = this.CurrentProductItem1.OverRangeDeviation;
this.CurrentProductItem1.PassRange = this.Current40000ModbusData1._40021_PassRange.ToString();
#region UnderRange
temp = this.CurrentProductItem1.PassRangeInt + oldUnderRangeDeviation;
if (temp < 0)
value = "0";
else
value = temp.ToString();
this.CurrentProductItem1.UnderRange = value;
#endregion
#region OverRange
temp = this.CurrentProductItem1.PassRangeInt + oldOverRangeDeviation;
if (temp > 99999)
value = "99999";
else
value = temp.ToString();
this.CurrentProductItem1.OverRange = value;
#endregion
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40021_PassRange = 0;
// 성공
this.Current40000ModbusData1._40023_PassRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40023_PassRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40023_PassRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._13_PassRangeResult1:
#region 40023_Pass 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40023_PassRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._14_OverRange1_High:
#region 40024_Over 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[13 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40024_OverRange =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40024_OverRange >= 0 && this.Current40000ModbusData1._40024_OverRange <= 99999)
{
try
{
this.CurrentProductItem1.OverRange = this.Current40000ModbusData1._40024_OverRange.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40024_OverRange = 0;
// 성공
this.Current40000ModbusData1._40026_OverRangeResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40026_OverRangeResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40026_OverRangeResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._16_OverRangeResult1:
#region 40026_Over 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40026_OverRangeResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
case _40000_ModbusAddress._17_TareWeight1_High:
#region 40027_Tare 중량설정 요청
for (int i = 0; i < 4; i++)
Length4Value[i] = readByte[13 + madeDataIndex + i];
floatNum = Modbus.ToBigEndianAndFloat(Length4Value);
this.Current40000ModbusData1._40027_TareWeight =
int.Parse(Helper.DoubleToString((double)floatNum, this.SystemConfig.DecimalPlaces).Replace(".", ""));
if (this.Current40000ModbusData1._40027_TareWeight >= 0 && this.Current40000ModbusData1._40027_TareWeight <= 99999)
{
try
{
this.CurrentProductItem1.TareRange = this.Current40000ModbusData1._40027_TareWeight.ToString();
this.SaveProductFile1(this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.TransferCurrentProductItem1(this.CurrentProductItem1);
this.Update30000ModbusItem();
this.UpdateScreen();
// 초기값으로 설정해놓기
this.Current40000ModbusData1._40027_TareWeight = 0;
// 성공
this.Current40000ModbusData1._40029_TareWeightResult = 1;
}
catch
{
// 실패
this.Current40000ModbusData1._40029_TareWeightResult = 2;
}
}
else
{
// 실패
this.Current40000ModbusData1._40029_TareWeightResult = 2;
}
#endregion
break;
case _40000_ModbusAddress._19_TareWeightResult1:
#region 40029_Tare 중량설정 요청 수행 결과
for (int i = 0; i < 2; i++)
Length2Value[i] = readByte[13 + madeDataIndex + i];
this.Current40000ModbusData1._40029_TareWeightResult = Modbus.ToBigEndianAndInt(Length2Value);
#endregion
break;
default:
break;
#endregion
}
madeDataIndex += 2;
}
}
#endregion
#region Ethernet
public void IsUsingTimerEthernetPing(bool bValue)
{
if (this.SystemConfig.IsEthernetPingTimer == true)
{
this.timerEthernetPing.Enabled = bValue;
}
else
this.timerEthernetPing.Enabled = false;
}
#region Client
public void EthernetClientConnect()
{
if (this.IsEthernetThreadStop == false)
return; // Online 경우
if (this.SystemConfig.IsEthernetEnable == false)
{
this.TextStatusOut("<Disable");
return;
}
if (string.Compare(this.SystemConfig.EthernetAddress, "0.0.0.0") == 0)
{
this.TextStatusOut("<Addr Err");
return;
}
try
{
Thread cpClientThread = new Thread(new ThreadStart(EthernetClientReceiveThread));
cpClientThread.IsBackground = true;
cpClientThread.Start();
//this.IsUsingTimerEthernetPing(true);
}
catch
{
TextStatusOut(">Thread Error");
}
}
public void EthernetClientDisconnect()
{
this.IsUsingTimerEthernetPing(false);
this.DelegateUISeverStatus(false);
if (null != this.EthernetStmReader)
this.EthernetStmReader.Close();
if (null != this.EthernetStmWriter)
this.EthernetStmWriter.Close();
if (null != this.EthernetNetStream)
this.EthernetNetStream.Close();
if (null != this.EthernetTcpClient)
this.EthernetTcpClient.Close();
this.IsEthernetThreadStop = true;
this.DelegateTextStatusOut(">Disconnected");
//this.SetTrackingHistoryData(Define.E_TrackingOperation.ClientDisconnect, "");
if (this.CurrentSystemStatus.Equipment == Define.E_EquipmentStatus.Start
&& this.CurrentSystemStatus.CurrentDisplay == Define.E_DisplayStore.MainDisplay)
this.DelegateTimerTryConnect(true);
}
private void EthernetClientReceiveThread()
{
int nConnectPort = Convert.ToInt32(this.SystemConfig.EthernetHostPort);
try
{
this.DelegateTextStatusOut(">Now Connecting..");
this.EthernetTcpClient = new TcpClient(this.SystemConfig.EthernetAddress, nConnectPort);
this.EthernetNetStream = this.EthernetTcpClient.GetStream();
this.EthernetStmReader = new StreamReader(this.EthernetNetStream);
this.EthernetStmWriter = new StreamWriter(this.EthernetNetStream);
this.DelegateUISeverStatus(true);
this.DelegateTextStatusOut(">Connected Server");
//this.SetTrackingHistoryData(Define.E_TrackingOperation.ClientConnect, "");
this.IsEthernetThreadStop = false;
// 판정 데이터 전송
if (this.IsEthernetTransferData == true)
{
this.IsEthernetTransferData = false;
Type type = this.EthernetTransferData.GetType();
if (type == typeof(string))
this.DelegateTransferData((string)this.EthernetTransferData);
else if (type == typeof(byte[]))
this.DelegateTransferData((byte[])this.EthernetTransferData);
else if (type == typeof(byte))
this.DelegateTransferData((byte)this.EthernetTransferData);
}
char[] charArray = new char[20];
while (this.IsEthernetThreadStop == false)
{
var strRecDataCount = this.EthernetStmReader.Read(charArray, 0, charArray.Length);
var strRecData = new string(charArray, 0, strRecDataCount);
//Console.Write("\n" + string.Format("EthernetStmReader.Read {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, strRecData));
if (null == strRecData)
{
this.DelegateTextStatusOut(">Server Out");
this.IsEthernetThreadStop = true;
break;
}
this.DelegateTextStatusOut(strRecData);
}
}
catch
{
this.DelegateTextStatusOut(">Connect Fail !");
}
finally
{
this.EthernetClientDisconnect();
}
return;
}
private void UIServerStatus(bool status)
{
this.ChildFormMainDisplay.UpdateEthernetStatusDisplay(status);
}
public void DelegateUISeverStatus(bool status)
{
this.Invoke(new UIServerStatusCallback(this.UIServerStatus), status);
}
private void TextStatusOut(string value)
{
if (this.ChildFormMenu.CenterConfiEthernet != null)
this.ChildFormMenu.CenterConfiEthernet.UpdateEthernetStatusDisplay(value);
}
private void DelegateTextStatusOut(string value)
{
this.Invoke(new TextStatusCallback(this.TextStatusOut), value);
}
private void TimerTryConnect(bool status)
{
this.timerClientTryConnect.Enabled = status;
}
private void DelegateTimerTryConnect(bool status)
{
this.Invoke(new TimerTryConnectCallback(this.TimerTryConnect), status);
}
private void DelegateTransferData(string data)
{
this.Invoke(new TransferStringDataCallback(this.EthernetSendMessage), data);
}
private void DelegateTransferData(byte[] data)
{
this.Invoke(new TransferByteArrayDataCallback(this.EthernetSendMessage), data);
}
private void DelegateTransferData(byte data)
{
this.Invoke(new TransferByteDataCallback(this.EthernetSendMessage), data);
}
public void EthernetSendMessage(string msg)
{
try
{
this.EthernetStmWriter.Write(msg);
this.EthernetStmWriter.Flush();
}
catch
{
this.DelegateUISeverStatus(false);
this.DelegateTextStatusOut("> Disconnect");
}
}
public void EthernetSendMessage(byte[] msg)
{
try
{
this.EthernetStmWriter.BaseStream.Write(msg, 0, msg.Length);
this.EthernetStmWriter.Flush();
}
catch
{
this.DelegateUISeverStatus(false);
this.DelegateTextStatusOut("> Disconnect");
}
}
public void EthernetSendMessage(byte msg)
{
try
{
this.EthernetStmWriter.Write(msg);
this.EthernetStmWriter.Flush();
}
catch
{
this.DelegateUISeverStatus(false);
this.DelegateTextStatusOut("> Disconnect");
}
}
public void EthernetWeightData(string strTemp)
{
this.IsEthernetTransferData = true;
this.EthernetTransferData = strTemp;
if (this.IsEthernetThreadStop == true)
this.EthernetClientConnect();
else
this.EthernetSendMessage((string)this.EthernetTransferData);
}
public void EthernetWeightData(byte[] bytes)
{
this.IsEthernetTransferData = true;
this.EthernetTransferData = bytes;
if (this.IsEthernetThreadStop == true)
this.EthernetClientConnect();
else
this.EthernetSendMessage(bytes);
}
public void EthernetWeightDataForModbus(byte[] bytes)
{
this.IsEthernetTransferData = true;
this.EthernetTransferData = bytes;
if (this.IsEthernetThreadStop == true)
this.EthernetClientConnect();
else
this.EthernetSendMessage(bytes);
}
#endregion
#region Server
public void EthernetServerStart()
{
if (this.smartTCPMultiServer.IsStart == false)
{
this.IsUsingTimerEthernetPing(true);
this.ChildFormMenu.CenterConfiEthernet.DisplayLabelLocalPort(false);
this.smartTCPMultiServer.Port = this.SystemConfig.EthernetLocalPort;
this.smartTCPMultiServer.Start();
}
}
public void EthernetServerStop()
{
if (this.smartTCPMultiServer.IsStart == true)
{
this.IsUsingTimerEthernetPing(false);
this.ChildFormMenu.CenterConfiEthernet.DisplayLabelLocalPort(true);
this.smartTCPMultiServer.Stop();
}
}
public void EthernetServerSendMessage(SmartTCPMultiServer.CLIENTSINFOS client, string msg)
{
if (this.smartTCPMultiServer.SendStringASCIIID(client.strID, msg) == true)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Ethernet Send ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, msg));
}
}
public void EthernetServerSendMessage(SmartTCPMultiServer.CLIENTSINFOS client, byte[] bytes)
{
if (this.smartTCPMultiServer.SendByteByClientID(client.strID, bytes) == true)
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Ethernet Send ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, Encoding.Default.GetString(bytes, 0, bytes.Length)));
}
}
#endregion
#endregion
#region SystemConfiguration File1
private void CreateSystemConfigurationFile1()
{
StructSystemConfigurationItem1 structItem;
this.SystemConfig.Initialization();
structItem.IsDataBackup = this.SystemConfig.IsDataBackup;
structItem.IsLogin = this.SystemConfig.IsLogin;
structItem.EquipmentID = this.SystemConfig.EquipmentID;
structItem.DecimalPlaces = this.SystemConfig.DecimalPlaces;
structItem.ProductNumber = this.SystemConfig.ProductNumber;
structItem.UsbID = this.SystemConfig.UsbID;
structItem.SerialCOM1BaudRate = this.SystemConfig.SerialCOM1BaudRate;
structItem.SerialCOM1Mode = this.SystemConfig.SerialCOM1Mode;
structItem.SerialCOM3BaudRate = this.SystemConfig.SerialCOM3BaudRate;
structItem.SerialCOM3Mode = this.SystemConfig.SerialCOM3Mode;
structItem.SerialCOM4BaudRate = this.SystemConfig.SerialCOM4BaudRate;
structItem.SerialCOM4Mode = this.SystemConfig.SerialCOM4Mode;
structItem.SerialNumber = this.SystemConfig.SerialNumber;
structItem.Language = this.SystemConfig.Language;
structItem.Unit = this.SystemConfig.Unit;
structItem.DummyBool1 = false;
structItem.DummyBool2 = false;
structItem.DummyBool3 = false;
structItem.DummyBool4 = false;
structItem.DummyBool5 = false;
structItem.DummyInt1 = 1;
structItem.DummyInt2 = 1;
structItem.EntryNotDetectedIgnoreTime = this.SystemConfig.EntryNotDetectedIgnoreTime;
structItem.SensorErrorDetectingTime = this.SystemConfig.SensorErrorDetectingTime;
structItem.EquipmentType = this.SystemConfig.EquipmentType;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure(structItem, 0);
}
public void SaveSystemConfigurationFile1(SystemConfigurationItem item)
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemConfigurationItem1 structItem;
fullFilePath = this.PathSystemFileFolder1 + "system.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemConfigurationFile1();
this.CreateSystemConfigurationFile2();
}
structItem.IsDataBackup = item.IsDataBackup;
structItem.IsLogin = item.IsLogin;
structItem.EquipmentID = item.EquipmentID;
structItem.DecimalPlaces = item.DecimalPlaces;
structItem.ProductNumber = item.ProductNumber;
structItem.UsbID = item.UsbID;
structItem.SerialCOM1BaudRate = item.SerialCOM1BaudRate;
structItem.SerialCOM1Mode = item.SerialCOM1Mode;
structItem.SerialCOM3BaudRate = item.SerialCOM3BaudRate;
structItem.SerialCOM3Mode = item.SerialCOM3Mode;
structItem.SerialCOM4BaudRate = item.SerialCOM4BaudRate;
structItem.SerialCOM4Mode = item.SerialCOM4Mode;
structItem.SerialNumber = item.SerialNumber;
structItem.Language = item.Language;
structItem.Unit = item.Unit;
structItem.DummyBool1 = false;
structItem.DummyBool2 = false;
structItem.DummyBool3 = false;
structItem.DummyBool4 = false;
structItem.DummyBool5 = false;
structItem.DummyInt1 = 1;
structItem.DummyInt2 = 1;
structItem.EntryNotDetectedIgnoreTime = item.EntryNotDetectedIgnoreTime;
structItem.SensorErrorDetectingTime = item.SensorErrorDetectingTime;
structItem.EquipmentType = item.EquipmentType;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure(structItem, 0);
this.smartFileIO.Close();
}
public void LoadSystemConfigurationFile1()
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemConfigurationItem1 structItem;
fullFilePath = this.PathSystemFileFolder1 + "system.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemConfigurationFile1();
this.CreateSystemConfigurationFile2();
}
try
{
structItem = (StructSystemConfigurationItem1)this.smartFileIO.ReadStructure(0, typeof(StructSystemConfigurationItem1));
this.SystemConfig.IsDataBackup = structItem.IsDataBackup;
this.SystemConfig.IsLogin = structItem.IsLogin;
this.SystemConfig.EquipmentID = structItem.EquipmentID;
this.SystemConfig.DecimalPlaces = structItem.DecimalPlaces;
this.SystemConfig.ProductNumber = structItem.ProductNumber;
this.SystemConfig.UsbID = structItem.UsbID;
this.SystemConfig.SerialCOM1BaudRate = structItem.SerialCOM1BaudRate;
this.SystemConfig.SerialCOM1Mode = structItem.SerialCOM1Mode;
this.SystemConfig.SerialCOM3BaudRate = structItem.SerialCOM3BaudRate;
this.SystemConfig.SerialCOM3Mode = structItem.SerialCOM3Mode;
this.SystemConfig.SerialCOM4BaudRate = structItem.SerialCOM4BaudRate;
this.SystemConfig.SerialCOM4Mode = structItem.SerialCOM4Mode;
this.SystemConfig.SerialNumber = structItem.SerialNumber;
this.SystemConfig.Language = structItem.Language;
this.SystemConfig.Unit = structItem.Unit;
this.SystemConfig.EquipmentType = structItem.EquipmentType;
this.SystemConfig.SensorErrorDetectingTime = structItem.SensorErrorDetectingTime;
this.SystemConfig.EntryNotDetectedIgnoreTime = structItem.EntryNotDetectedIgnoreTime;
}
catch
{
// 초기화를 실행해 주세요
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region SystemConfiguration File2
private void CreateSystemConfigurationFile2()
{
StructSystemConfigurationItem2 structItem;
structItem.DummyBool1 = false;
structItem.DummyBool2 = false;
structItem.DummyBool3 = false;
structItem.DummyBool4 = false;
structItem.DummyBool5 = false;
structItem.DummyBool6 = false;
structItem.DummyBool7 = false;
structItem.DummyBool8 = false;
structItem.DummyBool9 = false;
structItem.DummyBool10 = false;
structItem.DummyBool11 = false;
structItem.DummyBool12 = false;
structItem.DummyBool13 = false;
structItem.DummyBool14 = false;
structItem.DummyBool15 = false;
structItem.DummyBool16 = false;
structItem.DummyBool17 = false;
structItem.DummyBool18 = false;
structItem.DummyBool19 = false;
structItem.IsModbus = this.SystemConfig.IsModbus;
structItem.IsPart11 = this.SystemConfig.IsPart11;
structItem.IsEthernetPingTimer = this.SystemConfig.IsEthernetPingTimer;
structItem.IsCharToFillZeroEthernet = this.SystemConfig.IsCharToFillZeroEthernet;
structItem.IsTransmitWhenPassEthernet = this.SystemConfig.IsTransmitWhenPassEthernet;
structItem.IsCharToFillZeroCOM1 = this.SystemConfig.IsCharToFillZeroCOM1;
structItem.IsTransmitWhenPassCOM1 = this.SystemConfig.IsTransmitWhenPassCOM1;
structItem.IsCharToFillZeroCOM3 = this.SystemConfig.IsCharToFillZeroCOM3;
structItem.IsTransmitWhenPassCOM3 = this.SystemConfig.IsTransmitWhenPassCOM3;
structItem.IsCharToFillZeroCOM4 = this.SystemConfig.IsCharToFillZeroCOM4;
structItem.IsTransmitWhenPassCOM4 = this.SystemConfig.IsTransmitWhenPassCOM4;
structItem.IsModbusRTUUsingConverterCOM1 = this.SystemConfig.IsModbusRTUUsingConverterCOM1;
structItem.IsModbusRTUUsingConverterCOM3 = this.SystemConfig.IsModbusRTUUsingConverterCOM3;
structItem.IsModbusRTUUsingConverterCOM4 = this.SystemConfig.IsModbusRTUUsingConverterCOM4;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
structItem.DummyInt6 = 0;
structItem.DummyInt7 = 0;
structItem.DummyInt8 = 0;
structItem.DummyInt9 = 0;
structItem.DummyInt10 = 0;
structItem.DummyInt11 = 0;
structItem.TransmissionDelayTimeEthernet = this.SystemConfig.TransmissionDelayTimeEthernet;
structItem.SelectLaneCOM1 = this.SystemConfig.SelectLaneCOM1;
structItem.SelectLaneCOM3 = this.SystemConfig.SelectLaneCOM3;
structItem.SelectLaneCOM4 = this.SystemConfig.SelectLaneCOM4;
structItem.SelectLaneEthernet = this.SystemConfig.SelectLaneEthernet;
structItem.TransmissionDelayTimeCOM1 = this.SystemConfig.TransmissionDelayTimeCOM1;
structItem.TransmissionDelayTimeCOM3 = this.SystemConfig.TransmissionDelayTimeCOM3;
structItem.TransmissionDelayTimeCOM4 = this.SystemConfig.TransmissionDelayTimeCOM4;
structItem.ModbusRTUSelectFunction = this.SystemConfig.ModbusRTUSelectFunction;
structItem.ModbusRTUSlaveIDCOM1 = this.SystemConfig.ModbusRTUSlaveIDCOM1;
structItem.ModbusRTUSlaveIDCOM3 = this.SystemConfig.ModbusRTUSlaveIDCOM3;
structItem.ModbusRTUSlaveIDCOM4 = this.SystemConfig.ModbusRTUSlaveIDCOM4;
structItem.ModbusTCPSelectFunction = this.SystemConfig.ModbusTCPSelectFunction;
structItem.EthernetLocalPort = this.SystemConfig.EthernetLocalPort;
structItem.EthernetHostPort = this.SystemConfig.EthernetHostPort;
structItem.EthernetCommMode = this.SystemConfig.EthernetCommMode;
structItem.EthernetOperationMode = this.SystemConfig.EthernetOperationMode;
structItem.StoragePeriod = this.SystemConfig.StoragePeriod;
structItem.NumberOfLoginFailures = this.SystemConfig.NumberOfLoginFailures;
structItem.ModbusTCPStartAddress = this.SystemConfig.ModbusTCPStartAddress;
structItem.ModbusRTUStartAddressCOM1 = this.SystemConfig.ModbusRTUStartAddressCOM1;
structItem.ModbusRTUStartAddressCOM3 = this.SystemConfig.ModbusRTUStartAddressCOM3;
structItem.ModbusRTUStartAddressCOM4 = this.SystemConfig.ModbusRTUStartAddressCOM4;
structItem.CommunicationControlCharacter = this.SystemConfig.CommunicationControlCharacter;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
structItem.DummyString6 = "";
structItem.DummyString7 = "";
structItem.DummyString8 = "";
structItem.DummyString9 = "";
structItem.DummyString10 = "";
structItem.UserGroupLevel1Name = this.SystemConfig.UserGroupLevel1Name;
structItem.UserGroupLevel2Name = this.SystemConfig.UserGroupLevel2Name;
structItem.UserGroupLevel3Name = this.SystemConfig.UserGroupLevel3Name;
structItem.EthernetAddress = this.SystemConfig.EthernetAddress;
this.smartFileIO.WriteStructure(structItem, 1);
}
public void SaveSystemConfigurationFile2(SystemConfigurationItem item)
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemConfigurationItem2 structItem;
fullFilePath = this.PathSystemFileFolder1 + "system.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemConfigurationFile1();
this.CreateSystemConfigurationFile2();
}
structItem.DummyBool1 = false;
structItem.DummyBool2 = false;
structItem.DummyBool3 = false;
structItem.DummyBool4 = false;
structItem.DummyBool5 = false;
structItem.DummyBool6 = false;
structItem.DummyBool7 = false;
structItem.DummyBool8 = false;
structItem.DummyBool9 = false;
structItem.DummyBool10 = false;
structItem.DummyBool11 = false;
structItem.DummyBool12 = false;
structItem.DummyBool13 = false;
structItem.DummyBool14 = false;
structItem.DummyBool15 = false;
structItem.DummyBool16 = false;
structItem.DummyBool17 = false;
structItem.DummyBool18 = false;
structItem.DummyBool19 = false;
structItem.IsModbus = item.IsModbus;
structItem.IsPart11 = item.IsPart11;
structItem.IsEthernetPingTimer = item.IsEthernetPingTimer;
structItem.IsCharToFillZeroEthernet = item.IsCharToFillZeroEthernet;
structItem.IsTransmitWhenPassEthernet = item.IsTransmitWhenPassEthernet;
structItem.IsCharToFillZeroCOM1 = item.IsCharToFillZeroCOM1;
structItem.IsTransmitWhenPassCOM1 = item.IsTransmitWhenPassCOM1;
structItem.IsCharToFillZeroCOM3 = item.IsCharToFillZeroCOM3;
structItem.IsTransmitWhenPassCOM3 = item.IsTransmitWhenPassCOM3;
structItem.IsCharToFillZeroCOM4 = item.IsCharToFillZeroCOM4;
structItem.IsTransmitWhenPassCOM4 = item.IsTransmitWhenPassCOM4;
structItem.IsModbusRTUUsingConverterCOM1 = item.IsModbusRTUUsingConverterCOM1;
structItem.IsModbusRTUUsingConverterCOM3 = item.IsModbusRTUUsingConverterCOM3;
structItem.IsModbusRTUUsingConverterCOM4 = item.IsModbusRTUUsingConverterCOM4;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
structItem.DummyInt6 = 0;
structItem.DummyInt7 = 0;
structItem.DummyInt8 = 0;
structItem.DummyInt9 = 0;
structItem.DummyInt10 = 0;
structItem.DummyInt11 = 0;
structItem.TransmissionDelayTimeEthernet = item.TransmissionDelayTimeEthernet;
structItem.SelectLaneCOM1 = item.SelectLaneCOM1;
structItem.SelectLaneCOM3 = item.SelectLaneCOM3;
structItem.SelectLaneCOM4 = item.SelectLaneCOM4;
structItem.SelectLaneEthernet = item.SelectLaneEthernet;
structItem.TransmissionDelayTimeCOM1 = item.TransmissionDelayTimeCOM1;
structItem.TransmissionDelayTimeCOM3 = item.TransmissionDelayTimeCOM3;
structItem.TransmissionDelayTimeCOM4 = item.TransmissionDelayTimeCOM4;
structItem.ModbusRTUSelectFunction = item.ModbusRTUSelectFunction;
structItem.ModbusRTUSlaveIDCOM1 = item.ModbusRTUSlaveIDCOM1;
structItem.ModbusRTUSlaveIDCOM3 = item.ModbusRTUSlaveIDCOM3;
structItem.ModbusRTUSlaveIDCOM4 = item.ModbusRTUSlaveIDCOM4;
structItem.ModbusTCPSelectFunction = item.ModbusTCPSelectFunction;
structItem.EthernetLocalPort = item.EthernetLocalPort;
structItem.EthernetHostPort = item.EthernetHostPort;
structItem.EthernetCommMode = item.EthernetCommMode;
structItem.EthernetOperationMode = item.EthernetOperationMode;
structItem.StoragePeriod = item.StoragePeriod;
structItem.NumberOfLoginFailures = item.NumberOfLoginFailures;
structItem.ModbusTCPStartAddress = item.ModbusTCPStartAddress;
structItem.ModbusRTUStartAddressCOM1 = item.ModbusRTUStartAddressCOM1;
structItem.ModbusRTUStartAddressCOM3 = item.ModbusRTUStartAddressCOM3;
structItem.ModbusRTUStartAddressCOM4 = item.ModbusRTUStartAddressCOM4;
structItem.CommunicationControlCharacter = item.CommunicationControlCharacter;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
structItem.DummyString6 = "";
structItem.DummyString7 = "";
structItem.DummyString8 = "";
structItem.DummyString9 = "";
structItem.DummyString10 = "";
structItem.UserGroupLevel1Name = item.UserGroupLevel1Name;
structItem.UserGroupLevel2Name = item.UserGroupLevel2Name;
structItem.UserGroupLevel3Name = item.UserGroupLevel3Name;
structItem.EthernetAddress = item.EthernetAddress;
this.smartFileIO.WriteStructure(structItem, 1);
this.smartFileIO.Close();
}
public void LoadSystemConfigurationFile2()
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemConfigurationItem2 structItem;
fullFilePath = this.PathSystemFileFolder1 + "system.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemConfigurationFile1();
this.CreateSystemConfigurationFile2();
}
try
{
try
{
structItem = (StructSystemConfigurationItem2)this.smartFileIO.ReadStructure(1, typeof(StructSystemConfigurationItem2));
}
catch
{
this.CreateSystemConfigurationFile2();
structItem = (StructSystemConfigurationItem2)this.smartFileIO.ReadStructure(1, typeof(StructSystemConfigurationItem2));
}
this.SystemConfig.IsModbus = structItem.IsModbus;
this.SystemConfig.IsPart11 = structItem.IsPart11;
this.SystemConfig.IsEthernetPingTimer = structItem.IsEthernetPingTimer;
this.SystemConfig.IsCharToFillZeroEthernet = structItem.IsCharToFillZeroEthernet;
this.SystemConfig.IsTransmitWhenPassEthernet = structItem.IsTransmitWhenPassEthernet;
this.SystemConfig.IsCharToFillZeroCOM1 = structItem.IsCharToFillZeroCOM1;
this.SystemConfig.IsTransmitWhenPassCOM1 = structItem.IsTransmitWhenPassCOM1;
this.SystemConfig.IsCharToFillZeroCOM3 = structItem.IsCharToFillZeroCOM3;
this.SystemConfig.IsTransmitWhenPassCOM3 = structItem.IsTransmitWhenPassCOM3;
this.SystemConfig.IsCharToFillZeroCOM4 = structItem.IsCharToFillZeroCOM4;
this.SystemConfig.IsTransmitWhenPassCOM4 = structItem.IsTransmitWhenPassCOM4;
this.SystemConfig.IsModbusRTUUsingConverterCOM1 = structItem.IsModbusRTUUsingConverterCOM1;
this.SystemConfig.IsModbusRTUUsingConverterCOM3 = structItem.IsModbusRTUUsingConverterCOM3;
this.SystemConfig.IsModbusRTUUsingConverterCOM4 = structItem.IsModbusRTUUsingConverterCOM4;
this.SystemConfig.TransmissionDelayTimeCOM1 = structItem.TransmissionDelayTimeCOM1;
this.SystemConfig.TransmissionDelayTimeCOM3 = structItem.TransmissionDelayTimeCOM3;
this.SystemConfig.TransmissionDelayTimeCOM4 = structItem.TransmissionDelayTimeCOM4;
this.SystemConfig.TransmissionDelayTimeEthernet = structItem.TransmissionDelayTimeEthernet;
this.SystemConfig.ModbusRTUSelectFunction = structItem.ModbusRTUSelectFunction;
this.SystemConfig.ModbusRTUSlaveIDCOM1 = structItem.ModbusRTUSlaveIDCOM1;
this.SystemConfig.ModbusRTUSlaveIDCOM3 = structItem.ModbusRTUSlaveIDCOM3;
this.SystemConfig.ModbusRTUSlaveIDCOM4 = structItem.ModbusRTUSlaveIDCOM4;
this.SystemConfig.ModbusTCPSelectFunction = structItem.ModbusTCPSelectFunction;
this.SystemConfig.EthernetLocalPort = structItem.EthernetLocalPort;
this.SystemConfig.EthernetHostPort = structItem.EthernetHostPort;
this.SystemConfig.EthernetCommMode = structItem.EthernetCommMode;
this.SystemConfig.EthernetOperationMode = structItem.EthernetOperationMode;
this.SystemConfig.StoragePeriod = structItem.StoragePeriod;
this.SystemConfig.NumberOfLoginFailures = structItem.NumberOfLoginFailures;
this.SystemConfig.ModbusTCPStartAddress = structItem.ModbusTCPStartAddress;
this.SystemConfig.ModbusRTUStartAddressCOM1 = structItem.ModbusRTUStartAddressCOM1;
this.SystemConfig.ModbusRTUStartAddressCOM3 = structItem.ModbusRTUStartAddressCOM3;
this.SystemConfig.ModbusRTUStartAddressCOM4 = structItem.ModbusRTUStartAddressCOM4;
this.SystemConfig.CommunicationControlCharacter = structItem.CommunicationControlCharacter;
this.SystemConfig.SelectLaneCOM1 = structItem.SelectLaneCOM1;
this.SystemConfig.SelectLaneCOM3 = structItem.SelectLaneCOM3;
this.SystemConfig.SelectLaneCOM4 = structItem.SelectLaneCOM4;
this.SystemConfig.SelectLaneEthernet = structItem.SelectLaneEthernet;
this.SystemConfig.UserGroupLevel1Name = structItem.UserGroupLevel1Name;
this.SystemConfig.UserGroupLevel2Name = structItem.UserGroupLevel2Name;
this.SystemConfig.UserGroupLevel3Name = structItem.UserGroupLevel3Name;
this.SystemConfig.EthernetAddress = structItem.EthernetAddress;
}
catch
{
// 초기화를 실행해 주세요
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region SystemParameter3
private void CreateSystemParameter3File()
{
StructSystemParameter3 structItem;
this.CurrentSystemParameter3.Initialization();
structItem.ExternalOut1Mode = this.CurrentSystemParameter3.ExternalOut1Mode;
structItem.ExternalOut1DelayTime = this.CurrentSystemParameter3.ExternalOut1DelayTime;
structItem.ExternalOut1RunTime = this.CurrentSystemParameter3.ExternalOut1RunTime;
structItem.ExternalOut2Mode = this.CurrentSystemParameter3.ExternalOut2Mode;
structItem.ExternalOut2DelayTime = this.CurrentSystemParameter3.ExternalOut2DelayTime;
structItem.ExternalOut2RunTime = this.CurrentSystemParameter3.ExternalOut2RunTime;
structItem.ExternalOut3Mode = this.CurrentSystemParameter3.ExternalOut3Mode;
structItem.ExternalOut3DelayTime = this.CurrentSystemParameter3.ExternalOut3DelayTime;
structItem.ExternalOut3RunTime = this.CurrentSystemParameter3.ExternalOut3RunTime;
structItem.ExternalOut4Mode = this.CurrentSystemParameter3.ExternalOut4Mode;
structItem.ExternalOut4DelayTime = this.CurrentSystemParameter3.ExternalOut4DelayTime;
structItem.ExternalOut4RunTime = this.CurrentSystemParameter3.ExternalOut4RunTime;
structItem.ExternalOut9Mode = this.CurrentSystemParameter3.ExternalOut9Mode;
structItem.ExternalOut9DelayTime = this.CurrentSystemParameter3.ExternalOut9DelayTime;
structItem.ExternalOut9RunTime = this.CurrentSystemParameter3.ExternalOut9RunTime;
structItem.ExternalOut10Mode = this.CurrentSystemParameter3.ExternalOut10Mode;
structItem.ExternalOut10DelayTime = this.CurrentSystemParameter3.ExternalOut10DelayTime;
structItem.ExternalOut10RunTime = this.CurrentSystemParameter3.ExternalOut10RunTime;
structItem.Dummy1 = "0";
structItem.Dummy2 = "0";
this.smartFileIO.WriteStructure(structItem, 0);
}
public void SaveSystemParameter3File(SystemParameter3 item)
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemParameter3 structItem;
fullFilePath = this.PathSystemFileFolder1 + "SystemParameter3.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemParameter3File();
}
structItem.ExternalOut1Mode = item.ExternalOut1Mode;
structItem.ExternalOut1DelayTime = item.ExternalOut1DelayTime;
structItem.ExternalOut1RunTime = item.ExternalOut1RunTime;
structItem.ExternalOut2Mode = item.ExternalOut2Mode;
structItem.ExternalOut2DelayTime = item.ExternalOut2DelayTime;
structItem.ExternalOut2RunTime = item.ExternalOut2RunTime;
structItem.ExternalOut3Mode = item.ExternalOut3Mode;
structItem.ExternalOut3DelayTime = item.ExternalOut3DelayTime;
structItem.ExternalOut3RunTime = item.ExternalOut3RunTime;
structItem.ExternalOut4Mode = item.ExternalOut4Mode;
structItem.ExternalOut4DelayTime = item.ExternalOut4DelayTime;
structItem.ExternalOut4RunTime = item.ExternalOut4RunTime;
structItem.ExternalOut9Mode = item.ExternalOut9Mode;
structItem.ExternalOut9DelayTime = item.ExternalOut9DelayTime;
structItem.ExternalOut9RunTime = item.ExternalOut9RunTime;
structItem.ExternalOut10Mode = item.ExternalOut10Mode;
structItem.ExternalOut10DelayTime = item.ExternalOut10DelayTime;
structItem.ExternalOut10RunTime = item.ExternalOut10RunTime;
structItem.Dummy1 = "0";
structItem.Dummy2 = "0";
this.smartFileIO.WriteStructure(structItem, 0);
this.smartFileIO.Close();
}
public void LoadSystemParameter3File(ref SystemParameter3 pItem)
{
string fullFilePath = "";
bool fileCheck = false;
StructSystemParameter3 structItem;
fullFilePath = this.PathSystemFileFolder1 + "SystemParameter3.cfg";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateSystemParameter3File();
}
try
{
structItem = (StructSystemParameter3)this.smartFileIO.ReadStructure(0, typeof(StructSystemParameter3));
pItem.ExternalOut1Mode = structItem.ExternalOut1Mode;
pItem.ExternalOut1DelayTime = structItem.ExternalOut1DelayTime;
pItem.ExternalOut1RunTime = structItem.ExternalOut1RunTime;
pItem.ExternalOut2Mode = structItem.ExternalOut2Mode;
pItem.ExternalOut2DelayTime = structItem.ExternalOut2DelayTime;
pItem.ExternalOut2RunTime = structItem.ExternalOut2RunTime;
pItem.ExternalOut3Mode = structItem.ExternalOut3Mode;
pItem.ExternalOut3DelayTime = structItem.ExternalOut3DelayTime;
pItem.ExternalOut3RunTime = structItem.ExternalOut3RunTime;
pItem.ExternalOut4Mode = structItem.ExternalOut4Mode;
pItem.ExternalOut4DelayTime = structItem.ExternalOut4DelayTime;
pItem.ExternalOut4RunTime = structItem.ExternalOut4RunTime;
pItem.ExternalOut9Mode = structItem.ExternalOut9Mode;
pItem.ExternalOut9DelayTime = structItem.ExternalOut9DelayTime;
pItem.ExternalOut9RunTime = structItem.ExternalOut9RunTime;
pItem.ExternalOut10Mode = structItem.ExternalOut10Mode;
pItem.ExternalOut10DelayTime = structItem.ExternalOut10DelayTime;
pItem.ExternalOut10RunTime = structItem.ExternalOut10RunTime;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region UserGroupFile
private void CreateUserGroupFile()
{
StructUserGroupItem structItem;
UserGroupItem item = new UserGroupItem();
for (int i = 0; i < 3; i++)
{
#region StructItem
structItem.IsBasic = item.IsBasic;
structItem.IsBasicDataBackup = item.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.IsBasicDataStatistics;
structItem.IsBasicProduct = item.IsBasicProduct;
structItem.IsBasicTime = item.IsBasicTime;
structItem.IsConfiSerial = item.IsConfiSerial;
structItem.IsConfiguration = item.IsConfiguration;
structItem.IsConfiOptionBoard = item.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.IsEquipInitialize;
structItem.IsEquipment = item.IsEquipment;
structItem.IsEquipUpdate = item.IsEquipUpdate;
structItem.IsEquipUser = item.IsEquipUser;
structItem.IsInforAS = item.IsInforAS;
structItem.IsInformation = item.IsInformation;
structItem.IsInforSystem = item.IsInforSystem;
structItem.IsSystem = item.IsSystem;
structItem.IsSystemAutoZero = item.IsSystemAutoZero;
structItem.IsSystemCalibration = item.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
#endregion
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveUserGroupFile(UserGroup item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserGroupItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserGroup.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupFile();
}
#region Level1
structItem.IsBasic = item.Level1.IsBasic;
structItem.IsBasicDataBackup = item.Level1.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.Level1.IsBasicDataStatistics;
structItem.IsBasicProduct = item.Level1.IsBasicProduct;
structItem.IsBasicTime = item.Level1.IsBasicTime;
structItem.IsConfiSerial = item.Level1.IsConfiSerial;
structItem.IsConfiguration = item.Level1.IsConfiguration;
structItem.IsConfiOptionBoard = item.Level1.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.Level1.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.Level1.IsEquipInitialize;
structItem.IsEquipment = item.Level1.IsEquipment;
structItem.IsEquipUpdate = item.Level1.IsEquipUpdate;
structItem.IsEquipUser = item.Level1.IsEquipUser;
structItem.IsInforAS = item.Level1.IsInforAS;
structItem.IsInformation = item.Level1.IsInformation;
structItem.IsInforSystem = item.Level1.IsInforSystem;
structItem.IsSystem = item.Level1.IsSystem;
structItem.IsSystemAutoZero = item.Level1.IsSystemAutoZero;
structItem.IsSystemCalibration = item.Level1.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.Level1.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.Level1.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.Level1.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.Level1.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f0_Level1);
#endregion
#region Level2
structItem.IsBasic = item.Level2.IsBasic;
structItem.IsBasicDataBackup = item.Level2.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.Level2.IsBasicDataStatistics;
structItem.IsBasicProduct = item.Level2.IsBasicProduct;
structItem.IsBasicTime = item.Level2.IsBasicTime;
structItem.IsConfiSerial = item.Level2.IsConfiSerial;
structItem.IsConfiguration = item.Level2.IsConfiguration;
structItem.IsConfiOptionBoard = item.Level2.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.Level2.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.Level2.IsEquipInitialize;
structItem.IsEquipment = item.Level2.IsEquipment;
structItem.IsEquipUpdate = item.Level2.IsEquipUpdate;
structItem.IsEquipUser = item.Level2.IsEquipUser;
structItem.IsInforAS = item.Level2.IsInforAS;
structItem.IsInformation = item.Level2.IsInformation;
structItem.IsInforSystem = item.Level2.IsInforSystem;
structItem.IsSystem = item.Level2.IsSystem;
structItem.IsSystemAutoZero = item.Level2.IsSystemAutoZero;
structItem.IsSystemCalibration = item.Level2.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.Level2.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.Level2.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.Level2.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.Level2.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f1_Level2);
#endregion
#region Level3
structItem.IsBasic = item.Level3.IsBasic;
structItem.IsBasicDataBackup = item.Level3.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.Level3.IsBasicDataStatistics;
structItem.IsBasicProduct = item.Level3.IsBasicProduct;
structItem.IsBasicTime = item.Level3.IsBasicTime;
structItem.IsConfiSerial = item.Level3.IsConfiSerial;
structItem.IsConfiguration = item.Level3.IsConfiguration;
structItem.IsConfiOptionBoard = item.Level3.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.Level3.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.Level3.IsEquipInitialize;
structItem.IsEquipment = item.Level3.IsEquipment;
structItem.IsEquipUpdate = item.Level3.IsEquipUpdate;
structItem.IsEquipUser = item.Level3.IsEquipUser;
structItem.IsInforAS = item.Level3.IsInforAS;
structItem.IsInformation = item.Level3.IsInformation;
structItem.IsInforSystem = item.Level3.IsInforSystem;
structItem.IsSystem = item.Level3.IsSystem;
structItem.IsSystemAutoZero = item.Level3.IsSystemAutoZero;
structItem.IsSystemCalibration = item.Level3.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.Level3.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.Level3.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.Level3.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.Level3.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f2_Level3);
#endregion
this.smartFileIO.Close();
}
public void SaveUserGroupFile_Level1(UserGroupItem item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserGroupItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserGroup.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupFile();
}
#region Level1
structItem.IsBasic = item.IsBasic;
structItem.IsBasicDataBackup = item.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.IsBasicDataStatistics;
structItem.IsBasicProduct = item.IsBasicProduct;
structItem.IsBasicTime = item.IsBasicTime;
structItem.IsConfiSerial = item.IsConfiSerial;
structItem.IsConfiguration = item.IsConfiguration;
structItem.IsConfiOptionBoard = item.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.IsEquipInitialize;
structItem.IsEquipment = item.IsEquipment;
structItem.IsEquipUpdate = item.IsEquipUpdate;
structItem.IsEquipUser = item.IsEquipUser;
structItem.IsInforAS = item.IsInforAS;
structItem.IsInformation = item.IsInformation;
structItem.IsInforSystem = item.IsInforSystem;
structItem.IsSystem = item.IsSystem;
structItem.IsSystemAutoZero = item.IsSystemAutoZero;
structItem.IsSystemCalibration = item.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f0_Level1);
#endregion
this.smartFileIO.Close();
}
public void SaveUserGroupFile_Level2(UserGroupItem item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserGroupItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserGroup.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupFile();
}
#region Level2
structItem.IsBasic = item.IsBasic;
structItem.IsBasicDataBackup = item.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.IsBasicDataStatistics;
structItem.IsBasicProduct = item.IsBasicProduct;
structItem.IsBasicTime = item.IsBasicTime;
structItem.IsConfiSerial = item.IsConfiSerial;
structItem.IsConfiguration = item.IsConfiguration;
structItem.IsConfiOptionBoard = item.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.IsEquipInitialize;
structItem.IsEquipment = item.IsEquipment;
structItem.IsEquipUpdate = item.IsEquipUpdate;
structItem.IsEquipUser = item.IsEquipUser;
structItem.IsInforAS = item.IsInforAS;
structItem.IsInformation = item.IsInformation;
structItem.IsInforSystem = item.IsInforSystem;
structItem.IsSystem = item.IsSystem;
structItem.IsSystemAutoZero = item.IsSystemAutoZero;
structItem.IsSystemCalibration = item.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f1_Level2);
#endregion
this.smartFileIO.Close();
}
public void SaveUserGroupFile_Level3(UserGroupItem item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserGroupItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserGroup.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupFile();
}
#region Level3
structItem.IsBasic = item.IsBasic;
structItem.IsBasicDataBackup = item.IsBasicDataBackup;
structItem.IsBasicDataStatistics = item.IsBasicDataStatistics;
structItem.IsBasicProduct = item.IsBasicProduct;
structItem.IsBasicTime = item.IsBasicTime;
structItem.IsConfiSerial = item.IsConfiSerial;
structItem.IsConfiguration = item.IsConfiguration;
structItem.IsConfiOptionBoard = item.IsConfiOptionBoard;
structItem.IsEquipFunctionSetting = item.IsEquipFunctionSetting;
structItem.IsEquipInitialize = item.IsEquipInitialize;
structItem.IsEquipment = item.IsEquipment;
structItem.IsEquipUpdate = item.IsEquipUpdate;
structItem.IsEquipUser = item.IsEquipUser;
structItem.IsInforAS = item.IsInforAS;
structItem.IsInformation = item.IsInformation;
structItem.IsInforSystem = item.IsInforSystem;
structItem.IsSystem = item.IsSystem;
structItem.IsSystemAutoZero = item.IsSystemAutoZero;
structItem.IsSystemCalibration = item.IsSystemCalibration;
structItem.IsSystemExternalOutput = item.IsSystemExternalOutput;
structItem.IsSystemIOTest = item.IsSystemIOTest;
structItem.IsSystemJudgmentSetting = item.IsSystemJudgmentSetting;
structItem.IsSystemSorterSetting = item.IsSystemSorterSetting;
structItem.IsConfiEthernet = false;
structItem.Dummy2 = false;
structItem.Dummy3 = false;
structItem.Dummy4 = false;
structItem.Dummy5 = false;
structItem.Dummy6 = false;
structItem.Dummy7 = false;
structItem.Dummy8 = false;
structItem.Dummy9 = false;
structItem.Dummy10 = false;
structItem.Dummy11 = false;
structItem.Dummy12 = false;
structItem.Dummy13 = false;
structItem.Dummy14 = false;
structItem.Dummy15 = false;
structItem.Dummy16 = false;
structItem.Dummy17 = false;
structItem.Dummy18 = false;
structItem.Dummy19 = false;
structItem.Dummy20 = false;
this.smartFileIO.WriteStructure(structItem, (int)Define.E_EnumFileUserGroup.f2_Level3);
#endregion
this.smartFileIO.Close();
}
private void LoadUserGroupFile(ref UserGroup item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserGroupItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserGroup.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupFile();
}
try
{
#region Level1
structItem = (StructUserGroupItem)this.smartFileIO.ReadStructure((int)Define.E_EnumFileUserGroup.f0_Level1, typeof(StructUserGroupItem));
item.Level1.IsBasic = structItem.IsBasic;
item.Level1.IsBasicDataBackup = structItem.IsBasicDataBackup;
item.Level1.IsBasicDataStatistics = structItem.IsBasicDataStatistics;
item.Level1.IsBasicProduct = structItem.IsBasicProduct;
item.Level1.IsBasicTime = structItem.IsBasicTime;
item.Level1.IsConfiSerial = structItem.IsConfiSerial;
item.Level1.IsConfiguration = structItem.IsConfiguration;
item.Level1.IsConfiOptionBoard = structItem.IsConfiOptionBoard;
item.Level1.IsEquipFunctionSetting = structItem.IsEquipFunctionSetting;
item.Level1.IsEquipInitialize = structItem.IsEquipInitialize;
item.Level1.IsEquipment = structItem.IsEquipment;
item.Level1.IsEquipUpdate = structItem.IsEquipUpdate;
item.Level1.IsEquipUser = structItem.IsEquipUser;
item.Level1.IsInforAS = structItem.IsInforAS;
item.Level1.IsInformation = structItem.IsInformation;
item.Level1.IsInforSystem = structItem.IsInforSystem;
item.Level1.IsSystem = structItem.IsSystem;
item.Level1.IsSystemAutoZero = structItem.IsSystemAutoZero;
item.Level1.IsSystemCalibration = structItem.IsSystemCalibration;
item.Level1.IsSystemExternalOutput = structItem.IsSystemExternalOutput;
item.Level1.IsSystemIOTest = structItem.IsSystemIOTest;
item.Level1.IsSystemJudgmentSetting = structItem.IsSystemJudgmentSetting;
item.Level1.IsSystemSorterSetting = structItem.IsSystemSorterSetting;
#endregion
#region Level2
structItem = (StructUserGroupItem)this.smartFileIO.ReadStructure((int)Define.E_EnumFileUserGroup.f1_Level2, typeof(StructUserGroupItem));
item.Level2.IsBasic = structItem.IsBasic;
item.Level2.IsBasicDataBackup = structItem.IsBasicDataBackup;
item.Level2.IsBasicDataStatistics = structItem.IsBasicDataStatistics;
item.Level2.IsBasicProduct = structItem.IsBasicProduct;
item.Level2.IsBasicTime = structItem.IsBasicTime;
item.Level2.IsConfiSerial = structItem.IsConfiSerial;
item.Level2.IsConfiguration = structItem.IsConfiguration;
item.Level2.IsConfiOptionBoard = structItem.IsConfiOptionBoard;
item.Level2.IsEquipFunctionSetting = structItem.IsEquipFunctionSetting;
item.Level2.IsEquipInitialize = structItem.IsEquipInitialize;
item.Level2.IsEquipment = structItem.IsEquipment;
item.Level2.IsEquipUpdate = structItem.IsEquipUpdate;
item.Level2.IsEquipUser = structItem.IsEquipUser;
item.Level2.IsInforAS = structItem.IsInforAS;
item.Level2.IsInformation = structItem.IsInformation;
item.Level2.IsInforSystem = structItem.IsInforSystem;
item.Level2.IsSystem = structItem.IsSystem;
item.Level2.IsSystemAutoZero = structItem.IsSystemAutoZero;
item.Level2.IsSystemCalibration = structItem.IsSystemCalibration;
item.Level2.IsSystemExternalOutput = structItem.IsSystemExternalOutput;
item.Level2.IsSystemIOTest = structItem.IsSystemIOTest;
item.Level2.IsSystemJudgmentSetting = structItem.IsSystemJudgmentSetting;
item.Level2.IsSystemSorterSetting = structItem.IsSystemSorterSetting;
#endregion
#region Level3
structItem = (StructUserGroupItem)this.smartFileIO.ReadStructure((int)Define.E_EnumFileUserGroup.f2_Level3, typeof(StructUserGroupItem));
item.Level3.IsBasic = structItem.IsBasic;
item.Level3.IsBasicDataBackup = structItem.IsBasicDataBackup;
item.Level3.IsBasicDataStatistics = structItem.IsBasicDataStatistics;
item.Level3.IsBasicProduct = structItem.IsBasicProduct;
item.Level3.IsBasicTime = structItem.IsBasicTime;
item.Level3.IsConfiSerial = structItem.IsConfiSerial;
item.Level3.IsConfiguration = structItem.IsConfiguration;
item.Level3.IsConfiOptionBoard = structItem.IsConfiOptionBoard;
item.Level3.IsEquipFunctionSetting = structItem.IsEquipFunctionSetting;
item.Level3.IsEquipInitialize = structItem.IsEquipInitialize;
item.Level3.IsEquipment = structItem.IsEquipment;
item.Level3.IsEquipUpdate = structItem.IsEquipUpdate;
item.Level3.IsEquipUser = structItem.IsEquipUser;
item.Level3.IsInforAS = structItem.IsInforAS;
item.Level3.IsInformation = structItem.IsInformation;
item.Level3.IsInforSystem = structItem.IsInforSystem;
item.Level3.IsSystem = structItem.IsSystem;
item.Level3.IsSystemAutoZero = structItem.IsSystemAutoZero;
item.Level3.IsSystemCalibration = structItem.IsSystemCalibration;
item.Level3.IsSystemExternalOutput = structItem.IsSystemExternalOutput;
item.Level3.IsSystemIOTest = structItem.IsSystemIOTest;
item.Level3.IsSystemJudgmentSetting = structItem.IsSystemJudgmentSetting;
item.Level3.IsSystemSorterSetting = structItem.IsSystemSorterSetting;
#endregion
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(23, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region UserGroupPassword File
private void CreateUserGroupPasswordFile()
{
this.CurrentSystemStatus.CurrentUserPasswordType.Initialization();
this.smartFileIO.WriteString(this.CurrentSystemStatus.CurrentUserPasswordType.Level1Password, (int)Define.E_EnumFileUserPassword.f0_Level1);
this.smartFileIO.WriteString(this.CurrentSystemStatus.CurrentUserPasswordType.Level2Password, (int)Define.E_EnumFileUserPassword.f1_Level2);
this.smartFileIO.WriteString(this.CurrentSystemStatus.CurrentUserPasswordType.Level3Password, (int)Define.E_EnumFileUserPassword.f2_Level3);
}
public void SaveUserGroupPasswordFile(UserPasswordType item)
{
string fullFilePath = "";
bool fileCheck = false;
fullFilePath = this.PathSystemFileFolder1 + "UserGroupPassword.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupPasswordFile();
}
this.smartFileIO.WriteString(item.Level1Password, (int)Define.E_EnumFileUserPassword.f0_Level1);
this.smartFileIO.WriteString(item.Level2Password, (int)Define.E_EnumFileUserPassword.f1_Level2);
this.smartFileIO.WriteString(item.Level3Password, (int)Define.E_EnumFileUserPassword.f2_Level3);
this.smartFileIO.Close();
}
private void LoadUserGroupPasswordFile()
{
string fullFilePath = "";
bool fileCheck = false;
fullFilePath = this.PathSystemFileFolder1 + "UserGroupPassword.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserGroupPasswordFile();
}
try
{
this.CurrentSystemStatus.CurrentUserPasswordType.Level1Password = this.smartFileIO.ReadString((int)Define.E_EnumFileUserPassword.f0_Level1);
this.CurrentSystemStatus.CurrentUserPasswordType.Level2Password = this.smartFileIO.ReadString((int)Define.E_EnumFileUserPassword.f1_Level2);
this.CurrentSystemStatus.CurrentUserPasswordType.Level3Password = this.smartFileIO.ReadString((int)Define.E_EnumFileUserPassword.f2_Level3);
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region UserLevel1File
private void CreateUserLevel1File()
{
StructUserItem structItem;
UserItem item = new UserItem();
structItem.ID = "L1";
structItem.Password = "1111";
structItem.Group = Define.E_UserGroup.Level1;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, 0);
for (int i = 1; i < 5; i++)
{
structItem.ID = item.ID;
structItem.Password = item.Password;
structItem.Group = item.Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveUserLevel1File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel1File();
}
if (item.Count == 0)
return;
for (int i = 0; i < item.Count; i++)
{
structItem.ID = item[i].ID;
structItem.Password = item[i].Password;
structItem.Group = item[i].Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure(structItem, i);
}
this.smartFileIO.Close();
}
public void LoadUserLevel1File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel1File();
}
try
{
for (int i = 0; i < item.Count; i++)
{
structItem = (StructUserItem)this.smartFileIO.ReadStructure(i, typeof(StructUserItem));
item[i].ID = structItem.ID;
item[i].Password = structItem.Password;
item[i].Group = structItem.Group;
}
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(23, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region UserLevel2File
private void CreateUserLevel2File()
{
StructUserItem structItem;
UserItem item = new UserItem();
structItem.ID = "L2";
structItem.Password = "2222";
structItem.Group = Define.E_UserGroup.Level2;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, 0);
for (int i = 1; i < 5; i++)
{
structItem.ID = item.ID;
structItem.Password = item.Password;
structItem.Group = item.Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveUserLevel2File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel2File();
}
if (item.Count == 0)
return;
for (int i = 0; i < item.Count; i++)
{
structItem.ID = item[i].ID;
structItem.Password = item[i].Password;
structItem.Group = item[i].Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure(structItem, i);
}
this.smartFileIO.Close();
}
public void LoadUserLevel2File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel2File();
}
try
{
for (int i = 0; i < item.Count; i++)
{
structItem = (StructUserItem)this.smartFileIO.ReadStructure(i, typeof(StructUserItem));
item[i].ID = structItem.ID;
item[i].Password = structItem.Password;
item[i].Group = structItem.Group;
}
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(23, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region UserLevel3File
private void CreateUserLevel3File()
{
StructUserItem structItem;
UserItem item = new UserItem();
structItem.ID = "L3";
structItem.Password = "3333";
structItem.Group = Define.E_UserGroup.Level3;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, 0);
for (int i = 1; i < 5; i++)
{
structItem.ID = item.ID;
structItem.Password = item.Password;
structItem.Group = item.Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveUserLevel3File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel3.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel3File();
}
if (item.Count == 0)
return;
for (int i = 0; i < item.Count; i++)
{
structItem.ID = item[i].ID;
structItem.Password = item[i].Password;
structItem.Group = item[i].Group;
structItem.Dummy1 = "";
structItem.Dummy2 = "";
structItem.Dummy3 = "";
structItem.Dummy4 = "";
structItem.Dummy5 = "";
this.smartFileIO.WriteStructure(structItem, i);
}
this.smartFileIO.Close();
}
public void LoadUserLevel3File(Collection<UserItem> item)
{
string fullFilePath = "";
bool fileCheck = false;
StructUserItem structItem;
fullFilePath = this.PathSystemFileFolder1 + "UserLevel3.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateUserLevel3File();
}
try
{
for (int i = 0; i < item.Count; i++)
{
structItem = (StructUserItem)this.smartFileIO.ReadStructure(i, typeof(StructUserItem));
item[i].ID = structItem.ID;
item[i].Password = structItem.Password;
item[i].Group = structItem.Group;
}
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(23, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region Product File #1
private void CreateProductFile1()
{
StructProductItem structItem;
this.CurrentProductItem1.Initialization();
for (int i = 0; i < 1000; i++)
{
structItem.Number = i + 1;
structItem.Name = string.Format("Product {0}", i + 1);
structItem.LotNo = string.Format("Lot {0}", i + 1);
structItem.PassRange = this.CurrentProductItem1.PassRange;
structItem.OverRange = this.CurrentProductItem1.OverRange;
structItem.UnderRange = this.CurrentProductItem1.UnderRange;
structItem.TareRange = this.CurrentProductItem1.TareRange;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveProductFile1(ProductItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructProductItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "ProductItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateProductFile1();
}
structItem.Number = item.Number;
structItem.Name = item.Name;
structItem.LotNo = item.LotNo;
structItem.OverRange = item.OverRange;
structItem.PassRange = item.PassRange;
structItem.UnderRange = item.UnderRange;
structItem.TareRange = item.TareRange;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadProductFile1(ref ProductItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructProductItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "ProductItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateProductFile1();
}
try
{
structItem = (StructProductItem)this.smartFileIO.ReadStructure(index, typeof(StructProductItem));
item.Number = structItem.Number;
item.Name = structItem.Name;
item.LotNo = structItem.LotNo;
item.PassRange = structItem.PassRange;
item.OverRange = structItem.OverRange;
item.UnderRange = structItem.UnderRange;
item.TareRange = structItem.TareRange;
}
catch
{
// 초기화를 실행해 주세요
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
public void LoadProductName1(ref Collection<string> values)
{
string fullFilePath = "";
StructProductItem structItem;
values.Clear();
fullFilePath = this.PathSystemFileFolder2 + "ProductItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
this.smartFileIO.Open(this.BufferSmartUart);
if (this.smartFileIO.ReadStructureAllBuffer() == true)
{
for (int i = 0; i < 1000; i++)
{
structItem = (StructProductItem)this.smartFileIO.ReadStructureBuffer(typeof(StructProductItem), i);
values.Add(structItem.Name);
}
}
this.smartFileIO.Close();
}
#endregion
#region Product File #2
private void CreateProductFile2()
{
StructProductItem structItem;
this.CurrentProductItem2.Initialization();
for (int i = 0; i < 1000; i++)
{
structItem.Number = i + 1;
structItem.Name = string.Format("Product {0}", i + 1);
structItem.LotNo = string.Format("Lot {0}", i + 1);
structItem.PassRange = this.CurrentProductItem2.PassRange;
structItem.OverRange = this.CurrentProductItem2.OverRange;
structItem.UnderRange = this.CurrentProductItem2.UnderRange;
structItem.TareRange = this.CurrentProductItem2.TareRange;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveProductFile2(ProductItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructProductItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "ProductItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateProductFile2();
}
structItem.Number = item.Number;
structItem.Name = item.Name;
structItem.LotNo = item.LotNo;
structItem.OverRange = item.OverRange;
structItem.PassRange = item.PassRange;
structItem.UnderRange = item.UnderRange;
structItem.TareRange = item.TareRange;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadProductFile2(ref ProductItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructProductItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "ProductItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateProductFile2();
}
try
{
structItem = (StructProductItem)this.smartFileIO.ReadStructure(index, typeof(StructProductItem));
item.Number = structItem.Number;
item.Name = structItem.Name;
item.LotNo = structItem.LotNo;
item.PassRange = structItem.PassRange;
item.OverRange = structItem.OverRange;
item.UnderRange = structItem.UnderRange;
item.TareRange = structItem.TareRange;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
public void LoadProductName2(ref Collection<string> values)
{
string fullFilePath = "";
StructProductItem structItem;
values.Clear();
fullFilePath = this.PathSystemFileFolder2 + "ProductItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
this.smartFileIO.Open(this.BufferSmartUart);
if (this.smartFileIO.ReadStructureAllBuffer() == true)
{
for (int i = 0; i < 1000; i++)
{
structItem = (StructProductItem)this.smartFileIO.ReadStructureBuffer(typeof(StructProductItem), i);
values.Add(structItem.Name);
}
}
this.smartFileIO.Close();
}
#endregion
#region JudgmentSet File #1
private void CreateJudgmentSetFile1()
{
StructJudgmentSetItem structItem;
this.CurrentJudgmentSetItem1.Initialization();
for (int i = 0; i < 1000; i++)
{
structItem.Filter = this.CurrentJudgmentSetItem1.Filter;
structItem.JudgmentDelayTime = this.CurrentJudgmentSetItem1.JudgmentDelayTime;
structItem.DoubleDelayTime = this.CurrentJudgmentSetItem1.DoubleDelayTime;
structItem.JudgmentCount = this.CurrentJudgmentSetItem1.JudgmentCount;
structItem.FeedSpeed1 = this.CurrentJudgmentSetItem1.FeedSpeed1;
structItem.FeedSpeed2 = this.CurrentJudgmentSetItem1.FeedSpeed2;
structItem.FeedSpeed3 = this.CurrentJudgmentSetItem1.FeedSpeed3;
structItem.DynamicCorrection = this.CurrentJudgmentSetItem1.DynamicCorrection;
structItem.Sorter1Mode = this.CurrentJudgmentSetItem1.Sorter1Mode;
structItem.Sorter1DelayTime = this.CurrentJudgmentSetItem1.Sorter1DelayTime;
structItem.Sorter1RunTime = this.CurrentJudgmentSetItem1.Sorter1RunTime;
structItem.Sorter2Mode = this.CurrentJudgmentSetItem1.Sorter2Mode;
structItem.Sorter2DelayTime = this.CurrentJudgmentSetItem1.Sorter2DelayTime;
structItem.Sorter2RunTime = this.CurrentJudgmentSetItem1.Sorter2RunTime;
structItem.AutoJudgmentLength = this.CurrentJudgmentSetItem1.AutoJudgmentLength;
structItem.AutoJudgment1 = this.CurrentJudgmentSetItem1.AutoJudgment1;
structItem.AutoJudgment2 = this.CurrentJudgmentSetItem1.AutoJudgment2;
structItem.AutoJudgment3 = this.CurrentJudgmentSetItem1.AutoJudgment3;
structItem.DescendDelayTime = this.CurrentJudgmentSetItem1.DescendDelayTime;
structItem.AscendDelayTime = this.CurrentJudgmentSetItem1.AscendDelayTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveJudgmentSetFile1(JudgmentSetItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructJudgmentSetItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "JudgmentSetItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateJudgmentSetFile1();
}
structItem.Filter = item.Filter;
structItem.JudgmentDelayTime = item.JudgmentDelayTime;
structItem.DoubleDelayTime = item.DoubleDelayTime;
structItem.JudgmentCount = item.JudgmentCount;
structItem.FeedSpeed1 = item.FeedSpeed1;
structItem.FeedSpeed2 = item.FeedSpeed2;
structItem.FeedSpeed3 = item.FeedSpeed3;
structItem.DynamicCorrection = item.DynamicCorrection;
structItem.Sorter1Mode = item.Sorter1Mode;
structItem.Sorter1DelayTime = item.Sorter1DelayTime;
structItem.Sorter1RunTime = item.Sorter1RunTime;
structItem.Sorter2Mode = item.Sorter2Mode;
structItem.Sorter2DelayTime = item.Sorter2DelayTime;
structItem.Sorter2RunTime = item.Sorter2RunTime;
structItem.AutoJudgmentLength = item.AutoJudgmentLength;
structItem.AutoJudgment1 = item.AutoJudgment1;
structItem.AutoJudgment2 = item.AutoJudgment2;
structItem.AutoJudgment3 = item.AutoJudgment3;
structItem.DescendDelayTime = item.DescendDelayTime;
structItem.AscendDelayTime = item.AscendDelayTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadJudgmentSetFile1(ref JudgmentSetItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructJudgmentSetItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "JudgmentSetItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateJudgmentSetFile1();
}
try
{
structItem = (StructJudgmentSetItem)this.smartFileIO.ReadStructure(index, typeof(StructJudgmentSetItem));
item.Filter = structItem.Filter;
item.JudgmentDelayTime = structItem.JudgmentDelayTime;
item.DoubleDelayTime = structItem.DoubleDelayTime;
item.JudgmentCount = structItem.JudgmentCount;
item.FeedSpeed1 = structItem.FeedSpeed1;
item.FeedSpeed2 = structItem.FeedSpeed2;
item.FeedSpeed3 = structItem.FeedSpeed3;
item.DynamicCorrection = structItem.DynamicCorrection;
item.Sorter1Mode = structItem.Sorter1Mode;
item.Sorter1DelayTime = structItem.Sorter1DelayTime;
item.Sorter1RunTime = structItem.Sorter1RunTime;
item.Sorter2Mode = structItem.Sorter2Mode;
item.Sorter2DelayTime = structItem.Sorter2DelayTime;
item.Sorter2RunTime = structItem.Sorter2RunTime;
item.AutoJudgmentLength = structItem.AutoJudgmentLength;
item.AutoJudgment1 = structItem.AutoJudgment1;
item.AutoJudgment2 = structItem.AutoJudgment2;
item.AutoJudgment3 = structItem.AutoJudgment3;
item.DescendDelayTime = structItem.DescendDelayTime;
item.AscendDelayTime = structItem.AscendDelayTime;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region JudgmentSet File #2
private void CreateJudgmentSetFile2()
{
StructJudgmentSetItem structItem;
this.CurrentJudgmentSetItem2.Initialization();
for (int i = 0; i < 1000; i++)
{
structItem.Filter = this.CurrentJudgmentSetItem2.Filter;
structItem.JudgmentDelayTime = this.CurrentJudgmentSetItem2.JudgmentDelayTime;
structItem.DoubleDelayTime = this.CurrentJudgmentSetItem2.DoubleDelayTime;
structItem.JudgmentCount = this.CurrentJudgmentSetItem2.JudgmentCount;
structItem.FeedSpeed1 = this.CurrentJudgmentSetItem2.FeedSpeed1;
structItem.FeedSpeed2 = this.CurrentJudgmentSetItem2.FeedSpeed2;
structItem.FeedSpeed3 = this.CurrentJudgmentSetItem2.FeedSpeed3;
structItem.DynamicCorrection = this.CurrentJudgmentSetItem2.DynamicCorrection;
structItem.Sorter1Mode = this.CurrentJudgmentSetItem2.Sorter1Mode;
structItem.Sorter1DelayTime = this.CurrentJudgmentSetItem2.Sorter1DelayTime;
structItem.Sorter1RunTime = this.CurrentJudgmentSetItem2.Sorter1RunTime;
structItem.Sorter2Mode = this.CurrentJudgmentSetItem2.Sorter2Mode;
structItem.Sorter2DelayTime = this.CurrentJudgmentSetItem2.Sorter2DelayTime;
structItem.Sorter2RunTime = this.CurrentJudgmentSetItem2.Sorter2RunTime;
structItem.AutoJudgmentLength = this.CurrentJudgmentSetItem2.AutoJudgmentLength;
structItem.AutoJudgment1 = this.CurrentJudgmentSetItem2.AutoJudgment1;
structItem.AutoJudgment2 = this.CurrentJudgmentSetItem2.AutoJudgment2;
structItem.AutoJudgment3 = this.CurrentJudgmentSetItem2.AutoJudgment3;
structItem.DescendDelayTime = this.CurrentJudgmentSetItem2.DescendDelayTime;
structItem.AscendDelayTime = this.CurrentJudgmentSetItem2.AscendDelayTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveJudgmentSetFile2(JudgmentSetItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructJudgmentSetItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "JudgmentSetItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateJudgmentSetFile2();
}
structItem.Filter = item.Filter;
structItem.JudgmentDelayTime = item.JudgmentDelayTime;
structItem.DoubleDelayTime = item.DoubleDelayTime;
structItem.JudgmentCount = item.JudgmentCount;
structItem.FeedSpeed1 = item.FeedSpeed1;
structItem.FeedSpeed2 = item.FeedSpeed2;
structItem.FeedSpeed3 = item.FeedSpeed3;
structItem.DynamicCorrection = item.DynamicCorrection;
structItem.Sorter1Mode = item.Sorter1Mode;
structItem.Sorter1DelayTime = item.Sorter1DelayTime;
structItem.Sorter1RunTime = item.Sorter1RunTime;
structItem.Sorter2Mode = item.Sorter2Mode;
structItem.Sorter2DelayTime = item.Sorter2DelayTime;
structItem.Sorter2RunTime = item.Sorter2RunTime;
structItem.AutoJudgmentLength = item.AutoJudgmentLength;
structItem.AutoJudgment1 = item.AutoJudgment1;
structItem.AutoJudgment2 = item.AutoJudgment2;
structItem.AutoJudgment3 = item.AutoJudgment3;
structItem.DescendDelayTime = item.DescendDelayTime;
structItem.AscendDelayTime = item.AscendDelayTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyString1 = "";
structItem.DummyString2 = "";
structItem.DummyString3 = "";
structItem.DummyString4 = "";
structItem.DummyString5 = "";
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadJudgmentSetFile2(ref JudgmentSetItem item, int index)
{
bool fileCheck = false;
string fullFilePath = "";
StructJudgmentSetItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "JudgmentSetItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateJudgmentSetFile2();
}
try
{
structItem = (StructJudgmentSetItem)this.smartFileIO.ReadStructure(index, typeof(StructJudgmentSetItem));
item.Filter = structItem.Filter;
item.JudgmentDelayTime = structItem.JudgmentDelayTime;
item.DoubleDelayTime = structItem.DoubleDelayTime;
item.JudgmentCount = structItem.JudgmentCount;
item.FeedSpeed1 = structItem.FeedSpeed1;
item.FeedSpeed2 = structItem.FeedSpeed2;
item.FeedSpeed3 = structItem.FeedSpeed3;
item.DynamicCorrection = structItem.DynamicCorrection;
item.Sorter1Mode = structItem.Sorter1Mode;
item.Sorter1DelayTime = structItem.Sorter1DelayTime;
item.Sorter1RunTime = structItem.Sorter1RunTime;
item.Sorter2Mode = structItem.Sorter2Mode;
item.Sorter2DelayTime = structItem.Sorter2DelayTime;
item.Sorter2RunTime = structItem.Sorter2RunTime;
item.AutoJudgmentLength = structItem.AutoJudgmentLength;
item.AutoJudgment1 = structItem.AutoJudgment1;
item.AutoJudgment2 = structItem.AutoJudgment2;
item.AutoJudgment3 = structItem.AutoJudgment3;
item.DescendDelayTime = structItem.DescendDelayTime;
item.AscendDelayTime = structItem.AscendDelayTime;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region Counter File #1
private void CreateCounterFile1()
{
StructCounterItem structItem;
WeightData item = new WeightData();
item.ClearCount();
for (int i = 0; i < 1000; i++)
{
structItem.OverCount = item.OverCount;
structItem.OverSumWeight = item.OverSumWeight;
structItem.PassCount = item.PassCount;
structItem.PassSumWeight = item.PassSumWeight;
structItem.UnderCount = item.UnderCount;
structItem.UnderSumWeight = item.UnderSumWeight;
structItem.ExNGCount = item.ETCExNGCount;
structItem.NormalDistribution1 = item.CollectionNormalDistributionCount[0];
structItem.NormalDistribution2 = item.CollectionNormalDistributionCount[1];
structItem.NormalDistribution3 = item.CollectionNormalDistributionCount[2];
structItem.NormalDistribution4 = item.CollectionNormalDistributionCount[3];
structItem.NormalDistribution5 = item.CollectionNormalDistributionCount[4];
structItem.NormalDistribution6 = item.CollectionNormalDistributionCount[5];
structItem.NormalDistribution7 = item.CollectionNormalDistributionCount[6];
structItem.NormalDistribution8 = item.CollectionNormalDistributionCount[7];
structItem.NormalDistribution9 = item.CollectionNormalDistributionCount[8];
structItem.NormalDistribution10 = item.CollectionNormalDistributionCount[9];
structItem.StartTime = item.StartTime;
structItem.StopTime = item.StopTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveCounterFile1(WeightData item, int index)
{
string fullFilePath = "";
bool fileCheck = false;
StructCounterItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "counterItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateCounterFile1();
}
structItem.OverCount = item.OverCount;
structItem.OverSumWeight = item.OverSumWeight;
structItem.PassCount = item.PassCount;
structItem.PassSumWeight = item.PassSumWeight;
structItem.UnderCount = item.UnderCount;
structItem.UnderSumWeight = item.UnderSumWeight;
structItem.ExNGCount = item.ETCExNGCount;
structItem.NormalDistribution1 = item.CollectionNormalDistributionCount[0];
structItem.NormalDistribution2 = item.CollectionNormalDistributionCount[1];
structItem.NormalDistribution3 = item.CollectionNormalDistributionCount[2];
structItem.NormalDistribution4 = item.CollectionNormalDistributionCount[3];
structItem.NormalDistribution5 = item.CollectionNormalDistributionCount[4];
structItem.NormalDistribution6 = item.CollectionNormalDistributionCount[5];
structItem.NormalDistribution7 = item.CollectionNormalDistributionCount[6];
structItem.NormalDistribution8 = item.CollectionNormalDistributionCount[7];
structItem.NormalDistribution9 = item.CollectionNormalDistributionCount[8];
structItem.NormalDistribution10 = item.CollectionNormalDistributionCount[9];
structItem.StartTime = item.StartTime;
structItem.StopTime = item.StopTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadCounterFile1(ref WeightData item, int index)
{
string fullFilePath = "";
bool fileCheck = false;
StructCounterItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "counterItem1.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateCounterFile1();
}
try
{
structItem = (StructCounterItem)this.smartFileIO.ReadStructure(index, typeof(StructCounterItem));
item.UnderCount = structItem.UnderCount;
item.UnderSumWeight = structItem.UnderSumWeight;
item.PassCount = structItem.PassCount;
item.PassSumWeight = structItem.PassSumWeight;
item.OverCount = structItem.OverCount;
item.OverSumWeight = structItem.OverSumWeight;
item.ETCExNGCount = structItem.ExNGCount;
item.CollectionNormalDistributionCount[0] = structItem.NormalDistribution1;
item.CollectionNormalDistributionCount[1] = structItem.NormalDistribution2;
item.CollectionNormalDistributionCount[2] = structItem.NormalDistribution3;
item.CollectionNormalDistributionCount[3] = structItem.NormalDistribution4;
item.CollectionNormalDistributionCount[4] = structItem.NormalDistribution5;
item.CollectionNormalDistributionCount[5] = structItem.NormalDistribution6;
item.CollectionNormalDistributionCount[6] = structItem.NormalDistribution7;
item.CollectionNormalDistributionCount[7] = structItem.NormalDistribution8;
item.CollectionNormalDistributionCount[8] = structItem.NormalDistribution9;
item.CollectionNormalDistributionCount[9] = structItem.NormalDistribution10;
if (structItem.StartTime.Year == 1111)
item.StartTime = DateTime.Now;
else
item.StartTime = structItem.StartTime;
if (structItem.StopTime.Year == 1111)
item.StopTime = DateTime.Now;
else
item.StopTime = structItem.StopTime;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#region Counter File #2
private void CreateCounterFile2()
{
StructCounterItem structItem;
WeightData item = new WeightData();
item.ClearCount();
for (int i = 0; i < 1000; i++)
{
structItem.OverCount = item.OverCount;
structItem.OverSumWeight = item.OverSumWeight;
structItem.PassCount = item.PassCount;
structItem.PassSumWeight = item.PassSumWeight;
structItem.UnderCount = item.UnderCount;
structItem.UnderSumWeight = item.UnderSumWeight;
structItem.ExNGCount = item.ETCExNGCount;
structItem.NormalDistribution1 = item.CollectionNormalDistributionCount[0];
structItem.NormalDistribution2 = item.CollectionNormalDistributionCount[1];
structItem.NormalDistribution3 = item.CollectionNormalDistributionCount[2];
structItem.NormalDistribution4 = item.CollectionNormalDistributionCount[3];
structItem.NormalDistribution5 = item.CollectionNormalDistributionCount[4];
structItem.NormalDistribution6 = item.CollectionNormalDistributionCount[5];
structItem.NormalDistribution7 = item.CollectionNormalDistributionCount[6];
structItem.NormalDistribution8 = item.CollectionNormalDistributionCount[7];
structItem.NormalDistribution9 = item.CollectionNormalDistributionCount[8];
structItem.NormalDistribution10 = item.CollectionNormalDistributionCount[9];
structItem.StartTime = item.StartTime;
structItem.StopTime = item.StopTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
this.smartFileIO.WriteStructure_Begin(structItem, i);
}
this.smartFileIO.WriteStructure_End();
}
public void SaveCounterFile2(WeightData item, int index)
{
string fullFilePath = "";
bool fileCheck = false;
StructCounterItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "counterItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateCounterFile2();
}
structItem.OverCount = item.OverCount;
structItem.OverSumWeight = item.OverSumWeight;
structItem.PassCount = item.PassCount;
structItem.PassSumWeight = item.PassSumWeight;
structItem.UnderCount = item.UnderCount;
structItem.UnderSumWeight = item.UnderSumWeight;
structItem.ExNGCount = item.ETCExNGCount;
structItem.NormalDistribution1 = item.CollectionNormalDistributionCount[0];
structItem.NormalDistribution2 = item.CollectionNormalDistributionCount[1];
structItem.NormalDistribution3 = item.CollectionNormalDistributionCount[2];
structItem.NormalDistribution4 = item.CollectionNormalDistributionCount[3];
structItem.NormalDistribution5 = item.CollectionNormalDistributionCount[4];
structItem.NormalDistribution6 = item.CollectionNormalDistributionCount[5];
structItem.NormalDistribution7 = item.CollectionNormalDistributionCount[6];
structItem.NormalDistribution8 = item.CollectionNormalDistributionCount[7];
structItem.NormalDistribution9 = item.CollectionNormalDistributionCount[8];
structItem.NormalDistribution10 = item.CollectionNormalDistributionCount[9];
structItem.StartTime = item.StartTime;
structItem.StopTime = item.StopTime;
structItem.DummyInt1 = 0;
structItem.DummyInt2 = 0;
structItem.DummyInt3 = 0;
structItem.DummyInt4 = 0;
structItem.DummyInt5 = 0;
this.smartFileIO.WriteStructure(structItem, index);
this.smartFileIO.Close();
}
public void LoadCounterFile2(ref WeightData item, int index)
{
string fullFilePath = "";
bool fileCheck = false;
StructCounterItem structItem;
fullFilePath = this.PathSystemFileFolder2 + "counterItem2.int";
this.smartFileIO.FilePathName = fullFilePath;
FileInfo fileInfo = new FileInfo(fullFilePath);
fileCheck = fileInfo.Exists;
if (fileCheck == true)
this.smartFileIO.Open(this.BufferSmartUart);
else
{
this.smartFileIO.Open(this.BufferSmartUart);
this.CreateCounterFile2();
}
try
{
structItem = (StructCounterItem)this.smartFileIO.ReadStructure(index, typeof(StructCounterItem));
item.UnderCount = structItem.UnderCount;
item.UnderSumWeight = structItem.UnderSumWeight;
item.PassCount = structItem.PassCount;
item.PassSumWeight = structItem.PassSumWeight;
item.OverCount = structItem.OverCount;
item.OverSumWeight = structItem.OverSumWeight;
item.ETCExNGCount = structItem.ExNGCount;
item.CollectionNormalDistributionCount[0] = structItem.NormalDistribution1;
item.CollectionNormalDistributionCount[1] = structItem.NormalDistribution2;
item.CollectionNormalDistributionCount[2] = structItem.NormalDistribution3;
item.CollectionNormalDistributionCount[3] = structItem.NormalDistribution4;
item.CollectionNormalDistributionCount[4] = structItem.NormalDistribution5;
item.CollectionNormalDistributionCount[5] = structItem.NormalDistribution6;
item.CollectionNormalDistributionCount[6] = structItem.NormalDistribution7;
item.CollectionNormalDistributionCount[7] = structItem.NormalDistribution8;
item.CollectionNormalDistributionCount[8] = structItem.NormalDistribution9;
item.CollectionNormalDistributionCount[9] = structItem.NormalDistribution10;
item.StartTime = structItem.StartTime;
item.StopTime = structItem.StopTime;
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language);
myMsg.ShowDialog();
this.smartFileIO.Close();
}
this.smartFileIO.Close();
}
#endregion
#endregion
#region Override Member
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// 변수 초기 셋팅
this.DefaultSetting();
// SystemConfiguration 파일 읽기
this.LoadSystemConfigurationFile1();
this.LoadSystemConfigurationFile2();
Thread.Sleep(50);
// SystemParameter3
this.LoadSystemParameter3File(ref this.CurrentSystemParameter3);
Thread.Sleep(50);
// Counter 파일 읽기
this.LoadCounterFile1(ref this.CurrentWeightData1, this.SystemConfig.ProductNumber - 1);
this.LoadCounterFile2(ref this.CurrentWeightData2, this.SystemConfig.ProductNumber - 1);
Thread.Sleep(50);
// 품목 파일 읽기
this.LoadProductFile1(ref this.CurrentProductItem1, this.SystemConfig.ProductNumber - 1);
this.LoadProductFile2(ref this.CurrentProductItem2, this.SystemConfig.ProductNumber - 1);
Thread.Sleep(50);
// SystemParameter 파일 읽기
this.LoadJudgmentSetFile1(ref this.CurrentJudgmentSetItem1, this.SystemConfig.ProductNumber - 1);
this.LoadJudgmentSetFile2(ref this.CurrentJudgmentSetItem2, this.SystemConfig.ProductNumber - 1);
Thread.Sleep(50);
// UserGroupPassword 파일 읽기
this.LoadUserGroupPasswordFile();
// UserGroup 파일 읽기
this.LoadUserGroupFile(ref this.CurrentUserGroup);
// User 파일 읽기
this.LoadUserLevel1File(this.CurrentUser.Level1Users);
this.LoadUserLevel2File(this.CurrentUser.Level2Users);
this.LoadUserLevel3File(this.CurrentUser.Level3Users);
// 폼 생성
this.CreateForm();
this.SmartSplashProgramLoad.Finish();
this.smartForm.Show((int)Define.E_FormStore.FormMainDisplay);
this.ChildFormMainDisplay.UpdateEquipmentStatusDisplay(this.CurrentSystemStatus.Equipment);
this.TimerSensorErrorInterval();
this.TimerEntryNotDetectedIgnoreTimeInverval();
// 메인 통신 OPEN
this.OpenSmartUartLink();
// COM1 OPEN
this.OpenSerialCOM1();
// COM3 OPEN
this.OpenSerialCOM3();
// COM4 OPEN
this.OpenSerialCOM4();
// Read SystemParameter1
this.TransferDataStream(CommunicationCommand.Read, CommunicationID.MainBoard, CommunicationAddress._9507_SystemParameterRead, "");
// 변수 초기 셋팅2(바코드 셋팅, 이더넷)
this.DefaultSetting2();
// Mouse On
//this.smartForm.Mode = SmartForm.RUNMODE.DEVELOPER;
//this.smartForm.MouseCursor = SmartForm.OnOff.ON;
}
#endregion
#region Event Handler
private void CurrentAlarmList_Change(Define.E_TrackingAlarm alarm, string status)
{
if (status == "ON")
{
this.CurrentAlarm.Add((short)alarm);
}
else
{
for (int i = 0; i < this.CurrentAlarm.Count; i++)
{
if (this.CurrentAlarm[i] == (short)alarm)
{
this.CurrentAlarm.RemoveAt(i);
break;
}
}
}
//this.SetTrackingHistoryData(alarm, status);
}
private void smartTCPMultiServer_OnReceiveHandler(SmartTCPMultiServer.CHandleClinet.READINFO datas)
{
int ret = 0;
byte[] readByte;
string strRecData = "";
byte[] sendOPCDatas = new byte[57];
byte[] sendModbusDatas;
try
{
readByte = datas.receiveDatas;
strRecData = SmartTCPMultiServer.ConvertAsciiByteToString(readByte);
}
catch
{
return;
}
switch (this.SystemConfig.EthernetCommMode)
{
case (int)Define.E_CommMode.f5_Modbus:
#region Modbus TCP
if (this.smartTCPMultiServer.ClientInfoList != null)
{
this.ChildFormMainDisplay.MainModbus.UpdateReceiveCount();
//Console.Write("\n" + string.Format("Receive Modbus {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, Helper.ByteToHexString(readByte)));
if (readByte[7] == 0x03) // Read Holding Register
{
#region Read Holding Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_03);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeTCPResponseData(readByte, this.Transfer_5_Modbus_Read_TCP(readByte), ModbusFunctionCode.FunctionCode_03);
else
responseData = this.Modbus.MakeTCPErrorResponseData(readByte, errorCheck, ModbusFunctionCode.FunctionCode_03);
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData);
}
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else if (readByte[7] == 0x10) // Write Multiple Register
{
#region Write Multiple Register
try
{
byte[] errorResponseData = new byte[9];
byte[] responseData = new byte[12];
byte errorCheck = this.Modbus.CheckRequestDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_16);
if (errorCheck == 0x00)
{
for (int i = 0; i < 12; i++)
responseData[i] = readByte[i];
responseData[5] = 0x06;
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData);
}
this.ReceiveModbusTCPWriteManager(readByte);
}
else
{
for (int i = 0; i < 5; i++)
errorResponseData[i] = readByte[i];
// Length
errorResponseData[5] = 0x03;
// Unit ID
errorResponseData[6] = 0x01;
// Function Code
errorResponseData[7] = 0x90;
// Error Code
errorResponseData[8] = errorCheck;
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData);
}
}
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else // Read Input Register(0x04)
{
if (this.SystemConfig.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._04_ReadInputRegister)
{
#region Read Input Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_04);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeTCP04ResponseData(readByte, this.Transfer_5_Modbus_Read_TCP(readByte));
else
responseData = this.Modbus.MakeTCP04ErrorResponseData(readByte, errorCheck);
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
{
this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData);
}
//Console.Write("\n" + string.Format("Send Modbus {0:yyyy-MM-dd HH:mm:ss}: {1}", DateTime.Now, Helper.ByteToHexString(responseData)));
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, Helper.ByteToHexString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, Helper.ByteToHexString(responseData)));
}
}
catch
{
}
#endregion
}
}
}
#endregion
break;
default:
break;
}
}
private void smartSerialPort1_OnReadQueueEvent()
{
int ret = 0;
string strTemp = "";
byte[] readByte;
SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
try
{
receiveDataState = this.smartSerialPort1.ReadQueue(out readByte);
if (this.SystemConfig.SerialCOM1Mode != (int)Define.E_CommMode.f5_Modbus)
{
strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
if (this.ChildFormMainDisplay.labelBarcode.Visible == true)
this.ChildFormMainDisplay.labelBarcode.Text = strTemp;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
}
else
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
}
}
catch
{
return;
}
if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
{
return;
}
switch (this.SystemConfig.SerialCOM1Mode)
{
case (int)Define.E_CommMode.f5_Modbus:
#region Modbus RTU
this.ChildFormMainDisplay.MainModbus.UpdateReceiveCount();
if (this.SystemConfig.ModbusRTUSlaveIDCOM1 != Convert.ToInt32(readByte[0]))
return;
if (readByte[1] == 0x03) // Read Holding Register
{
#region Read Holding Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_03);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTUResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM1, ModbusFunctionCode.FunctionCode_03);
else
responseData = this.Modbus.MakeRTUErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM1, ModbusFunctionCode.FunctionCode_03);
this.TransferSerialCOM1(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else if (readByte[1] == 0x10) // Write Multiple Register
{
#region Write Multiple Register
try
{
byte[] errorResponseData = new byte[5];
byte[] responseData = new byte[8];
byte[] crc;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_16);
if (errorCheck == 0x00)
{
for (int i = 0; i < 6; i++)
responseData[i] = readByte[i];
crc = this.Modbus.MakeRTUCRC(responseData, responseData.Length - 2);
for (int i = 0; i < 2; i++)
responseData[6 + i] = crc[i];
this.TransferSerialCOM1(responseData);
this.ReceiveModbusRTUWriteManager(readByte);
}
else
{
errorResponseData[0] = readByte[0];
errorResponseData[1] = 0x90;
errorResponseData[2] = errorCheck;
crc = this.Modbus.MakeRTUCRC(errorResponseData, errorResponseData.Length - 2);
for (int i = 0; i < 2; i++)
errorResponseData[3 + i] = crc[i];
this.TransferSerialCOM1(errorResponseData);
}
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else // Read Input Register(0x04)
{
if (this.SystemConfig.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._04_ReadInputRegister)
{
#region Read Input Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_04);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTU04ResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM1);
else
responseData = this.Modbus.MakeRTU04ErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM1);
this.TransferSerialCOM1(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM1 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
}
#endregion
break;
default:
break;
}
}
private void smartSerialPort2_OnReadQueueEvent()
{
this.ReceiveData();
// 통신 확인
if (this.CommunicationCheckCount / 3 == 1)
{
this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = true;
this.CommunicationCheckCount = 0;
}
else
{
this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = false;
this.CommunicationCheckCount += 1;
}
}
private void smartSerialPort3_OnReadQueueEvent()
{
int productNo = 0;
string strTemp = "", value = "";
byte[] readByte;
byte[] sendModbusDatas;
byte[] madeDatas;
BarcodeStatus status = BarcodeStatus.None;
SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
try
{
receiveDataState = this.smartSerialPort3.ReadQueue(out readByte);
if (this.SystemConfig.SerialCOM3Mode != (int)Define.E_CommMode.f5_Modbus)
{
strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
if (this.ChildFormMainDisplay.labelBarcode.Visible == true)
this.ChildFormMainDisplay.labelBarcode.Text = strTemp;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
}
else
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
}
}
catch
{
return;
}
if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
{
return;
}
switch (this.SystemConfig.SerialCOM3Mode)
{
case (int)Define.E_CommMode.f5_Modbus:
#region Modbus RTU
this.ChildFormMainDisplay.MainModbus.UpdateReceiveCount();
if (this.SystemConfig.ModbusRTUSlaveIDCOM3 != Convert.ToInt32(readByte[0]))
return;
if (readByte[1] == 0x03) // Read Holding Register
{
#region Read Holding Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_03);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTUResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM3, ModbusFunctionCode.FunctionCode_03);
else
responseData = this.Modbus.MakeRTUErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM3, ModbusFunctionCode.FunctionCode_03);
this.TransferSerialCOM3(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else if (readByte[1] == 0x10) // Write Multiple Register
{
#region Write Multiple Register
try
{
byte[] errorResponseData = new byte[5];
byte[] responseData = new byte[8];
byte[] crc;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_16);
if (errorCheck == 0x00)
{
for (int i = 0; i < 6; i++)
responseData[i] = readByte[i];
crc = this.Modbus.MakeRTUCRC(responseData, responseData.Length - 2);
for (int i = 0; i < 2; i++)
responseData[6 + i] = crc[i];
this.TransferSerialCOM3(responseData);
this.ReceiveModbusRTUWriteManager(readByte);
}
else
{
errorResponseData[0] = readByte[0];
errorResponseData[1] = 0x90;
errorResponseData[2] = errorCheck;
crc = this.Modbus.MakeRTUCRC(errorResponseData, errorResponseData.Length - 2);
for (int i = 0; i < 2; i++)
errorResponseData[3 + i] = crc[i];
this.TransferSerialCOM3(errorResponseData);
}
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else // Read Input Register(0x04)
{
if (this.SystemConfig.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._04_ReadInputRegister)
{
#region Read Input Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_04);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTU04ResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM3);
else
responseData = this.Modbus.MakeRTU04ErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM3);
this.TransferSerialCOM3(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM3 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
}
#endregion
break;
default:
break;
}
}
private void smartSerialPort4_OnReadQueueEvent()
{
int ret = 0;
string strTemp = "";
byte[] readByte;
SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
try
{
receiveDataState = this.smartSerialPort4.ReadQueue(out readByte);
if (this.SystemConfig.SerialCOM4Mode != (int)Define.E_CommMode.f5_Modbus)
{
strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
if (this.ChildFormMainDisplay.labelBarcode.Visible == true)
this.ChildFormMainDisplay.labelBarcode.Text = strTemp;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, strTemp));
}
else
{
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
}
}
catch
{
return;
}
if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
{
return;
}
switch (this.SystemConfig.SerialCOM4Mode)
{
case (int)Define.E_CommMode.f5_Modbus:
#region Modbus RTU
this.ChildFormMainDisplay.MainModbus.UpdateReceiveCount();
if (this.SystemConfig.ModbusRTUSlaveIDCOM4 != Convert.ToInt32(readByte[0]))
return;
if (readByte[1] == 0x03) // Read Holding Register
{
#region Read Holding Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_03);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTUResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM4, ModbusFunctionCode.FunctionCode_03);
else
responseData = this.Modbus.MakeRTUErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM4, ModbusFunctionCode.FunctionCode_03);
this.TransferSerialCOM4(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else if (readByte[1] == 0x10) // Write Multiple Register
{
#region Write Multiple Register
try
{
byte[] errorResponseData = new byte[5];
byte[] responseData = new byte[8];
byte[] crc;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_16);
if (errorCheck == 0x00)
{
for (int i = 0; i < 6; i++)
responseData[i] = readByte[i];
crc = this.Modbus.MakeRTUCRC(responseData, responseData.Length - 2);
for (int i = 0; i < 2; i++)
responseData[6 + i] = crc[i];
this.TransferSerialCOM4(responseData);
this.ReceiveModbusRTUWriteManager(readByte);
}
else
{
errorResponseData[0] = readByte[0];
errorResponseData[1] = 0x90;
errorResponseData[2] = errorCheck;
crc = this.Modbus.MakeRTUCRC(errorResponseData, errorResponseData.Length - 2);
for (int i = 0; i < 2; i++)
errorResponseData[3 + i] = crc[i];
this.TransferSerialCOM4(errorResponseData);
}
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
else // Read Input Register(0x04)
{
if (this.SystemConfig.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._04_ReadInputRegister)
{
#region Read Input Register
try
{
byte[] responseData;
byte errorCheck = this.Modbus.CheckRequestDataErrorRTU(readByte, ModbusFunctionCode.FunctionCode_04);
if (errorCheck == 0x00)
responseData = this.Modbus.MakeRTU04ResponseData(this.Transfer_5_Modbus_Read_RTU(readByte), this.SystemConfig.ModbusRTUSlaveIDCOM4);
else
responseData = this.Modbus.MakeRTU04ErrorResponseData(errorCheck, this.SystemConfig.ModbusRTUSlaveIDCOM4);
this.TransferSerialCOM4(responseData);
// 로그
if (this.IsCommunicationLogOpen == true)
{
this.smartFileCommunicationLog.WriteString(string.Format("Receive COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte)));
this.smartFileCommunicationLog.WriteString(string.Format("Send COM4 ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData)));
}
}
catch
{
}
#endregion
}
}
#endregion
break;
default:
break;
}
}
private void timerEntryNotDetectedIgnoreTime1_Tick(object sender, EventArgs e)
{
this.timerEntryNotDetectedIgnoreTime1.Enabled = false;
if (this.IsJudgmentNow1 == true)
this.IsJudgmentNow1 = false;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("IsJudgmentNow1 ({0:yyyy-MM-dd HH:mm:ss}): false", DateTime.Now));
}
private void timerEntryNotDetectedIgnoreTime2_Tick(object sender, EventArgs e)
{
this.timerEntryNotDetectedIgnoreTime2.Enabled = false;
if (this.IsJudgmentNow2 == true)
this.IsJudgmentNow2 = false;
// 로그
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("IsJudgmentNow2 ({0:yyyy-MM-dd HH:mm:ss}): false", DateTime.Now));
}
private void timerSensorError1_Tick(object sender, EventArgs e)
{
this.timerSensorError1.Enabled = false;
if (this.SystemConfig.Language == Define.E_LanguageID.Korean)
this.ChildFormMainDisplay.PopUpWarning("#1 진입센서 이상");
else
this.ChildFormMainDisplay.PopUpWarning("#1 Entry Sensor stucked");
this.TransferData(CommunicationCommand.BuzzerOnContinuousEnable, CommunicationID.MainBoard);
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
private void timerSensorError2_Tick(object sender, EventArgs e)
{
this.timerSensorError2.Enabled = false;
if (this.SystemConfig.Language == Define.E_LanguageID.Korean)
this.ChildFormMainDisplay.PopUpWarning("#2 진입센서 이상");
else
this.ChildFormMainDisplay.PopUpWarning("#2 Entry Sensor stucked");
this.TransferData(CommunicationCommand.BuzzerOnContinuousEnable, CommunicationID.MainBoard);
this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
}
private void timerClientTryConnect_Tick(object sender, EventArgs e)
{
this.DelegateTimerTryConnect(false);
this.EthernetClientConnect();
}
private void timerCOM1_Tick(object sender, EventArgs e)
{
System.Windows.Forms.Timer timer = sender as System.Windows.Forms.Timer;
timer.Enabled = false;
if (this.QueueCOM1.Count > 0)
{
Type type = this.QueueCOM1.Peek().GetType();
if (type == typeof(string))
this.TransferDirectSerialCOM1((string)this.QueueCOM1.Dequeue());
else if (type == typeof(byte[]))
this.TransferDirectSerialCOM1((byte[])this.QueueCOM1.Dequeue());
}
timer.Dispose();
timer = null;
}
private void timerCOM3_Tick(object sender, EventArgs e)
{
System.Windows.Forms.Timer timer = sender as System.Windows.Forms.Timer;
timer.Enabled = false;
if (this.QueueCOM3.Count > 0)
{
Type type = this.QueueCOM3.Peek().GetType();
if (this.smartSerialPort3.FrameSeparationType == SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY)
{
if (type == typeof(string))
this.TransferDirectSerialCOM3RawData((string)this.QueueCOM3.Dequeue());
else if (type == typeof(byte[]))
this.TransferDirectSerialCOM3RawData((byte[])this.QueueCOM3.Dequeue());
}
else
{
if (type == typeof(string))
this.TransferDirectSerialCOM3((string)this.QueueCOM3.Dequeue());
else if (type == typeof(byte[]))
this.TransferDirectSerialCOM3((byte[])this.QueueCOM3.Dequeue());
}
}
timer.Dispose();
timer = null;
}
private void timerCOM4_Tick(object sender, EventArgs e)
{
System.Windows.Forms.Timer timer = sender as System.Windows.Forms.Timer;
timer.Enabled = false;
if (this.QueueCOM4.Count > 0)
{
Type type = this.QueueCOM4.Peek().GetType();
if (type == typeof(string))
this.TransferDirectSerialCOM4((string)this.QueueCOM4.Dequeue());
else if (type == typeof(byte[]))
this.TransferDirectSerialCOM4((byte[])this.QueueCOM4.Dequeue());
}
timer.Dispose();
timer = null;
}
#endregion
}
}