Blame view

SunVoteARSPPT/SDK/ARS/ARSRushAnswer.cs 3.8 KB
20c0108c   wutaian   xx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
  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
      }
  }