Beispiel #1
0
        public void WriteXmlDefaultsOverrideTest()
        {
            ClientConfig clientConfig = new ClientConfig()
            {
                SenderId       = "testsenderid",
                SenderPassword = "******",
            };

            RequestConfig requestConfig = new RequestConfig()
            {
                ControlId = "testcontrol",
                UniqueId  = true,
                PolicyId  = "testpolicy",
            };

            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<control>
    <senderid>testsenderid</senderid>
    <password>pass123!</password>
    <controlid>testcontrol</controlid>
    <uniqueid>true</uniqueid>
    <dtdversion>3.0</dtdversion>
    <policyid>testpolicy</policyid>
    <includewhitespace>false</includewhitespace>
</control>";

            ControlBlock controlBlock = new ControlBlock(clientConfig, requestConfig);

            this.CompareXml(expected, controlBlock);
        }
        /// <summary>
        /// ControlBlock模式读取数据块
        /// </summary>
        private void ControlBlockModeRead()
        {
            byte[] buffer;
            for (int i = 0; i < ControlBlock.Count; i++)
            {
                PLCDBBlock block = ControlBlock[i];
                buffer = new byte[block.BufferLength];
                int resNo =
                    cycleReadConnection.ReadBlock(
                        DBType,
                        DBNumber,
                        block.Start_Offset,
                        block.BufferLength,
                        ref buffer,
                        out string errText);

                if (resNo != 0)
                {
                    _log.Error(
                        $"设备[{Name}]读取[{DBType}][{DBNumber}]" +
                        $"Offset[{block.Start_Offset}]Length[{block.BufferLength}]" +
                        $"失败,失败信息:[Code:{resNo},Message:{errText}]");
                }
                else
                {
                    DoSomething(ControlBlock.GetKey(i), buffer);
                }
            }
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            try
            {
                //ler arquivo .mips
                var    separator = Path.DirectorySeparatorChar;
                string file;
                if (args.Length > 0)
                {
                    file = args[0];
                }
                else
                {
                    Console.WriteLine("Digite o arquivo junto com o caminho completo: ");
                    file = Console.ReadLine();
                }

                var lines = RotinaLeituraConsole(file);

                ControlBlock bloco_controle = new ControlBlock(lines);

                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Beispiel #4
0
        public void InvalidSenderIdTest()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = null,
                SenderPassword = "******",
            };

            ControlBlock controlBlock = new ControlBlock(config);
        }
Beispiel #5
0
        public Message()
        {
            type = new MessageType();

            controlBlock               = new ControlBlock();
            controlBlock.Command       = new ControlCommand();
            communicationBlock         = new CommunicationBlock();
            communicationBlock.clock   = new VectorClockImpl(-1);
            communicationBlock.payload = new CommunicationPayload();
        }
Beispiel #6
0
        public void InvalidSenderPasswordTest()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = "testsender",
                SenderPassword = null,
            };

            ControlBlock controlBlock = new ControlBlock(config);
        }
Beispiel #7
0
        public void WriteXmlInvalidDtdVersionTest()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = "testsenderid",
                SenderPassword = "******",
                DtdVersion     = "1.2",
            };

            ControlBlock controlBlock = new ControlBlock(config);
        }
Beispiel #8
0
        public void WriteXmlInvalidControlIdLongTest()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = "testsenderid",
                SenderPassword = "******",
                ControlId      = new StringBuilder(10 * 30).Insert(0, "1234567890", 30).ToString(),
            };

            ControlBlock controlBlock = new ControlBlock(config);
        }
Beispiel #9
0
        public void WriteXmlInvalidControlIdShortTest()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = "testsenderid",
                SenderPassword = "******",
                ControlId      = "unittest",
            };

            ControlBlock controlBlock = new ControlBlock(config);
        }
