コード例 #1
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void NavigateToClipboardUri()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.NavigateToClipboardUri,
     });
 }
コード例 #2
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void OpenAbout()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.OpenAbout,
     });
 }
コード例 #3
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void OpenSettings()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.OpenSettings,
     });
 }
コード例 #4
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void OpenDonate()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.OpenDonate,
     });
 }
コード例 #5
0
ファイル: Iec61850State.cs プロジェクト: ttgzs/iedexplorer
        public void Send(NodeBase[] Data, CommAddress Address, ActionRequested Action)
        {
            WriteQueueElement el = new WriteQueueElement(Data, Address, Action);

            SendQueue.Enqueue(el);
            sendQueueWritten.Set();
        }
コード例 #6
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void OpenMiniView()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.OpenMiniView,
     });
 }
コード例 #7
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void OpenNowPlaying()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.OpenNowPlaying,
     });
 }
コード例 #8
0
ファイル: WebAgent.cs プロジェクト: bezzad/XpoMusic
 public void PinToStart()
 {
     ActionRequested?.Invoke(this, new ActionRequestedEventArgs
     {
         Action = Model.Action.PinToStart,
     });
 }
コード例 #9
0
        private void refreshFromPortalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var item = tvCodeItems.SelectedNode.Tag;

            if (item == null)
            {
                return;
            }

            ActionRequested?.Invoke(this, new RefreshContentEventArgs(item));
        }
コード例 #10
0
        private void updateToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var item = tvCodeItems.SelectedNode.Tag;

            if (item == null)
            {
                return;
            }

            var portalItem = item as EditablePortalItem;
            var epi        = portalItem ?? ((CodeItem)item).Parent;

            ActionRequested?.Invoke(this, new UpdatePendingChangesEventArgs(new List <EditablePortalItem> {
                epi
            }));
        }
コード例 #11
0
        private void ContinuousRecognitionSessionOnResultGenerated(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args)
        {
            var result = args.Result;

            if (result.Status == SpeechRecognitionResultStatus.Success &&
                result.Confidence == SpeechRecognitionConfidence.High)
            {
                var tags       = result.Constraint.Tag.Split(';');
                var actionName = tags[new Random().Next(tags.Length)];
                var action     = TinBotData.ActionsLib[actionName];

                if (action != null)
                {
                    ActionRequested?.Invoke(this, action);
                }
            }
            else
            {
                ActionRequested?.Invoke(this, new SavedAction("LPulseRed"));
            }
        }
