using System; using System.Collections.Generic; using System.Linq; using System.Text; using GeneralLib; namespace SunVoteARSPPT { public class ARSScore : IResponse { /// /// 数字评分类 /// public SunVote.Number Number = null; /// /// 构造函数 /// public ARSScore() { Number = new SunVote.Number(); Number.KeyStatus += new SunVote.INumberEvents_KeyStatusEventHandler(Number_KeyStatus); //杨斌 2015-01-09 Number.KeyStatusSN += new SunVote.INumberEvents_KeyStatusSNEventHandler(Number_KeyStatusSN); //PVS事件。杨斌 2015-03-17 FrmPvsServer.GetFrmPvs().OnKeyVote += myPVS_KeyVote; TagSet = new TagSet(); } void Number_KeyStatusSN(string BaseTag, string KeySN, string KeyValue, double KeyTime) { KeyValue = ConvertOper.DoNumberString(KeyValue);//杨斌 2013-08-29 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 = ConvertOper.DoNumberString(sInfo); ResponsePar ObjResponseValue = new ResponsePar(); //ObjResponseValue.BaseTag = BaseTag; ObjResponseValue.KeyID = ID.ToString(); ObjResponseValue.KeyValue = KeyValue; ObjResponseValue.Speed = 0; if (ResponseEventHander != null) ResponseEventHander(ObjResponseValue); } /// /// 键盘状态 /// /// /// /// /// void Number_KeyStatus(string BaseTag, int KeyID, string KeyValue, double KeyTime) { Number_KeyStatusSN(BaseTag, KeyID.ToString(), KeyValue, KeyTime); } #region IResponse 成员 public event ResponseEventHander ResponseEventHander; /// /// 修改:杨斌 2012-06-27 /// public void Start() { //杨斌 2015-12-10 int iModifyMode = (TagSet.GetValue(TagKey.KeypadPara_ModifyMode).ToInt == 0 ? 1 : 0); if (GlobalInfo.GetSdkType() == 0) { Number.BaseConnection = BaseConnection; //修改模式 0:不允许修改,1:允许修改 Number.ModifyMode = iModifyMode;//杨斌 2015-12-10 //保密模式。杨斌 2016-07-21 Number.SecrecyMode = TagSet.GetValue(TagKey.KeypadPara_SecrecyMode).ToInt; //默认值 Number.Default = 0; //数值模式 0:不限定规则,1:整数评分 1-100 Number.Mode = 0; int decCount = 0;//小数位 if (ResponseType == ResponseType.Score) { string lowRange = TagSet.GetValue(TagKey.Score_LowRange).Value; string highRange = TagSet.GetValue(TagKey.Score_HighRange).Value; //最小值 Number.Min = (lowRange.Trim() == "") ? 0 : (Convert.ToInt32(lowRange)); //最大值 Number.Max = (highRange.Trim() == "") ? 99999 : (Convert.ToInt32(highRange)); decCount = TagSet.GetValue(TagKey.Score_DecimalFormat).ToInt; } if (ResponseType == ResponseType.Poll) { //最小值 Number.Min = 0; //最大值 Number.Max = 999999; } if (ResponseType == ResponseType.Number)//杨斌 2012-03-14 { string lowRange = TagSet.GetValue(TagKey.Number_LowRange).Value; string highRange = TagSet.GetValue(TagKey.Number_HighRange).Value; //最小值 Number.Min = (lowRange.Trim() == "") ? 0 : (Convert.ToInt32(lowRange)); //最大值 Number.Max = (highRange.Trim() == "") ? 99999999 : (Convert.ToInt32(highRange)); decCount = TagSet.GetValue(TagKey.Number_DecimalFormat).ToInt; } if (ResponseType == ResponseType.SignIn) { Number.Min = 0; Number.Max = 999999999; } ////杨斌 2012-06-27 M52评分上下限,只支持0-100之内的整数评分 //if ((Number.Min >= 0) && (Number.Max <= 100) && (decCount == 0)) // Number.Mode = 1; //启动模式 Number.StartMode = 1; Number.Start(); } else if (GlobalInfo.GetSdkType() == 1) { string lowRange = ""; string highRange = ""; double min = 0; double max = 0; int dec = 0; int pvsVoteMode = 0; string pvsVoteSetting = ""; if (ResponseType == ResponseType.Score) { lowRange = TagSet.GetValue(TagKey.Score_LowRange).Value; highRange = TagSet.GetValue(TagKey.Score_HighRange).Value; //最小值 min = (lowRange.Trim() == "") ? 0 : (Convert.ToInt32(lowRange)); //最大值 max = (highRange.Trim() == "") ? 0 : (Convert.ToInt32(highRange)); dec = TagSet.GetValue(TagKey.Score_DecimalFormat).ToInt; int aMax = 255; if (min > aMax) min = aMax; if (max > aMax) max = aMax; if (dec > 9) dec = 9; pvsVoteMode = 6; pvsVoteSetting = 1 + "," + min + "," + max + "," + dec; } if (ResponseType == ResponseType.Poll) { min = 0; max = 0; dec = 0; pvsVoteMode = 6; pvsVoteSetting = 1 + "," + min + "," + max + "," + dec; } if (ResponseType == ResponseType.Number) { lowRange = TagSet.GetValue(TagKey.Number_LowRange).Value; highRange = TagSet.GetValue(TagKey.Number_HighRange).Value; //最小值 min = (lowRange.Trim() == "") ? 0 : (Convert.ToInt32(lowRange)); //最大值 max = (highRange.Trim() == "") ? 0 : (Convert.ToInt32(highRange)); min = 0; max = 0; dec = 9; dec = TagSet.GetValue(TagKey.Number_DecimalFormat).ToInt; pvsVoteMode = 6; pvsVoteSetting = 1 + "," + min + "," + max + "," + dec; } if (ResponseType == ResponseType.SignIn) { min = 0; max = 0; dec = 0; pvsVoteMode = 6; pvsVoteSetting = 1 + "," + min + "," + max + "," + dec; } ////杨斌 2015-05-13 //FrmPvsServer.GetFrmPvs().VoteStart(15, "0"); //FrmPvsServer.GetFrmPvs().VoteStop(); FrmPvsServer.GetFrmPvs().VoteStart(pvsVoteMode, pvsVoteSetting, iModifyMode); } } public void Stop() { if (GlobalInfo.GetSdkType() == 0) { Number.Stop(); } else if (GlobalInfo.GetSdkType() == 1) { //for (int i = 1; i <= 3; i++) { FrmPvsServer.GetFrmPvs().VoteStop(); } } } /// /// 基站连接类 /// public SunVote.BaseConnection BaseConnection { get; set; } /// /// 幻灯片Tag值 /// public TagSet TagSet { get; set; } /// /// 反馈类型 /// public ResponseType ResponseType { get; set; } #endregion } }