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
}
}