Beispiel #10
0
        // Add Commands for other buttons.
        // To be added:
        // ReturnToSurfaceCommand

        #endregion

        public ROVControlsViewModel()
        {
            server             = "169.254.250.128";
            port               = 3000;
            block              = new ControlBlock();
            AlreadySentSpecial = false;
            if (ConnectROV())
            {
                StartDispatchTimer();
            }
            EventManager.RegisterClassHandler(typeof(System.Windows.Controls.Control), System.Windows.Controls.Control.KeyDownEvent, new KeyEventHandler(MovementController), true);
        }
        public override void SetMessage(Message messageToSet)
        {
            var controlBlock = new ControlBlock();

            controlBlockMap.Add(messageToSet, controlBlock);


            controlBlock.playingMessageNode = null;
            controlBlock.state            = MessageState.Ready;
            controlBlock.messageStartTime = 0.0f;
            controlBlock.transparency     = 0.0f;
        }
Beispiel #12
0
        public void WriteXmlDefaultsOverride21Test()
        {
            SdkConfig config = new SdkConfig()
            {
                SenderId       = "testsenderid",
                SenderPassword = "******",
                ControlId      = "testcontrol",
                UniqueId       = true,
                DtdVersion     = "2.1",
                PolicyId       = "testpolicy",
                Debug          = true,
            };

            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<control>
    <senderid>testsenderid</senderid>
    <password>pass123!</password>
    <controlid>testcontrol</controlid>
    <uniqueid>true</uniqueid>
    <dtdversion>2.1</dtdversion>
    <policyid>testpolicy</policyid>
    <includewhitespace>false</includewhitespace>
    <debug>true</debug>
</control>";

            Stream            stream      = new MemoryStream();
            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Encoding    = Encoding.UTF8;
            xmlSettings.Indent      = true;
            xmlSettings.IndentChars = "    ";

            IaXmlWriter xml = new IaXmlWriter(stream, xmlSettings);

            ControlBlock controlBlock = new ControlBlock(config);

            controlBlock.WriteXml(ref xml);

            xml.Flush();
            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);

            Diff xmlDiff = DiffBuilder.Compare(expected).WithTest(reader.ReadToEnd())
                           .WithDifferenceEvaluator(DifferenceEvaluators.Default)
                           .Build();

            Assert.IsFalse(xmlDiff.HasDifferences(), xmlDiff.ToString());
        }
        /// <summary>
        /// Tag对象注册事件
        /// </summary>
        /// <param name="group">TagGroup对象</param>
        /// <param name="tag">Tag对象</param>
        private void OnTagRegister(CustomGroup group, CustomTag tag)
        {
            _log.Trace($"Device[{Name}]:Tag[{tag.Name}],Offset[{tag.DB_Offset}]");

            if (!(tag is SiemensTag))
            {
                throw new Exception($"tag对象:{tag.Name}不是SiemensTag对象");
            }

            SiemensTag siemensTag = tag as SiemensTag;

            switch (CycleReadMode)
            {
            case SiemensCycleReadMode.FullBlock:
                FullBlock.Add(siemensTag.DB_Offset, siemensTag.Length);
                break;

            case SiemensCycleReadMode.ControlBlock:
                if (siemensTag.Type == TagType.C)
                {
                    string key = "";
                    if (group is SiemensTagGroup)
                    {
                        key = (group as SiemensTagGroup).Name;
                    }
                    else if (group is SiemensSubTagGroup)
                    {
                        SiemensSubTagGroup subGroup = group as SiemensSubTagGroup;
                        key = $"{subGroup.Parent.Name}.{subGroup.Prefix}";
                    }

                    PLCDBBlock block = ControlBlock[key];
                    if (block == null)
                    {
                        block = new PLCDBBlock();
                        ControlBlock.Add(key, block);
                    }
                    block.Add(siemensTag.DB_Offset, siemensTag.Length);
                }
                break;
            }
        }
        /// <summary>
        /// Constructs the RequestBlock object with the supplied config and content
        /// </summary>
        /// <param name="config"></param>
        /// <param name="content"></param>
        public RequestBlock(SdkConfig config, Content content)
        {
            if (!String.IsNullOrWhiteSpace(config.Encoding))
            {
                var encodingInfo = Encoding.GetEncodings().FirstOrDefault(info => info.Name == config.Encoding);
                if (encodingInfo != null)
                {
                    Encoding encoding = encodingInfo.GetEncoding();
                }
                else
                {
                    throw new ArgumentException("Requested encoding is not supported");
                }
            }
            else
            {
                encoding = Encoding.GetEncoding("UTF-8");
            }

            control   = new ControlBlock(config);
            operation = new OperationBlock(config, content);
        }
