{\r
public class HiokiHicorderData\r
{\r
+ #region type definitions\r
[Flags]\r
public enum Channels\r
{ \r
Ch16 = 1 << 15,\r
}\r
\r
+ #endregion\r
+ #region fields\r
+ private const int MaxUnitNumber = 8;\r
+ private const int MaxChannelNumber = 64;\r
+ #endregion\r
+\r
+ #region constructors\r
public HiokiHicorderData()\r
{\r
- ChannelData = new AnalogChannel[16 + 1];\r
+ Units = new AnalogChannel[MaxUnitNumber + 1][];\r
+ ChannelData = new List<AnalogChannel>(MaxChannelNumber);\r
+ Z = new List<AnalogChannel>();\r
}\r
+ #endregion\r
\r
public Settings Settings\r
{\r
set;\r
}\r
\r
+ public AnalogChannel[][] Units\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
\r
- public AnalogChannel[] ChannelData\r
+ public List<AnalogChannel> ChannelData\r
{\r
get;\r
- set;\r
+ private set;\r
}\r
\r
- public AnalogChannel Ch1 { get { return ChannelData[1]; } }\r
- public AnalogChannel Ch2 { get { return ChannelData[2]; } }\r
- public AnalogChannel Ch3 { get { return ChannelData[3]; } }\r
- public AnalogChannel Ch4 { get { return ChannelData[4]; } }\r
- public AnalogChannel Ch5 { get { return ChannelData[5]; } }\r
- public AnalogChannel Ch6 { get { return ChannelData[6]; } }\r
- public AnalogChannel Ch7 { get { return ChannelData[7]; } }\r
- public AnalogChannel Ch8 { get { return ChannelData[8]; } }\r
- public AnalogChannel Ch9 { get { return ChannelData[9]; } }\r
- public AnalogChannel Ch10 { get { return ChannelData[10]; } }\r
- public AnalogChannel Ch11 { get { return ChannelData[11]; } }\r
- public AnalogChannel Ch12 { get { return ChannelData[12]; } }\r
- public AnalogChannel Ch13 { get { return ChannelData[13]; } }\r
- public AnalogChannel Ch14 { get { return ChannelData[14]; } }\r
- public AnalogChannel Ch15 { get { return ChannelData[15]; } }\r
- public AnalogChannel Ch16 { get { return ChannelData[16]; } }\r
+ public List<AnalogChannel> Z\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
\r
+ public AnalogChannel Ch1 { get { return Units[0][1]; } }\r
+ public AnalogChannel Ch2 { get { return Units[0][2]; } }\r
+ public AnalogChannel Ch3 { get { return Units[0][3]; } }\r
+ public AnalogChannel Ch4 { get { return Units[0][4]; } }\r
+ public AnalogChannel Ch5 { get { return Units[0][5]; } }\r
+ public AnalogChannel Ch6 { get { return Units[0][6]; } }\r
+ public AnalogChannel Ch7 { get { return Units[0][7]; } }\r
+ public AnalogChannel Ch8 { get { return Units[0][8]; } }\r
+ public AnalogChannel Ch9 { get { return Units[0][9]; } }\r
+ public AnalogChannel Ch10 { get { return Units[0][10]; } }\r
+ public AnalogChannel Ch11 { get { return Units[0][11]; } }\r
+ public AnalogChannel Ch12 { get { return Units[0][12]; } }\r
+ public AnalogChannel Ch13 { get { return Units[0][13]; } }\r
+ public AnalogChannel Ch14 { get { return Units[0][14]; } }\r
+ public AnalogChannel Ch15 { get { return Units[0][15]; } }\r
+ public AnalogChannel Ch16 { get { return Units[0][16]; } }\r
+\r
+ public void SetAnalogChannel(int channel, AnalogChannel data)\r
+ {\r
+ SetAnalogChannel(channel / 100, channel % 100, data);\r
+ }\r
+\r
+ public void SetAnalogChannel(int unit, int channel, AnalogChannel data)\r
+ {\r
+ if (channel > MaxChannelNumber)\r
+ {\r
+ return;\r
+ }\r
+ if (Units[unit] == null)\r
+ {\r
+ Units[unit] = new AnalogChannel[MaxChannelNumber + 1];\r
+ }\r
+ Units[unit][channel] = data;\r
+ }\r
+\r
+ public AnalogChannel GetAnalogChannel(int channel)\r
+ {\r
+ return GetAnalogChannel(channel / 100, channel % 100);\r
+ }\r
+\r
+ public AnalogChannel GetAnalogChannel(int unit, int channel)\r
+ {\r
+ if (Units[unit] == null)\r
+ {\r
+ return null;\r
+ }\r
+ return Units[unit][channel];\r
+ }\r
}\r
}\r