コード例 #12
0
        public void SendCommand(NodeBase data, CommandParams cPar, ActionRequested how)
        {
            if (data != null)
            {
                Logger.getLogger().LogInfo("Sending command " + data.IecAddress);
                NodeData d = (NodeData)data.Parent;
                if (d != null)
                {
                    NodeBase b, c;

                    List <NodeData> ndar = new List <NodeData>();
                    //char *nameo[] = {"$Oper$ctlVal", "$Oper$origin$orCat", "$Oper$origin$orIdent", "$Oper$ctlNum", "$Oper$T", "$Oper$Test", "$Oper$Check"};
                    if ((b = d.FindChildNode("ctlVal")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = cPar.ctlVal;
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("origin")) != null)
                    {
                        if (how == ActionRequested.WriteAsStructure)
                        {
                            NodeData n = new NodeData(b.Name);
                            n.DataType  = scsm_MMS_TypeEnum.structure;
                            n.DataValue = 2;
                            ndar.Add(n);
                            if ((c = b.FindChildNode("orCat")) != null)
                            {
                                NodeData n2 = new NodeData(b.Name + "$" + c.Name);
                                n2.DataType  = ((NodeData)c).DataType;
                                n2.DataValue = (long)cPar.orCat;
                                n.AddChildNode(n2);
                            }
                            if ((c = b.FindChildNode("orIdent")) != null)
                            {
                                NodeData n2 = new NodeData(b.Name + "$" + c.Name);
                                n2.DataType = ((NodeData)c).DataType;
                                byte[]  bytes = new byte[cPar.orIdent.Length];
                                int     tmp1, tmp2; bool tmp3;
                                Encoder ascii = (new ASCIIEncoding()).GetEncoder();
                                ascii.Convert(cPar.orIdent.ToCharArray(), 0, cPar.orIdent.Length, bytes, 0, cPar.orIdent.Length, true, out tmp1, out tmp2, out tmp3);
                                n2.DataValue = bytes;
                                n.AddChildNode(n2);
                            }
                        }
                        else
                        {
                            if ((c = b.FindChildNode("orCat")) != null)
                            {
                                NodeData n = new NodeData(b.Name + "$" + c.Name);
                                n.DataType  = ((NodeData)c).DataType;
                                n.DataValue = (long)cPar.orCat;
                                ndar.Add(n);
                            }
                            if ((c = b.FindChildNode("orIdent")) != null)
                            {
                                NodeData n = new NodeData(b.Name + "$" + c.Name);
                                n.DataType = ((NodeData)c).DataType;
                                byte[]  bytes = new byte[cPar.orIdent.Length];
                                int     tmp1, tmp2; bool tmp3;
                                Encoder ascii = (new ASCIIEncoding()).GetEncoder();
                                ascii.Convert(cPar.orIdent.ToCharArray(), 0, cPar.orIdent.Length, bytes, 0, cPar.orIdent.Length, true, out tmp1, out tmp2, out tmp3);
                                n.DataValue = bytes;
                                ndar.Add(n);
                            }
                        }
                    }
                    if ((b = d.FindChildNode("ctlNum")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType = ((NodeData)b).DataType;
                        if (d.Name == "SBO" || d.Name == "SBOw")
                        {
                            n.DataValue = m_ctlNum;
                        }
                        else
                        {
                            n.DataValue = m_ctlNum++;
                        }
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("T")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType = ((NodeData)b).DataType;
                        byte[] btm = new byte[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
                        n.DataValue = btm;

                        if (cPar.T != DateTime.MinValue)
                        {
                            if (d.Name == "Oper" && cPar.SBOdiffTime && cPar.SBOrun)
                            {
                                cPar.T.AddMilliseconds(cPar.SBOtimeout);
                            }
                            Scsm_MMS.ConvertToUtcTime(cPar.T, btm);
                        }
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("Test")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = cPar.Test;
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("Check")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType = ((NodeData)b).DataType;
                        byte sync  = 0x80;
                        byte intl  = 0x40;
                        byte check = 0;
                        if (cPar.synchroCheck)
                        {
                            check |= sync;
                        }
                        if (cPar.interlockCheck)
                        {
                            check |= intl;
                        }
                        n.DataValue = new byte[] { check };
                        n.DataParam = ((NodeData)b).DataParam;
                        ndar.Add(n);
                    }
                    iecs.Send(ndar.ToArray(), d.CommAddress, how);
                }
                else
                {
                    Logger.getLogger().LogError("Basic structure for a command not found at " + data.IecAddress + "!");
                }
            }
        }
コード例 #13
0
 private void CollectionMenuButton_Click(object sender, RoutedEventArgs e)
 {
     ActionRequested?.Invoke(NavigationView.Collection);
 }
コード例 #14
0
 private void llApplyChanges_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     ActionRequested?.Invoke(this, new UpdatePendingChangesEventArgs(portalItems.Where(p => p.HasPendingChanges)));
 }
コード例 #15
0
        private void searchButton_Click(object sender, RoutedEventArgs e)
        {
            ActionRequested?.Invoke(NavigationView.Search);

            searchButton.IsChecked = false;
        }
コード例 #16
0
 private void PlaylistsMenuButton_Click(object sender, RoutedEventArgs e)
 {
     ActionRequested?.Invoke(NavigationView.Playlists);
 }
コード例 #17
0
ファイル: IedTreeView.cs プロジェクト: ttgzs/iedexplorer
        async void DoSendCommandClick(object sender, ActionRequested how)
        {
            NodeBase      data = (NodeBase)(sender as ToolStripItem).Tag;
            CommandParams cPar = ctrl.PrepareSendCommand(data);

            if (cPar != null)
            {
                CommandDialog cdlg = new CommandDialog(cPar);
                if (cdlg.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
                {
                    if (cPar.SBOrun)
                    {
                        string   sName = (cPar.CommandFlowFlag == CommandCtrlModel.Select_Before_Operate_With_Enhanced_Security) ? "SBOw" : "SBO";
                        NodeData d = (NodeData)data.Parent;
                        NodeData op = null, sel = null;
                        if (d != null)
                        {
                            if (d.Name == "SBOw" || d.Name == "SBO")
                            {
                                sName = "Oper";
                                sel   = (NodeData)data;
                            }
                            else
                            {
                                op = (NodeData)data;
                            }
                            NodeBase dd = d.Parent;
                            if (dd != null)
                            {
                                NodeData d2 = (NodeData)dd.FindChildNode(sName);
                                if (d2 != null)
                                {
                                    NodeData d3 = (NodeData)d2.FindChildNode("ctlVal");
                                    if (d3 != null)
                                    {
                                        if (op == null)
                                        {
                                            op = d3;
                                        }
                                        else
                                        {
                                            sel = d3;
                                        }
                                        ctrl.SendCommand(sel, cPar, how);
                                        await PutTaskDelay(cPar.SBOtimeout);

                                        ctrl.SendCommand(op, cPar, how);
                                    }
                                    else
                                    {
                                        Logger.getLogger().LogWarning("Cannot send SBO command sequence, ctlVal not found in " + d2.IecAddress);
                                    }
                                }
                                else
                                {
                                    Logger.getLogger().LogWarning("Cannot send SBO command sequence, " + sName + " not found in " + dd.IecAddress);
                                }
                            }
                            else
                            {
                                Logger.getLogger().LogWarning("Cannot send SBO command sequence, null parent of " + d.IecAddress);
                            }
                        }
                        else
                        {
                            Logger.getLogger().LogWarning("Cannot send SBO command sequence, null parent of " + data.IecAddress);
                        }
                    }
                    else
                    {
                        ctrl.SendCommand(data, cPar, how);
                    }
                }
            }
        }
コード例 #18
0
 public WriteQueueElement(NodeBase[] Data, CommAddress Address, ActionRequested Action)
 {
     this.Data    = Data;
     this.Address = Address;
     this.Action  = Action;
 }
コード例 #19
0
        private void cmsTreeview_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            if (e.ClickedItem == tsmiRefreshFromPortal)
            {
                var item = tvCodeItems.SelectedNode.Tag;

                if (item == null)
                {
                    return;
                }

                ActionRequested?.Invoke(this, new RefreshContentEventArgs(item));
            }
            else if (e.ClickedItem == tsmiUpdate)
            {
                var item = tvCodeItems.SelectedNode.Tag;

                if (item == null)
                {
                    return;
                }

                var portalItem = item as EditablePortalItem;
                var epi        = portalItem ?? ((CodeItem)item).Parent;

                ActionRequested?.Invoke(this, new UpdatePendingChangesEventArgs(new List <EditablePortalItem> {
                    epi
                }));
            }
            else if (e.ClickedItem == tsmiCreateNewItem)
            {
                var node = tvCodeItems.SelectedNode;
                while (node.Parent != null)
                {
                    node = node.Parent;
                }

                if (tvCodeItems.SelectedNode.Name == "WebTemplate")
                {
                    var dialog = new NewWebTemplateForm(Service, node.Tag as EntityReference);
                    if (dialog.ShowDialog(this) == DialogResult.OK)
                    {
                        var newTemplate = new WebTemplate(dialog.Template);
                        newTemplate.Code.StateChanged += JavaScript_StateChanged;

                        var newNode = new TreeNode(newTemplate.Name)
                        {
                            Tag = newTemplate.Code
                        };
                        newTemplate.Code.Node = newNode;

                        tvCodeItems.SelectedNode.Nodes.Add(newNode);
                        tvCodeItems.Sort();

                        ApplyCounting(node, "WebTemplate");
                    }
                }
                else if (tvCodeItems.SelectedNode.Name == "Html")
                {
                    var dialog = new NewContentSnippetForm(756150001, Service, node.Tag as EntityReference, Languages);
                    if (dialog.ShowDialog(this) == DialogResult.OK)
                    {
                        var newContentSnippet = new ContentSnippet(dialog.Template);
                        newContentSnippet.Code.StateChanged += JavaScript_StateChanged;

                        var newNode = new TreeNode(newContentSnippet.Name)
                        {
                            Tag = newContentSnippet.Code
                        };
                        newContentSnippet.Code.Node = newNode;

                        tvCodeItems.SelectedNode.Nodes.Add(newNode);
                        tvCodeItems.Sort();

                        CountContentSnippet(node);
                    }
                }
                else if (tvCodeItems.SelectedNode.Name == "Text")
                {
                    var dialog = new NewContentSnippetForm(756150000, Service, node.Tag as EntityReference, Languages);
                    if (dialog.ShowDialog(this) == DialogResult.OK)
                    {
                        var newContentSnippet = new ContentSnippet(dialog.Template);
                        newContentSnippet.Code.StateChanged += JavaScript_StateChanged;

                        var newNode = new TreeNode(newContentSnippet.Name)
                        {
                            Tag = newContentSnippet.Code
                        };
                        newContentSnippet.Code.Node = newNode;

                        tvCodeItems.SelectedNode.Nodes.Add(newNode);
                        tvCodeItems.Sort();

                        CountContentSnippet(node);
                    }
                }
            }
        }
コード例 #20
0
        public async void PrepareSendCommand(NodeBase data, CommandParams cPar, ActionRequested how)
        {
            if (cPar.SBOrun)
            {
                string   sName = (cPar.CommandFlowFlag == CommandCtrlModel.Select_Before_Operate_With_Enhanced_Security) ? "SBOw" : "SBO";
                NodeData d = (NodeData)data.Parent;
                NodeData op = null, sel = null;
                if (d != null)
                {
                    if (d.Name == "SBOw" || d.Name == "SBO")
                    {
                        sName = "Oper";
                        sel   = (NodeData)data;
                    }
                    else
                    {
                        op = (NodeData)data;
                    }
                    NodeBase dd = d.Parent;
                    if (dd != null)
                    {
                        NodeData d2 = (NodeData)dd.FindChildNode(sName);
                        if (d2 != null)
                        {
                            NodeData d3 = (NodeData)d2.FindChildNode("ctlVal");
                            if (d3 != null)
                            {
                                if (op == null)
                                {
                                    op = d3;
                                }
                                else
                                {
                                    sel = d3;
                                }
                                SendCommand(sel, cPar, how);
                                await PutTaskDelay(cPar.SBOtimeout);

                                SendCommand(op, cPar, how);
                            }
                            else
                            {
                                Logger.getLogger().LogWarning("Cannot send SBO command sequence, ctlVal not found in " + d2.IecAddress);
                            }
                        }
                        else
                        {
                            Logger.getLogger().LogWarning("Cannot send SBO command sequence, " + sName + " not found in " + dd.IecAddress);
                        }
                    }
                    else
                    {
                        Logger.getLogger().LogWarning("Cannot send SBO command sequence, null parent of " + d.IecAddress);
                    }
                }
                else
                {
                    Logger.getLogger().LogWarning("Cannot send SBO command sequence, null parent of " + data.IecAddress);
                }
            }
            else
            {
                SendCommand(data, cPar, how);
            }
        }
コード例 #21
0
 private void StartMenuButton_Click(object sender, RoutedEventArgs e)
 {
     ActionRequested?.Invoke(NavigationView.Home);
 }
コード例 #22
0
 private void pbOpenPluginsStore_Click(object sender, System.EventArgs e)
 {
     ActionRequested?.Invoke(this, new PluginsListEventArgs(PluginsListAction.OpenPluginsStore));
 }
コード例 #23
0
ファイル: MainWindow.cs プロジェクト: ttgzs/iedexplorer
        private void SendCommand(NodeBase data, Iec61850State iecs, ActionRequested how)
        {
            if (data != null)
            {
                NodeData d = (NodeData)data.Parent;
                if (d != null)
                {
                    NodeBase      b, c;
                    CommandParams cPar = new CommandParams();
                    cPar.CommType = CommandType.SingleCommand;
                    if ((b = d.FindChildNode("ctlVal")) != null)
                    {
                        cPar.DataType = ((NodeData)b).DataType;
                        cPar.Address  = b.Address;
                        cPar.ctlVal   = ((NodeData)b).DataValue;
                    }
                    cPar.T = DateTime.MinValue;
                    cPar.interlockCheck = true;
                    cPar.synchroCheck   = true;
                    cPar.orCat          = OrCat.STATION_CONTROL;
                    cPar.orIdent        = "IEDEXPLORER";
                    //cPar.orIdent = "ET03: 192.168.001.001 R001 K189 Origin:128";
                    cPar.CommandFlowFlag = CommandCtrlModel.Unknown;
                    b = data;
                    List <string> path = new List <string>();
                    do
                    {
                        b = b.Parent;
                        path.Add(b.Name);
                    } while (!(b is NodeFC));
                    path[0] = "ctlModel";
                    path[path.Count - 1] = "CF";
                    b = b.Parent;
                    for (int i = path.Count - 1; i >= 0; i--)
                    {
                        if ((b = b.FindChildNode(path[i])) == null)
                        {
                            break;
                        }
                    }
                    if (b != null)
                    {
                        if (b is NodeData)
                        {
                            cPar.CommandFlowFlag = (CommandCtrlModel)((long)((b as NodeData).DataValue));
                        }
                    }

                    CommandDialog dlg = new CommandDialog(cPar);
                    DialogResult  res = dlg.ShowDialog(this);

                    if (res == DialogResult.Cancel)
                    {
                        return;
                    }

                    List <NodeData> ndar = new List <NodeData>();
                    //char *nameo[] = {"$Oper$ctlVal", "$Oper$origin$orCat", "$Oper$origin$orIdent", "$Oper$ctlNum", "$Oper$T", "$Oper$Test", "$Oper$Check"};
                    if ((b = d.FindChildNode("ctlVal")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = cPar.ctlVal;
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("origin")) != null)
                    {
                        if (how == ActionRequested.WriteAsStructure)
                        {
                            NodeData n = new NodeData(b.Name);
                            n.DataType  = scsm_MMS_TypeEnum.structure;
                            n.DataValue = 2;
                            ndar.Add(n);
                            if ((c = b.FindChildNode("orCat")) != null)
                            {
                                NodeData n2 = new NodeData(b.Name + "$" + c.Name);
                                n2.DataType  = ((NodeData)c).DataType;
                                n2.DataValue = (long)cPar.orCat;
                                n.AddChildNode(n2);
                            }
                            if ((c = b.FindChildNode("orIdent")) != null)
                            {
                                NodeData n2 = new NodeData(b.Name + "$" + c.Name);
                                n2.DataType = ((NodeData)c).DataType;
                                byte[]  bytes = new byte[cPar.orIdent.Length];
                                int     tmp1, tmp2; bool tmp3;
                                Encoder ascii = (new ASCIIEncoding()).GetEncoder();
                                ascii.Convert(cPar.orIdent.ToCharArray(), 0, cPar.orIdent.Length, bytes, 0, cPar.orIdent.Length, true, out tmp1, out tmp2, out tmp3);
                                n2.DataValue = bytes;
                                n.AddChildNode(n2);
                            }
                        }
                        else
                        {
                            if ((c = b.FindChildNode("orCat")) != null)
                            {
                                NodeData n = new NodeData(b.Name + "$" + c.Name);
                                n.DataType  = ((NodeData)c).DataType;
                                n.DataValue = (long)cPar.orCat;
                                ndar.Add(n);
                            }
                            if ((c = b.FindChildNode("orIdent")) != null)
                            {
                                NodeData n = new NodeData(b.Name + "$" + c.Name);
                                n.DataType = ((NodeData)c).DataType;
                                byte[]  bytes = new byte[cPar.orIdent.Length];
                                int     tmp1, tmp2; bool tmp3;
                                Encoder ascii = (new ASCIIEncoding()).GetEncoder();
                                ascii.Convert(cPar.orIdent.ToCharArray(), 0, cPar.orIdent.Length, bytes, 0, cPar.orIdent.Length, true, out tmp1, out tmp2, out tmp3);
                                n.DataValue = bytes;
                                ndar.Add(n);
                            }
                        }
                    }
                    if ((b = d.FindChildNode("ctlNum")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = m_ctlNum++;
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("T")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType = ((NodeData)b).DataType;
                        byte[] btm = new byte[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
                        n.DataValue = btm;

                        if (cPar.T != DateTime.MinValue)
                        {
                            int    t   = (int)Scsm_MMS.ConvertToUnixTimestamp(cPar.T);
                            byte[] uib = BitConverter.GetBytes(t);
                            btm[0] = uib[3];
                            btm[1] = uib[2];
                            btm[2] = uib[1];
                            btm[3] = uib[0];
                        }
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("Test")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = false;
                        ndar.Add(n);
                    }
                    if ((b = d.FindChildNode("Check")) != null)
                    {
                        NodeData n = new NodeData(b.Name);
                        n.DataType  = ((NodeData)b).DataType;
                        n.DataValue = new byte[] { 0x40 };
                        n.DataParam = ((NodeData)b).DataParam;
                        ndar.Add(n);
                    }
                    iecs.Send(ndar.ToArray(), d.CommAddress, how);
                }
                else
                {
                    MessageBox.Show("Basic structure not found!");
                }
            }
        }