コード例 #1
0
ファイル: TabEpcScan.cs プロジェクト: onami/DL-770
        private void ScanEpcTagsButton_Click(object sender, EventArgs e)
        {
            scanGen2Timer.Enabled = !scanGen2Timer.Enabled;

            if (!scanGen2Timer.Enabled)
            {
                scanEpcTagsButton.Text = "Сканировать";
                collector.WriteSession(session);

                if (isRfidSessionSending == false)
                {
                    new Thread(new ThreadStart(this.SendSessions)).Start();
                }
            }
            else
            {
                epcTagsListView.Items.Clear();
                list.Clear();

                session = new TubesSession
                    {
                    sessionMode = TubesSession.Mode.Reading,
                    time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };

                scanEpcTagsButton.Text = "Остановить";
            }
        }
コード例 #2
0
ファイル: TagsCollector.cs プロジェクト: onami/DL-770
        /// <summary>
        /// Возвращает список неотправленных на сервер сессий чтения
        /// </summary>
        public List<TubesSession> GetUnshippedTags()
        {
            var sessions = new List<TubesSession>();
            var sessionCmd = new SQLiteCommand(@"SELECT * from reading_sessions where delivery_status <> " + (int)TubesSession.DeliveryStatus.Shipped, connection);

            using (var sessionReader = sessionCmd.ExecuteReader())
            {
                while (sessionReader.Read())
                {
                    var session = new TubesSession
                        {
                            id = sessionReader.GetInt32(0),
                            time = sessionReader.GetString(1),
                            location = sessionReader.GetString(2),
                            deliveryStatus = (TubesSession.DeliveryStatus)sessionReader.GetInt32(3),
                            readingStatus = (TubesSession.ReadingStatus)sessionReader.GetInt32(4),
                            sessionMode = (TubesSession.Mode)sessionReader.GetInt32(5)
                        };

                    var tagCmd = new SQLiteCommand(@"SELECT * from tubes where session_id = " + session.id, connection);
                    using (var tagReader = tagCmd.ExecuteReader())
                    {
                        while (tagReader.Read())
                        {
                            session.tags.Add(tagReader.GetString(1));
                        }
                    }
                    sessions.Add(session);
                }
            }
            return sessions;
        }
コード例 #3
0
ファイル: TagsCollector.cs プロジェクト: onami/DL-770
        public void WriteSession(TubesSession session)
        {
            if (session.tags.Count == 0)
                return;

            var transaction = connection.BeginTransaction();

            //Register a new session
            var cmd = new SQLiteCommand(@"
            INSERT INTO reading_sessions (time_marker,  location_id,  delivery_status,  reading_status,  reading_mode)
                                  VALUES(@time_marker, @location_id, @delivery_status, @reading_status, @reading_mode)", connection);
            cmd.Parameters.AddWithValue("@time_marker", session.time);
            cmd.Parameters.AddWithValue("@location_id", session.location);
            cmd.Parameters.AddWithValue("@delivery_status", session.deliveryStatus);
            cmd.Parameters.AddWithValue("@reading_status", session.readingStatus);
            cmd.Parameters.AddWithValue("@reading_mode", session.sessionMode);
            cmd.ExecuteNonQuery();

            //Look up the last session id
            cmd.CommandText = "SELECT last_insert_rowid()";
            var sessionId = Convert.ToInt32(cmd.ExecuteScalar());

            //Prepare for INSERT
            cmd = new SQLiteCommand("INSERT INTO tubes (session_id, tag) VALUES(@session_id, @tag)", connection);
            cmd.Parameters.AddWithValue("@session_id", sessionId);
            var tag_ = new SQLiteParameter("@tag");
            cmd.Parameters.Add(tag_);

            //Add new tags
            foreach (var tag in session.tags)
            {
                tag_.Value = tag;
                cmd.ExecuteNonQuery();
            }

            transaction.Commit();
        }