123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml;
- namespace OTSDataType
- {
- public class CSEMDataMsr:ISlo
- {
- const double MAGNIFICATION_MIN = 20.0;
- private int m_nScanFieldWidth;
- private int m_nScanFieldHeight;
- private int m_nScanFieldSize100;
- private double m_dWorkingDistance;
- private int m_nTotalFields;
- private int m_nScanFieldHeight100;
- private double m_magnification;
- private double m_KV=0;
- private double m_Brightness=0;
- private double m_Contrast = 0;
- public double KV { get => m_KV; set => m_KV = value; }
- public double Brightness { get => m_Brightness; set => m_Brightness = value; }
- public double Contrast { get => m_Contrast; set => m_Contrast = value; }
- public CSEMDataMsr()
- {
- // initialization
- Init();
- }
- void Init()
- {
- m_nScanFieldWidth = 0;
- m_nScanFieldSize100 = 1142;
- m_dWorkingDistance = 0;
- m_nTotalFields = 0;
- m_magnification = 0;
- }
- public CSEMDataMsr ( CSEMDataMsr a_oSource)
- {
-
- // copy data over
- Duplicate(a_oSource);
- }
- void Duplicate( CSEMDataMsr a_oSource)
- {
-
- // copy data over
- m_nScanFieldWidth = a_oSource.m_nScanFieldWidth;
- m_nScanFieldSize100 = a_oSource.m_nScanFieldSize100;
- m_dWorkingDistance = a_oSource.m_dWorkingDistance;
- m_magnification = a_oSource.m_magnification;
- m_nTotalFields = a_oSource.m_nTotalFields;
- }
- bool Equals( CSEMDataMsr a_oSource)
- {
- return m_nScanFieldWidth == a_oSource.m_nScanFieldWidth &&
- m_nScanFieldSize100 == a_oSource.m_nScanFieldSize100 &&
- Math.Abs(m_dWorkingDistance - a_oSource.m_dWorkingDistance)<double.MinValue &&
- m_nTotalFields == a_oSource.m_nTotalFields;
- }
- public int GetScanFieldSize() { return m_nScanFieldWidth; }
- public void SetScanFieldWidth(int a_nScanFieldWidth) { m_nScanFieldWidth = a_nScanFieldWidth; }
- public void SetScanFieldHeight(int a_nScanFieldHeight) { m_nScanFieldHeight = a_nScanFieldHeight; }
- // scan field size 100 (micros)
- public int GetScanFieldSize100() { return m_nScanFieldSize100; }
- public void SetScanFieldSize100(int a_nScanFieldSize100) { m_nScanFieldSize100 = a_nScanFieldSize100; }
- public void SetScanFieldHeight100(int a_nScanFieldHeight100) { m_nScanFieldHeight100 = a_nScanFieldHeight100; }
- // working distance
- public double GetWorkingDistance() { return m_dWorkingDistance; }
- public void SetWorkingDistance(double a_dWorkingDistance) { m_dWorkingDistance = a_dWorkingDistance; }
- // total fields
- public int GetTotalFields() { return m_nTotalFields; }
- public void SetTotalFields(int a_nTotalFields) { m_nTotalFields = a_nTotalFields; }
- public double GetMagnification()
- {
-
- return m_magnification;
- }
- public void SetMagnification(double a_dMag)
- {
- if (a_dMag < MAGNIFICATION_MIN)
- {
- return;
- }
- m_magnification = a_dMag;
- m_nScanFieldWidth = (int)(100.0 * (double)m_nScanFieldSize100 / a_dMag + 0.5);
- m_nScanFieldHeight= (int)(100.0 * (double)m_nScanFieldHeight100 / a_dMag + 0.5);
- }
- public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
- {
- xInt xnScanFieldSize=new xInt();
- xInt xnScanFieldHeight = new xInt();
- xInt xnScanFieldSize100=new xInt();
- xDouble xdWorkingDistance=new xDouble();
- xDouble xdKV = new xDouble();
- xDouble xdBrightness = new xDouble();
- xDouble xdConstrast = new xDouble();
- xDouble xMag = new xDouble();
- xInt xnTotalFields=new xInt();
- Slo slo=new Slo();
- slo.Register("ScanFieldSize", xnScanFieldSize);
- slo.Register("ScanFieldHeight", xnScanFieldHeight);
- slo.Register("ScanFieldSize100", xnScanFieldSize100);
- slo.Register("WorkingDistance", xdWorkingDistance);
- slo.Register("Brightness", xdBrightness);
- slo.Register("Constrast", xdConstrast);
- slo.Register("KV", xdKV);
- slo.Register("Magnification", xMag);
- slo.Register("TotalFields", xnTotalFields);
- if (isStoring)
- {
- xnScanFieldSize.AssignValue(m_nScanFieldWidth);
- xnScanFieldHeight.AssignValue(m_nScanFieldHeight);
- xnScanFieldSize100.AssignValue(m_nScanFieldSize100);
- xdWorkingDistance.AssignValue(m_dWorkingDistance);
- xdKV.AssignValue(m_KV);
- xdBrightness.AssignValue(m_Brightness);
- xdConstrast.AssignValue(m_Contrast);
- xMag.AssignValue(m_magnification);
- xnTotalFields.AssignValue(m_nTotalFields);
- slo.Serialize(true, classDoc, rootNode);
- }
- else
- {
- slo.Serialize(false, classDoc, rootNode);
- m_nScanFieldWidth = xnScanFieldSize.value();
- m_nScanFieldSize100 = xnScanFieldSize100.value();
- m_dWorkingDistance = xdWorkingDistance.value();
- m_KV = xdKV.value();
- m_Brightness = xdBrightness.value();
- m_Contrast = xdConstrast.value();
- m_magnification = xMag.value();
- m_nTotalFields = xnTotalFields.value();
- }
- }
- }
- }
|