Beispiel #15
0
    // Use this for initialization
    void Start()
    {

        symbolej1 = new bool[12, 16];
        symbolej2 = new bool[12, 16];

        blocksFixesj1 = new bool[12, 16];
        blocksFixesj2 = new bool[12, 16];

        ost.GetComponent<AudioSource>().Play();

        runej1.AddComponent<SpriteRenderer>();
        runej2.AddComponent<SpriteRenderer>();
        sideRune1j1.AddComponent<SpriteRenderer>();
        sideRune2j1.AddComponent<SpriteRenderer>();
        sideRune3j1.AddComponent<SpriteRenderer>();
        sideRune4j1.AddComponent<SpriteRenderer>();
        sideRune1j2.AddComponent<SpriteRenderer>();
        sideRune2j2.AddComponent<SpriteRenderer>();
        sideRune3j2.AddComponent<SpriteRenderer>();
        sideRune4j2.AddComponent<SpriteRenderer>();

        runeEau = Resources.Load<Sprite>("runeEau1");
        runeFeu = Resources.Load<Sprite>("runeFeu1");
        runeTerre = Resources.Load<Sprite>("runeTerre1");
        runeNuit = Resources.Load<Sprite>("runeNuit1");

        runeEauS = Resources.Load<Sprite>("RuneEauS");
        runeFeuS = Resources.Load<Sprite>("RuneFeuS");
        runeTerreS = Resources.Load<Sprite>("RuneTerreS");
        runeNuitS = Resources.Load<Sprite>("RuneNuitS");

        runeEau1VS = Resources.Load<Sprite>("runeEau1VS");
        runeFeu1VS = Resources.Load<Sprite>("runeFeu1VS");
        runeTerre1VS = Resources.Load<Sprite>("runeTerre1VS");
        runeNuit1VS = Resources.Load<Sprite>("runeNuit1VS");

        runeEau2VS = Resources.Load<Sprite>("runeEau2VS");
        runeFeu2VS = Resources.Load<Sprite>("runeFeu2VS");
        runeTerre2VS = Resources.Load<Sprite>("runeTerre2VS");
        runeNuit2VS = Resources.Load<Sprite>("runeNuit2VS");

        //arrangement "aléatoire" des 4 runes dans runesTab
        runesTab = new Sprite[4];
        sideRunesTabJ1 = new Sprite[4];
        sideRunesVTabJ1 = new Sprite[4];
        sideRunesTabJ2 = new Sprite[4];
        sideRunesVTabJ2 = new Sprite[4];
        System.Random rnd = new System.Random();
        int x = rnd.Next(0, 4);

        switch (x)
        {
            case 0:
                runesTab[0] = runeNuit;
                runesTab[1] = runeEau;
                runesTab[2] = runeFeu;
                runesTab[3] = runeTerre;

                sideRunesTabJ1[0] = runeNuitS;
                sideRunesTabJ1[1] = runeEauS;
                sideRunesTabJ1[2] = runeFeuS;
                sideRunesTabJ1[3] = runeTerreS;
                sideRunesVTabJ1[0] = runeNuit1VS;
                sideRunesVTabJ1[1] = runeEau1VS;
                sideRunesVTabJ1[2] = runeFeu1VS;
                sideRunesVTabJ1[3] = runeTerre1VS;

                sideRunesTabJ2[0] = runeNuitS;
                sideRunesTabJ2[1] = runeEauS;
                sideRunesTabJ2[2] = runeFeuS;
                sideRunesTabJ2[3] = runeTerreS;
                sideRunesVTabJ2[0] = runeNuit2VS;
                sideRunesVTabJ2[1] = runeEau2VS;
                sideRunesVTabJ2[2] = runeFeu2VS;
                sideRunesVTabJ2[3] = runeTerre2VS;
                break;
            case 1:
                runesTab[0] = runeEau;
                runesTab[1] = runeFeu;
                runesTab[2] = runeNuit;
                runesTab[3] = runeTerre;

                sideRunesTabJ1[0] = runeEauS;
                sideRunesTabJ1[1] = runeFeuS;
                sideRunesTabJ1[2] = runeNuitS;
                sideRunesTabJ1[3] = runeTerreS;
                sideRunesVTabJ1[0] = runeEau1VS;
                sideRunesVTabJ1[1] = runeFeu1VS;
                sideRunesVTabJ1[2] = runeNuit1VS;
                sideRunesVTabJ1[3] = runeTerre1VS;

                sideRunesTabJ2[0] = runeEauS;
                sideRunesTabJ2[1] = runeFeuS;
                sideRunesTabJ2[2] = runeNuitS;
                sideRunesTabJ2[3] = runeTerreS;
                sideRunesVTabJ2[0] = runeEau2VS;
                sideRunesVTabJ2[1] = runeFeu2VS;
                sideRunesVTabJ2[2] = runeNuit2VS;
                sideRunesVTabJ2[3] = runeTerre2VS;
                break;
            case 2:
                runesTab[0] = runeTerre;
                runesTab[1] = runeNuit;
                runesTab[2] = runeEau;
                runesTab[3] = runeFeu;

                sideRunesTabJ1[0] = runeTerreS;
                sideRunesTabJ1[1] = runeNuitS;
                sideRunesTabJ1[2] = runeEauS;
                sideRunesTabJ1[3] = runeFeuS;
                sideRunesVTabJ1[0] = runeTerre1VS;
                sideRunesVTabJ1[1] = runeNuit1VS;
                sideRunesVTabJ1[2] = runeEau1VS;
                sideRunesVTabJ1[3] = runeFeu1VS;

                sideRunesTabJ2[0] = runeTerreS;
                sideRunesTabJ2[1] = runeNuitS;
                sideRunesTabJ2[2] = runeEauS;
                sideRunesTabJ2[3] = runeFeuS;
                sideRunesVTabJ2[0] = runeTerre2VS;
                sideRunesVTabJ2[1] = runeNuit2VS;
                sideRunesVTabJ2[2] = runeEau2VS;
                sideRunesVTabJ2[3] = runeFeu2VS;
                break;
            case 3:
                runesTab[0] = runeFeu;
                runesTab[1] = runeTerre;
                runesTab[2] = runeEau;
                runesTab[3] = runeNuit;

                sideRunesTabJ1[0] = runeFeuS;
                sideRunesTabJ1[1] = runeTerreS;
                sideRunesTabJ1[2] = runeEauS;
                sideRunesTabJ1[3] = runeNuitS;
                sideRunesVTabJ1[0] = runeFeu1VS;
                sideRunesVTabJ1[1] = runeTerre1VS;
                sideRunesVTabJ1[2] = runeEau1VS;
                sideRunesVTabJ1[3] = runeNuit1VS;

                sideRunesTabJ2[0] = runeFeuS;
                sideRunesTabJ2[1] = runeTerreS;
                sideRunesTabJ2[2] = runeEauS;
                sideRunesTabJ2[3] = runeNuitS;
                sideRunesVTabJ2[0] = runeFeu2VS;
                sideRunesVTabJ2[1] = runeTerre2VS;
                sideRunesVTabJ2[2] = runeEau2VS;
                sideRunesVTabJ2[3] = runeNuit2VS;
                break;

        }


        runej1.GetComponent<SpriteRenderer>().sprite = runesTab[cmpRJ1];
        sideRune1j1.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ1[cmpRJ1];
        sideRune2j1.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ1[cmpRJ1+1];
        sideRune3j1.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ1[cmpRJ1+2];
        sideRune4j1.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ1[cmpRJ1+3];

        runej2.GetComponent<SpriteRenderer>().sprite = runesTab[cmpRJ2];
        sideRune1j2.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ2[cmpRJ2];
        sideRune2j2.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ2[cmpRJ2 + 1];
        sideRune3j2.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ2[cmpRJ2 + 2];
        sideRune4j2.GetComponent<SpriteRenderer>().sprite = sideRunesTabJ2[cmpRJ2 + 3];

        switch (runej1.GetComponent<SpriteRenderer>().sprite.name)
        {
            case "RuneTerre1":
                genereSymbole(3, 1);
                genereSymbole(3, 2);
                break;
            case "RuneEau1":
                genereSymbole(1, 1);
                genereSymbole(1, 2);
                break;
            case "RuneFeu1":
                genereSymbole(2, 1);
                genereSymbole(2, 2);
                break;
            case "RuneNuit1":
                genereSymbole(4, 1);
                genereSymbole(4, 2);
                break;
        }

        poolBlock = new ControlBlock[5012];

        for (int i = 0; i < 5012; i++)
        {
            poolBlock[i] = new ControlBlock(this);

        }

        

        for (int i = 0; i < 12; i++)
            for (int j = 0; j < 16; j++)
            {
                blocksFixesj1[i, j] = false;
                blocksFixesj2[i, j] = false;
            }

        spawnJ1(0);
        spawnJ2(0);
    }
