Exemplo n.º 1
0
        public override void Test()
        {
            int          Result  = 0;
            int          Result2 = 0;
            int          Result3 = 0;
            ResponseFunc f       = (RClay rc, object cp) => {
                int A = Result = rc.GetSignals <int>("X");
                int B = Result = rc.GetSignals <int>("Y");
                Result = A + B;
            };

            ResponseFunc f2 = (RClay rc, object cp) =>
            {
                Result2 = rc.GetSignals <int>("A");
            };

            ResponseFunc f3 = (RClay rc, object cp) =>
            {
                Result3 += rc.GetSignals <int>("A");
            };

            RClay R = new RClay(new Dictionary <string, object>()
            {
                { "Response", f },
                { "ConnectPoints", new List <Object> {
                      "X", "Y"
                  } }
            });

            RClay R2 = new RClay(new Dictionary <string, object> {
                { "Response", f2 },
                { "ConnectPoints", new List <Object> {
                      "A"
                  } }
            });

            RClay R3 = new RClay(new Dictionary <string, object> {
                { "Response", f3 },
                { "ConnectPoints", new List <Object> {
                      "A"
                  } }
            });

            Conduit con = Conduit.CreateLink(this, "X", R, "X");

            con.Connect(R, "Y");
            con.Connect(R2, "A");

            con.ParallelTrx = false;             //Disable parallel transmission

            Signal = 1;

            Assert(Result, 2);
            Assert(Result2, 1);
            Signal = 2;

            Assert(Result, 4);
            Assert(Result2, 2);


            //con.ParallelTrx = true; //Enable parallel transmission
            Signal = 3;
            Thread.Sleep(100);             //Wait

            Assert(Result, 6);
            Assert(Result2, 3);

            Conduit con2 = Conduit.CreateLink(con, "RANDOM");

            con2.Connect(R3, "A");
            con2.Connect(con, "CDE");


            Signal = 7;
            Thread.Sleep(100);             //Wait
            Assert(Result, 14);
            Assert(Result2, 7);
            Signal = 7;
            //No Bounce
            Assert(Result3, 7);
        }