| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | using System;using System.Collections.Generic;using System.Threading;using System.Reflection;using System.Runtime.InteropServices;using System.Net;using System.Net.Sockets;using System.Diagnostics;using Wayne.FDCPOSLibrary;using Wayne.FDCPOSInterface;namespace Wayne.OptInterface{    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]    public interface IOptInterfaceServer    {        [DispId(1)]        void Add(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, string overallResult);        [DispId(2)]        void Remove(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, string overallResult);        [DispId(3)]        void Write(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, string overallResult);        [DispId(30)]        void DeviceStateChange(string deviceType, int iOptId, int state, int substate);        [DispId(31)]        void Read(string deviceType, int iOptId, byte[] message);    }    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]    [Guid("7535B28E-35FA-41ae-9EFD-B376CDDC988C")]    public interface IOptInterfaceServerEvents    {        [DispId(1)]        void OnAddSerialPortReq(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, int port, int baudRate, int dataBit, int stopBit, int parity);        [DispId(2)]        void OnAddTCPReq(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, string address, int port);        [DispId(3)]        void OnRemoveReq(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId);        [DispId(4)]        void OnWriteReq(string workstationID, string applicationSender, int requestId, string deviceType, int iOptId, byte[] message);    }    [Guid("27D28888-3354-4004-8620-BF328BC1BB65")]    [ClassInterface(ClassInterfaceType.None)]    [ComVisible(true)]    [ProgId("OptInterface.OptInterfaceServer")]    [ComSourceInterfaces(typeof(IOptInterfaceServerEvents))]    public class OptInterfaceServer : IOptInterfaceServer    {                                                private FDCPOSInterfaceServer fdcposInterface;        public OptInterfaceServer(FDCPOSInterfaceServer _fdcposInterface)        {            fdcposInterface = _fdcposInterface;        }        public delegate void OnAddSerialPortReqTarget(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, int port, int baudRate, int dataBit, int stopBit, int parity);        public delegate void OnAddTCPReqTarget(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, string address, int port);        public delegate void OnRemoveReqTarget(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId);        public delegate void OnWriteReqTarget(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, byte[] message);        public event OnAddSerialPortReqTarget OnAddSerialPortReq;        public event OnAddTCPReqTarget OnAddTCPReq;        public event OnRemoveReqTarget OnRemoveReq;        public event OnWriteReqTarget OnWriteReq;        #region ServiceRequests        public void AddSerialPortReq(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, int port, int baudRate, int dataBit, int stopBit, int parity)        {                        if (OnAddSerialPortReq != null)            {                OnAddSerialPortReq(workstationID, applicationSender, requestID, deviceType, deviceId, port, baudRate, dataBit, stopBit, parity);            }                    }        public void AddTCPReq(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, string address, int port)        {                        if (OnAddTCPReq != null)            {                OnAddTCPReq(workstationID, applicationSender, requestID, deviceType, deviceId, address, port);            }                    }        public void RemoveReq(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId)        {                        if (OnRemoveReq != null)            {                OnRemoveReq(workstationID, applicationSender, requestID, deviceType, deviceId);            }                    }        public void WriteReq(string workstationID, string applicationSender, int requestID, string deviceType, int deviceId, byte[] message)        {                        if (OnWriteReq != null)            {                OnWriteReq(workstationID, applicationSender, requestID, deviceType, deviceId, message);            }                    }        #endregion        #region ServiceResponses        public void Add(string workstationID, string applicationSender, int requestId, string deviceType, int deviceId, string overallResult)        {            fdcposInterface.messages.OptAdd(workstationID, applicationSender, requestId, deviceType, deviceId, overallResult);        }        public void Remove(string workstationID, string applicationSender, int requestId, string deviceType, int deviceId, string overallResult)        {            fdcposInterface.messages.OptRemove(workstationID, applicationSender, requestId, deviceType, deviceId, overallResult);        }        public void Write(string workstationID, string applicationSender, int requestId, string deviceType, int deviceId, string overallResult)        {            fdcposInterface.messages.OptWrite(workstationID, applicationSender, requestId, deviceType, deviceId, overallResult);        }        #endregion        #region FDCMessages        public void DeviceStateChange(string deviceType, int deviceId, int logicalState, int logicalSubState)        {            LogicalDeviceState logicalDeviceState = (logicalState == 1) ? LogicalDeviceState.FDC_READY : LogicalDeviceState.FDC_OFFLINE;            fdcposInterface.messages.DeviceStateChange(deviceType, deviceId, logicalDeviceState, logicalDeviceState, "", "", "", 0, 0, 0, 0);        }        public void Read(string deviceType, int deviceId, byte[] message)        {            fdcposInterface.messages.OptRead(deviceType, deviceId, message);        }        #endregion    }}
 |