예제 #1
0
        public override void Open()
        {
            if (string.IsNullOrWhiteSpace(_oposDeviceName))
            {
                try
                {
                    _oposDeviceName = GetConfigurationProperty("OposDeviceName");
                    _oposDeviceName.Trim();
                }
                catch
                {
                    _oposDeviceName = "";
                }
            }

            if (string.IsNullOrWhiteSpace(_oposDeviceName))
            {
                string strMessage = "OposDeviceName is not configured on " + DevicePath + ".";
                throw new Microsoft.PointOfService.PosControlException(strMessage, ErrorCode.NoExist);
            }

            if (_cco == null)
            {
                try
                {
                    // CCO object CreateInstance
                    _cco = new OpenPOS.Devices.OPOSElectronicValueRW();

                    // Register event handler
                    _cco.DataEvent           += new _IOPOSElectronicValueRWEvents_DataEventEventHandler(_cco_DataEvent);
                    _cco.DirectIOEvent       += new _IOPOSElectronicValueRWEvents_DirectIOEventEventHandler(_cco_DirectIOEvent);
                    _cco.ErrorEvent          += new _IOPOSElectronicValueRWEvents_ErrorEventEventHandler(_cco_ErrorEvent);
                    _cco.OutputCompleteEvent += new _IOPOSElectronicValueRWEvents_OutputCompleteEventEventHandler(_cco_OutputCompleteEvent);
                    _cco.StatusUpdateEvent   += new _IOPOSElectronicValueRWEvents_StatusUpdateEventEventHandler(_cco_StatusUpdateEvent);
                    _cco.TransitionEvent     += new _IOPOSElectronicValueRWEvents_TransitionEventEventHandler(_cco_TransitionEvent);
                }
                catch
                {
                    string strMessage = "Can not create Common ControlObject on " + DevicePath + ".";
                    throw new Microsoft.PointOfService.PosControlException(strMessage, ErrorCode.Failure);
                }
            }

            VerifyResult(_cco.Open(_oposDeviceName));
        }