161 lines
3.7 KiB
C#
161 lines
3.7 KiB
C#
using System.Collections.Generic;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Diagnostics;
|
|
using System.Data;
|
|
using System.Collections;
|
|
using System.Windows.Forms;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace vmsnet
|
|
{
|
|
//###########################################################################################
|
|
//##
|
|
//## 작성자 : tindevil(tindevil@nate.com , tindevil@jdtek.co.kr)
|
|
//## 소유자 : 작성자 , JDTEK
|
|
//## 최초작성일 : 2011-11-16
|
|
//## 설명 : DA100사용시 미리 정의한 함수목록
|
|
//##
|
|
//###########################################################################################
|
|
|
|
|
|
/// <summary>
|
|
/// 측정된 정보가 들어있는곳.. 센서의 갯수만큼이 배열로 존재한다. 내부 time,temp 는 같은배열크기를 가진다.
|
|
/// </summary>
|
|
/// <remarks></remarks>
|
|
public class Mcdata
|
|
{
|
|
|
|
|
|
private List<double> dtime = new List<double>(0);
|
|
private List<double> dtemp = new List<double>(0);
|
|
public Mcdata()
|
|
{
|
|
dtime = new List<double>(0);
|
|
dtemp = new List<double>(0);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 자료의 시간이 저장됨
|
|
/// </summary>
|
|
/// <value></value>
|
|
/// <returns></returns>
|
|
/// <remarks></remarks>
|
|
public List<double> DataTime
|
|
{
|
|
get
|
|
{
|
|
return this.dtime;
|
|
}
|
|
set
|
|
{
|
|
this.dtime = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 자료의 온도가 저장됨
|
|
/// </summary>
|
|
/// <value></value>
|
|
/// <returns></returns>
|
|
/// <remarks></remarks>
|
|
public List<double> DataTemp
|
|
{
|
|
get
|
|
{
|
|
return this.dtemp;
|
|
}
|
|
set
|
|
{
|
|
this.dtemp = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 각장치마다 별도의 클래스가 될수있으므로 반드시 재정의 되어야한다.
|
|
/// </summary>
|
|
/// <remarks></remarks>
|
|
public abstract class CMachine
|
|
{
|
|
public bool DoRequest = false; ////현재 진행중이라는 뜻
|
|
public string IP; ////Ip Address
|
|
public int PORT;
|
|
public bool isOn; ////Connect 접속가능여부
|
|
public bool isBusy; ////Busy 사용중인가
|
|
public bool isLock; ////사용불가 플래그
|
|
public short idx = (short) 0;
|
|
public string Name;
|
|
public bool Disable = true;
|
|
public DateTime ConnectTry;
|
|
public UInt16 ConnTryCount = 0;
|
|
|
|
public enum ESENDMSGRESULT
|
|
{
|
|
SUC = 1,
|
|
FAIL = 0,
|
|
DISC = 2
|
|
}
|
|
|
|
/// <summary>
|
|
/// 반환시 사용되는 데이터값
|
|
/// </summary>
|
|
/// <remarks></remarks>
|
|
public struct ReturnData
|
|
{
|
|
/// <summary>
|
|
/// yyyy-MM-dd HH:mm:ss
|
|
/// </summary>
|
|
public string time;
|
|
public int value;
|
|
public bool err;
|
|
public short unit;
|
|
public short ch;
|
|
public bool timeerror;
|
|
public bool dataerror;
|
|
}
|
|
|
|
public CMachine(string p_ip,int port, string name)
|
|
{
|
|
this.IP = p_ip;
|
|
this.PORT = port;
|
|
this.isOn = false;
|
|
this.isBusy = false;
|
|
this.isLock = false;
|
|
this.Name = name;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 연결을시도합니다. 연결완료를 반환합니다.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
/// <remarks></remarks>
|
|
abstract public Task<bool> Connect();
|
|
|
|
/// <summary>
|
|
/// 연결을 종료합니다.
|
|
/// </summary>
|
|
/// <remarks></remarks>
|
|
abstract public void Disconnect();
|
|
|
|
/// <summary>
|
|
/// 데이터를 반환합니다.
|
|
/// </summary>
|
|
/// <param name="unitchs">시작유닛+채널번호입니다.(001 ~ 560)</param>
|
|
/// <param name="unitche">종료유닛+채널번호입니다.(001 ~ 560)</param>
|
|
/// <returns>반환데이터</returns>
|
|
/// <remarks></remarks>
|
|
abstract public ReturnData[] GetDataBinary(string unitchs, string unitche);
|
|
abstract public ReturnData[] GetDataBinary(int unitchs, int unitche);
|
|
|
|
abstract public bool SyncDate();
|
|
abstract public bool SetInit();
|
|
|
|
|
|
}
|
|
|
|
}
|