示例#1
0
        void writeState(ServerStateEventParam param)
        {
            OpCodeS code = param.State;

            //set label status
            uiServerState.Text = $"[{param.ActionId}] {code} {param.ClientCount}.{param.ReadyCount}";
            uiExClient.Text    = (code == OpCodeS.ExReady || code == OpCodeS.ExAction) ? param.ExCid : "-";

            if (code == OpCodeS.OffLine)
            {
                uiServerState.ForeColor = Color.Gray;
            }
            else if (code == OpCodeS.Idle)
            {
                uiServerState.ForeColor = Color.Green;
            }
            else if (code == OpCodeS.Ready)
            {
                uiServerState.ForeColor = Color.DodgerBlue;
            }
            else if (code == OpCodeS.Action)
            {
                uiServerState.ForeColor = Color.Coral;
            }
            else if (code == OpCodeS.Ready)
            {
                uiServerState.ForeColor = Color.RosyBrown;
            }
            else
            {
                uiServerState.ForeColor = Color.Black;
            }

            uiServerTools.Refresh();
        }
示例#2
0
 public void WriteState(ServerStateEventParam param)
 {
     if (InvokeRequired)
     {
         Invoke((Action <ServerStateEventParam>)writeState, param);
     }
     else
     {
         writeState(param);
     }
 }
示例#3
0
        void call(string cmd)
        {
            var msgs = splitMsg(query(cmd));

            foreach (var msg in msgs)
            {
                if (msg[0] == '`')
                {
                    try { _stateReporter?.Invoke(ServerStateEventParam.Parse(msg)); }
                    catch { }
                }
                else
                {
                    report(msg);
                }
            }
        }