188 lines
6.3 KiB
C#
188 lines
6.3 KiB
C#
using System;
|
|
|
|
namespace arDev
|
|
{
|
|
public partial class Narumi
|
|
{
|
|
public enum eSignal1
|
|
{
|
|
front_gate_out = 0,
|
|
rear_gte_out,
|
|
mark_sensor_1,
|
|
mark_sensor_2,
|
|
lift_down_sensor,
|
|
lift_up_sensor,
|
|
magnet_relay,
|
|
charger_align_sensor,
|
|
}
|
|
public enum eSignal2
|
|
{
|
|
cart_detect1 = 0,
|
|
cart_detect2,
|
|
}
|
|
|
|
public class Signal1
|
|
{
|
|
private COMM.Flag _value { get; set; } = new COMM.Flag(8);
|
|
public void SetValue(Int16 value) { this._value.writeValue(value); }
|
|
public UInt16 Value
|
|
{
|
|
get
|
|
{
|
|
return (UInt16)_value.Value;
|
|
}
|
|
}
|
|
|
|
|
|
public bool GetValue(eSignal1 idx)
|
|
{
|
|
return _value.Get((int)idx);
|
|
}
|
|
public bool GetChanged(eSignal1 idx)
|
|
{
|
|
return _value.GetChanged((int)idx);
|
|
}
|
|
|
|
public Boolean front_gate_out { get { return GetValue(eSignal1.front_gate_out); } }
|
|
public Boolean rear_sensor_out { get { return GetValue(eSignal1.rear_gte_out); } }
|
|
public Boolean mark_sensor_1 { get { return GetValue(eSignal1.mark_sensor_1); } }
|
|
public Boolean mark_sensor_2 { get { return GetValue(eSignal1.mark_sensor_2); } }
|
|
public Boolean mark_sensor { get { return mark_sensor_1 || mark_sensor_2; } }
|
|
public Boolean charger_align_sensor { get { return GetValue(eSignal1.charger_align_sensor); } }
|
|
public Boolean lift_up { get { return GetValue(eSignal1.lift_up_sensor); } }
|
|
public Boolean lift_down { get { return GetValue(eSignal1.lift_down_sensor); } }
|
|
public Boolean magnet_on { get { return GetValue(eSignal1.magnet_relay); } }
|
|
|
|
public override string ToString()
|
|
{
|
|
//모든사태값을 탭으로 구분하여 문자를 생성한다
|
|
var sb = new System.Text.StringBuilder();
|
|
for (int i = 0; i < 16; i++)
|
|
{
|
|
var def = Enum.IsDefined(typeof(eSignal1), i);
|
|
if (def)
|
|
{
|
|
var flag = (eSignal1)i;
|
|
var value = _value.Get(i);
|
|
sb.AppendLine($"[{i:00}][{flag}] : {value}");
|
|
}
|
|
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
public string ToRtfString()
|
|
{
|
|
var sb = new System.Text.StringBuilder();
|
|
sb.AppendLine(@"{\rtf1\ansi\deff0");
|
|
sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue
|
|
|
|
for (int i = 0; i < 16; i++)
|
|
{
|
|
var def = Enum.IsDefined(typeof(eSignal1), i);
|
|
if (def)
|
|
{
|
|
var flag = (eSignal1)i;
|
|
var value = _value.Get(i);
|
|
string line = $"[{i:00}][{flag}] : {value}";
|
|
|
|
// : true가 포함된 줄은 파란색
|
|
if (value == true)
|
|
{
|
|
sb.AppendLine(@"\cf1 " + line + @"\cf0\line");
|
|
}
|
|
else
|
|
{
|
|
sb.AppendLine(line + @"\line");
|
|
}
|
|
}
|
|
}
|
|
|
|
sb.AppendLine("}");
|
|
return sb.ToString();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public class Signal2
|
|
{
|
|
private COMM.Flag _value { get; set; } = new COMM.Flag(8);
|
|
public void SetValue(Int16 value) { this._value.writeValue(value); }
|
|
public UInt16 Value
|
|
{
|
|
get
|
|
{
|
|
return (UInt16)_value.Value;
|
|
}
|
|
}
|
|
|
|
|
|
public bool GetValue(eSignal2 idx)
|
|
{
|
|
return _value.Get((int)idx);
|
|
}
|
|
public bool GetChanged(eSignal2 idx)
|
|
{
|
|
return _value.GetChanged((int)idx);
|
|
}
|
|
|
|
|
|
public Boolean cart_detect1 { get { return GetValue(eSignal2.cart_detect1); } }
|
|
public Boolean cart_detect2 { get { return GetValue(eSignal2.cart_detect2); } }
|
|
public override string ToString()
|
|
{
|
|
//모든사태값을 탭으로 구분하여 문자를 생성한다
|
|
var sb = new System.Text.StringBuilder();
|
|
for (int i = 0; i < 16; i++)
|
|
{
|
|
var def = Enum.IsDefined(typeof(eSignal2), i);
|
|
if(def)
|
|
{
|
|
var flag = (eSignal2)i;
|
|
var value = _value.Get(i);
|
|
sb.AppendLine($"[{i:00}][{flag}] : {value}");
|
|
}
|
|
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
public string ToRtfString()
|
|
{
|
|
var sb = new System.Text.StringBuilder();
|
|
sb.AppendLine(@"{\rtf1\ansi\deff0");
|
|
sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue
|
|
|
|
for (int i = 0; i < 16; i++)
|
|
{
|
|
var def = Enum.IsDefined(typeof(eSignal2), i);
|
|
if (def)
|
|
{
|
|
var flag = (eSignal2)i;
|
|
var value = _value.Get(i);
|
|
string line = $"[{i:00}][{flag}] : {value}";
|
|
|
|
// : true가 포함된 줄은 파란색
|
|
if (value == true)
|
|
{
|
|
sb.AppendLine(@"\cf1 " + line + @"\cf0\line");
|
|
}
|
|
else
|
|
{
|
|
sb.AppendLine(line + @"\line");
|
|
}
|
|
}
|
|
}
|
|
|
|
sb.AppendLine("}");
|
|
return sb.ToString();
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|