Beispiel #16
0
 public RequestBlock(ClientConfig clientConfig, RequestConfig requestConfig, List <IFunction> content)
 {
     this.Encoding  = requestConfig.Encoding;
     this.Control   = new ControlBlock(clientConfig, requestConfig);
     this.Operation = new OperationBlock(clientConfig, requestConfig, content);
 }
Beispiel #17
0
 public Message(Message msg)
 {
     type               = msg.type;
     controlBlock       = new Message.ControlBlock(msg.controlBlock);
     communicationBlock = new Message.CommunicationBlock(msg.communicationBlock);
 }
 public override int GetHashCode()
 {
     return(Pubkey.GetHashCode() + ControlBlock.GetHashCode() + TapScript.GetHashCode());
 }
Beispiel #19
0
    void spawnPiece(ControlBlock cb, int joueur)
    {
        float x, y;
        x = 0.0f;
        y = y0;
        GameObject newPiece;
        ControlBlock newControlBlock;
        if (joueur == 1)
        {
            x = j1x0 + 6 * moveUnit;
        }
        else if (joueur == 2) {
            x = j2x0 + 6 * moveUnit;
        }

        if (cb.currentBlock.name.Equals(doubleBlock.name))
        {
            newPiece = (GameObject)GameObject.Instantiate(doubleBlock, new Vector3(x, y, 0), cb.currentBlock.transform.rotation);   
        }
        else if(cb.currentBlock.name.Equals(tripleBlock1.name))
        {
            newPiece = (GameObject)GameObject.Instantiate(tripleBlock1, new Vector3(x, y, 0), cb.currentBlock.transform.rotation);
        }
        else
        {
            newPiece = (GameObject)GameObject.Instantiate(tripleBlock2, new Vector3(x, y, 0), cb.currentBlock.transform.rotation);
        }
        newPiece.gameObject.tag = "j" + joueur;
        newPiece.transform.Rotate(0, 0, cb.orientation * 90);
        newControlBlock = new ControlBlock(this);
        newControlBlock.currentBlock = newPiece;
        newControlBlock.orientation = cb.orientation;
        if (joueur == 1)
        {
            j1.pieceCourante = newControlBlock;
        }
        else
        {
            j2.pieceCourante = newControlBlock;
        }
    }
 public bool Equals(TaprootScriptData other)
 {
     return(Pubkey.Equals(other.Pubkey) &&
            ControlBlock.Equals(other.ControlBlock) &&
            TapScript.Equals(other.TapScript));
 }