using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GeneralLib;
namespace SunVoteARSPPT
{
public class ARSElection : IResponse
{
///
/// 数字评分类
///
public SunVote.Election Elec = null;
///
/// 构造函数
///
public ARSElection()
{
Elec = new SunVote.Election();
Elec.KeyStatus += Elec_KeyStatus;
Elec.KeyStatusSN += Elec_KeyStatusSN;
//PVS事件。杨斌 2015-03-17
FrmPvsServer.GetFrmPvs().OnKeyVote += myPVS_KeyVote;
TagSet = new TagSet();
}
void Elec_KeyStatusSN(string BaseTag, string KeySN, int CommitOK, string KeyValue)
{
//KeyValue = ConvertOper.DoNumberString(KeyValue);
ResponsePar ObjResponseValue = new ResponsePar();
ObjResponseValue.BaseTag = BaseTag;
ObjResponseValue.KeyID = KeySN;
ObjResponseValue.KeyValue = KeyValue;
ObjResponseValue.Speed = 0;
if (ResponseEventHander != null)
ResponseEventHander(ObjResponseValue);
}
void Elec_KeyStatus(string BaseTag, int KeyID, int CommitOK, string KeyValue)
{
Elec_KeyStatusSN(BaseTag, KeyID.ToString(), CommitOK, KeyValue);
}
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);
}
#region IResponse 成员
public event ResponseEventHander ResponseEventHander;
///
/// 修改:杨斌 2012-06-27
///
public void Start()
{
int iModifyMode = (TagSet.GetValue(TagKey.KeypadPara_ModifyMode).ToInt == 0 ? 1 : 0);
if (GlobalInfo.GetSdkType() == 0)
{
Elec.BaseConnection = BaseConnection;
//修改模式 0:不允许修改,1:允许修改
Elec.ModifyMode = iModifyMode;
//保密模式
Elec.SecrecyMode = TagSet.GetValue(TagKey.KeypadPara_SecrecyMode).ToInt;
//UI模式,数字选举
Elec.UIMode = 4;
if (ResponseType == ResponseType.Poll)
{
//候选人个数
//Elec.NumberOptions = GlobalInfo.response.CandidateInfoList.Count;
//if ((Elec.NumberOptions < 1) || (Elec.NumberOptions > 200))
Elec.NumberOptions = 200;
//可选个数
Elec.Selects = TagSet.GetValue(TagKey.Poll_EffectiveVotes).ToInt;
}
//启动模式
Elec.StartMode = 1;
Elec.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)
{
Elec.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
}
}