/// <summary>
 ///     Initializes a new instance of the <see cref="PutBarcodeRecognizeFromBodyRequest"/> class.
 /// </summary>
 /// <param name="name">The image file name.</param>
 /// <param name="readerParams">BarcodeReader object with parameters.</param>
 /// <param name="type"></param>
 /// <param name="storage">The storage name</param>
 /// <param name="folder">The image folder.</param>
 public PutBarcodeRecognizeFromBodyRequest(string name, ReaderParams readerParams, string type = null, string storage = null, string folder = null)
 {
     this.name         = name;
     this.readerParams = readerParams;
     this.type         = type;
     this.storage      = storage;
     this.folder       = folder;
 }
Esempio n. 2
0
        private void backgroundReader_DoWork(object sender, DoWorkEventArgs e)
        {
            ReaderParams param = (ReaderParams)e.Argument;
            SerialPort   port  = null;

            try
            {
                port = new SerialPort(param.Port, param.Baudrate, Parity.None, 8, StopBits.One);
                port.WriteTimeout = port.ReadTimeout = 250;
                port.Open();

                Modbus modbus = new Modbus(port, param.ModbusID);

                modbus.WriteSingleRegister(34, 123);
                modbus.WriteSingleRegister(35, (ushort)(param.Type == AnalogSensorType.TypeAnalog ? 0 : 1));

                while (!backgroundReader.CancellationPending)
                {
                    try
                    {
                        Modbus.READ_INPUT_REGS_RESP resp = modbus.ReadInputRegisters(0, 6);

                        float val = 0.0f;
                        if (param.Type == AnalogSensorType.TypeAnalog)
                        {
                            val = resp.GetInpRegsFLOAT(2);
                        }
                        else
                        {
                            val = resp.GetInpRegsFLOAT(0);
                        }

                        float curr = resp.GetInpRegsFLOAT(4) * 1000;

                        Invoke(new Action <string>(a => lbValue.Text   = a), string.Format("{0:0.00}", val));
                        Invoke(new Action <string>(a => lbCurrent.Text = a), ((int)(curr)).ToString());
                        connectStatus = ConnectionStatus.ConnectionOn;

                        Thread.Sleep(400);
                    }
                    catch (TimeoutException)
                    {
                        //выходим

                        /*e.Result = new ReaderResult()
                         * {
                         *  Status = ReaderResult.ReaderStatus.ReaderError,
                         *  Message = currentTranslation.modbusNoAnswerError
                         * };
                         *
                         * return;*/

                        Invoke(new Action <string>(a => lbValue.Text   = a), string.Format("{0:0.00}", 0.0f));
                        Invoke(new Action <string>(a => lbCurrent.Text = a), "0");
                        connectStatus = ConnectionStatus.ConnectionOff;
                    }
                    catch (Modbus.ModbusException ex)
                    {
                        string message = ex.Message;

                        switch (ex.Reason)
                        {
                        case Modbus.ModbusException.ExceptionReason.IllegalAddrException:
                        case Modbus.ModbusException.ExceptionReason.IllegalFuncException:
                        case Modbus.ModbusException.ExceptionReason.IllegalValueException:
                            message = currentTranslation.modbusIllegalError;
                            break;

                        case Modbus.ModbusException.ExceptionReason.CRCException:
                            message = currentTranslation.modbusCRCError;
                            break;

                        case Modbus.ModbusException.ExceptionReason.IDException:
                            message = currentTranslation.modbusHostIDError;
                            break;

                        case Modbus.ModbusException.ExceptionReason.LengthException:
                            message = currentTranslation.modbusBufferLenError;
                            break;

                        case Modbus.ModbusException.ExceptionReason.UnknownException:
                            message = currentTranslation.modbusUnknownError;
                            break;
                        }

                        e.Result = new ReaderResult()
                        {
                            Status  = ReaderResult.ReaderStatus.ReaderError,
                            Message = message
                        };
                        return;
                    }
                }

                e.Result = new ReaderResult()
                {
                    Status = ReaderResult.ReaderStatus.ReaderCancel
                };
                return;
            }
            catch (Exception ex)
            {
                e.Result = new ReaderResult()
                {
                    Status  = ReaderResult.ReaderStatus.ReaderError,
                    Message = ex.Message
                };
                return;
            }
            finally
            {
                if (port != null)
                {
                    if (port.IsOpen)
                    {
                        port.Close();
                    }
                }
            }
        }
Esempio n. 3
0
        public async Task <YoutubeDto> Search(string query)
        {
            var youtubeConfigs = _config.GetSection("YoutubeConfigs");
            var baseUrl        = youtubeConfigs["baseUrl"].ToString();
            var key            = youtubeConfigs["key"].ToString();

            var readerParams = new ReaderParams
            {
                urlParams = new Dictionary <string, string>
                {
                    { "part", "snippet" },
                    { "q", query },
                    { "key", key }
                }
            };

            var youtubeResponse = await _reader.Get <YoutubeResponse>(baseUrl + "search?", readerParams);

            var youtubeDto = new YoutubeDto
            {
                NextPageToken = youtubeResponse.nextPageToken,
            };

            foreach (var item in youtubeResponse.items)
            {
                var ytModel = new YoutubeModel();

                ytModel.Title        = item.snippet.title;
                ytModel.Description  = item.snippet.description;
                ytModel.PublishedAt  = item.snippet.publishedAt;
                ytModel.IsChannel    = false;
                ytModel.ChannelName  = item.snippet.channelTitle;
                ytModel.ThumbnailUrl = item.snippet.thumbnails.medium.url;

                if (item.id.kind == "youtube#channel")
                {
                    ytModel.IsChannel = true;
                    ytModel.youtubeId = item.id.channelId;
                }
                else if (item.id.kind == "youtube#video")
                {
                    ytModel.youtubeId = item.id.videoId;
                }
                else
                {
                    ytModel.youtubeId = item.id.playlistId;
                }

                if (_youtubeRepository.Exists(x => x.youtubeId == ytModel.youtubeId))
                {
                    var res = _youtubeRepository.ListBy(x => x.youtubeId == ytModel.youtubeId).Result.FirstOrDefault();
                    ytModel.Id = res.Id;
                    await _youtubeRepository.Update(ytModel);
                }
                else
                {
                    await _youtubeRepository.Create(ytModel);
                }

                youtubeDto.Items.Add(ytModel);
            }

            return(youtubeDto);
        }