ARSRushAnswer.cs 3.8 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SunVoteARSPPT
{
    public class ARSRushAnswer : IResponse
    {
        /// <summary>
        /// 选择类
        /// </summary>
        public SunVote.RushAnswer RushAnswer = null;
        /// <summary>
        /// 构造函数
        /// </summary>
        public ARSRushAnswer()
        {
            RushAnswer = new SunVote.RushAnswer();
            //事件绑定
            RushAnswer.KeyStatus += new SunVote.IRushAnswerEvents_KeyStatusEventHandler(RushAnswer_KeyStatus);

            //杨斌 2015-01-09
            RushAnswer.KeyStatusSN += new SunVote.IRushAnswerEvents_KeyStatusSNEventHandler(RushAnswer_KeyStatusSN);

            //PVS事件。杨斌 2015-03-17
            FrmPvsServer.GetFrmPvs().OnKeyVote += myPVS_KeyVote;

            TagSet = new TagSet();
        }

        void RushAnswer_KeyStatusSN(string BaseTag, string KeySN, string KeyValue, double KeyTime)
        {
            ResponsePar ObjResponseValue = new ResponsePar();
            ObjResponseValue.BaseTag = BaseTag;
            ObjResponseValue.KeyID = KeySN;
            ObjResponseValue.KeyValue = KeyValue;
            ObjResponseValue.Speed = KeyTime;
            if (ResponseEventHander != null)
                ResponseEventHander(ObjResponseValue);
        }

        void myPVS_KeyVote(int ID, int iMode, string sInfo)
        {
            string KeyValue = "";
            double KeyTime = 0;

            ResponsePar ObjResponseValue = new ResponsePar();
            //ObjResponseValue.BaseTag = BaseTag;
            ObjResponseValue.KeyID = ID.ToString();

            string[] ary = sInfo.Split(new char[] { ',' });
            KeyValue = ary[0];
            if (ary.Length >= 2)
                double.TryParse(ary[1], out KeyTime);
            ObjResponseValue.KeyValue = KeyValue;
            ObjResponseValue.Speed = KeyTime;

            if (ResponseEventHander != null)
                ResponseEventHander(ObjResponseValue);
        }

        /// <summary>
        /// 键盘状态事件
        /// </summary>
        /// <param name="BaseTag"></param>
        /// <param name="KeyID"></param>
        /// <param name="KeyValue"></param>
        /// <param name="KeyTime"></param>
        void RushAnswer_KeyStatus(string BaseTag, int KeyID, string KeyValue, double KeyTime)
        {
            RushAnswer_KeyStatusSN(BaseTag, KeyID.ToString(), KeyValue, KeyTime);
        }

        #region IResponse 成员
        public event ResponseEventHander ResponseEventHander;
        public TagSet TagSet { get; set; }
        /// <summary>
        /// 反馈类型
        /// </summary>
        public ResponseType ResponseType { get; set; }
        /// <summary>
        /// 基站连接
        /// </summary>
        public SunVote.BaseConnection BaseConnection { get; set; }

        /// <summary>
        /// 启用
        /// </summary>
        public void Start()
        {
            if (GlobalInfo.GetSdkType() == 0)
            {
                //设置参数
                RushAnswer.BaseConnection = (SunVote.BaseConnection)BaseConnection;
                RushAnswer.Mode = 0;
                RushAnswer.StartMode = 1;
                RushAnswer.Start();
            }
            else if (GlobalInfo.GetSdkType() == 1)
            {
                int pvsVoteMode = 6;
                string pvsVoteSetting = "6";
                FrmPvsServer.GetFrmPvs().VoteStart(pvsVoteMode, pvsVoteSetting);
            }
        }
        /// <summary>
        /// 停止
        /// </summary>
        public void Stop()
        {            
            if (GlobalInfo.GetSdkType() == 0)
                RushAnswer.Stop();
            else if (GlobalInfo.GetSdkType() == 1)
                FrmPvsServer.GetFrmPvs().VoteStop();
        }

        #endregion
    }
}