public coffeeMachine(Socket Connection, String IP, int ID)
 {
     this.connection = Connection;
     this.IP         = IP;
     this.ID         = ID;
     this.MAC        = "";
     this.state      = DevStates.STATE_SET_ID;
     SetupDevice();
 }
示例#2
0
        private void ChangeState(DevStates newState, DevStates oldState)
        {
            switch (oldState)
            {
            case DevStates.AnimatedSpriteTesting:
                manager.UnregisterSpriteFromUpdates("walking_women");
                break;

            case DevStates.AnimatedMovingSpriteTesting:
                manager.UnregisterSpriteFromUpdates("walking_women2");
                break;

            case DevStates.CompositeAnimatedSpriteTesting:
                manager.UnregisterSpriteFromUpdates("a_car_1");
                break;

            case DevStates.CompositeMovingAnimatedSpriteTesting:
                manager.UnregisterSpriteFromUpdates("a_car_2");
                break;
            }

            switch (newState)
            {
            case DevStates.AnimatedSpriteTesting:
                manager.RegisterSpriteForUpdates(animatedSprite1);
                break;

            case DevStates.AnimatedMovingSpriteTesting:
                manager.RegisterSpriteForUpdates(animatedSprite2);
                animatedSprite2.Position = Vector2.Zero;
                animatedSprite2.Rotation = 0f;
                break;

            case DevStates.SimpleMovingSpriteTesting:
                sprite2.Position = Vector2.Zero;
                sprite2.Rotation = 0f;
                break;

            case DevStates.CompositeMovingSpriteTesting:
                compositeSprite2.Position = Vector2.Zero;
                compositeSprite2.Rotation = 0f;
                break;

            case DevStates.CompositeAnimatedSpriteTesting:
                manager.RegisterSpriteForUpdates(compositeAnimatedSprite1);
                break;

            case DevStates.CompositeMovingAnimatedSpriteTesting:
                manager.RegisterSpriteForUpdates(compositeAnimatedSprite2);
                compositeAnimatedSprite2.Position = Vector2.Zero;
                compositeAnimatedSprite2.Rotation = 0f;
                break;
            }
        }
        private void SetupDevice()
        {
            Debug.WriteLine("Local(" + IP + "): " + Convert.ToString(state));
            switch (state)
            {
            case DevStates.STATE_SET_ID:
            {
                try
                {
                    MemoryStream id_stream = new MemoryStream();
                    id_stream.Write(BitConverter.GetBytes(ID), 0, 1);
                    TcpPacket tcp = new TcpPacket(IP, 0x02, 0x0B, id_stream.ToArray().Length, id_stream.ToArray(), readDelay);
                    connection.Send(tcp.getBuffer());
                }
                catch (Exception e)
                {
                    Debug.WriteLine("ID conf failed" + e.GetBaseException());
                    state = DevStates.STATE_DONE;
                }
            }
            break;

            case DevStates.STATE_SET_TIME:
            {
                try
                {
                    MemoryStream time_stream = new MemoryStream();
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Hour), 0, 1);
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Minute), 0, 1);
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Second), 0, 1);
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Day), 0, 1);
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Month), 0, 1);
                    time_stream.Write(BitConverter.GetBytes(DateTime.Now.Year % 100), 0, 1);
                    TcpPacket tcp = new TcpPacket(IP, 0x02, 0x08, time_stream.ToArray().Length, time_stream.ToArray(), readDelay);
                    connection.Send(tcp.getBuffer());
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Time conf failed: " + e.GetBaseException());
                }
            }
            break;

            case DevStates.STATE_GET_SYS_INFO:
            {
                try
                {
                    int          majorVersion   = 1;
                    int          minorVersion   = 16;
                    MemoryStream version_stream = new MemoryStream();
                    version_stream.Write(BitConverter.GetBytes(majorVersion), 0, 1);
                    version_stream.Write(BitConverter.GetBytes(minorVersion), 0, 1);
                    TcpPacket tcp = new TcpPacket(IP, 0x02, 0x09, version_stream.ToArray().Length, version_stream.ToArray(), readDelay);
                    connection.Send(tcp.getBuffer());

                    byte[] request = new byte[255];
                    connection.Receive(request);
                    Debug.WriteLine("--------New Msg-------------");
                    Debug.WriteLine(BitConverter.ToString(request));
                    processPacket(request, request.Length);
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Sys conf failed: " + e.GetBaseException());
                }
            }

            break;

            case DevStates.STATE_GET_MEM_INFO:
            {
                try
                {
                    TcpPacket tcp = new TcpPacket(IP, 0x02, 0x0A, 0, null, readDelay);
                    connection.Send(tcp.getBuffer());

                    byte[] request = new byte[255];
                    connection.Receive(request);
                    Debug.WriteLine("--------New Msg-------------");
                    Debug.WriteLine(BitConverter.ToString(request));
                    processPacket(request, request.Length);
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Sys conf failed: " + e.GetBaseException());
                }
            }
            break;

            case DevStates.STATE_GET_ADAP_SETT:
            {
                try
                {
                    TcpPacket tcp = new TcpPacket(IP, 0x04, 0x0D, 0, null, readDelay);
                    connection.Send(tcp.getBuffer());

                    byte[] request = new byte[255];
                    connection.Receive(request);
                    Debug.WriteLine("--------New Msg-------------");
                    Debug.WriteLine(BitConverter.ToString(request));
                    processPacket(request, request.Length);
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Adap get failed: " + e.GetBaseException());
                }
            }
            break;

            case DevStates.STATE_SET_FARM_INFO:
                break;

            case DevStates.STATE_DONE:
            {
                Debug.WriteLine("Setup Device Finished");
                readMsg();
            }
            break;
            }
            if (state < DevStates.STATE_DONE)
            {
                Task.Delay(500).Wait();
                state++;
                SetupDevice();
            }
            else
            {
                state = DevStates.STATE_SET_ID;
            }
        }
示例#4
0
        protected override void LoadContent()
        {
            //// other stuffs
            lastState              = Keyboard.GetState();
            currentState           = DevStates.AnimatedSpriteTesting;
            lastMovingSpriteUpdate = TimeSpan.Zero;
            _spriteBatch           = new SpriteBatch(GraphicsDevice);

            fontManager = new FontManager(GraphicsDevice);
            font        = fontManager.GetFont("Content\\PlayfairDisplayRegular-ywLOY.ttf", 32);
            font2       = fontManager.GetFont("Content\\PlayfairDisplayRegular-ywLOY.ttf", 16);



            //// create and configure our sprite manager
            manager = new TextureManager(GraphicsDevice);
            manager.AutoTextureAtlasBalancingIntervalMilliseconds = 5000;

            //// register all of the textures we'll be using
            var animationSize  = new Point(400, 450);
            var hullSize       = new Point(288, 192);
            var hullSizeVector = new Vector2(hullSize.X, hullSize.Y);
            var tireSize       = new Point(45, 45);
            var tireSizeVector = new Vector2(tireSize.X, tireSize.Y);
            var textures       = new List <(string, Point?, string?)>()
            {
                ("TextureAtlasTesting\\11-6.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\beautiful-sunset-33.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\chloe4.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\gorgeous-f2-goldendoodle-puppies-5a7de534c591b.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\OIP.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\R3d398e62bb9b79f54b5c49b4e5f32925.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\Rdb919eda1b98929d3a17685a6d3d7ef8.jpg", ChooseRandomSize(), null),
                ("TextureAtlasTesting\\Refd96265ac3da1f5b5dc5277f1082d15.jpg", ChooseRandomSize(), null),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_1.jpg", animationSize, "woman1"),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_2.jpg", animationSize, "woman2"),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_3.jpg", animationSize, "woman3"),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_4.jpg", animationSize, "woman4"),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_5.jpg", animationSize, "woman5"),
                ("AnimationTesting\\woman-silhouette-walk-cycle-vector_6.jpg", animationSize, "woman6"),
                ("SpriteTesting\\spr_sportscar_0.png", hullSize, "static_car"),
                ("CompositeSpriteTesting\\spr_sportscar_0_hull.png", hullSize, "car_hull"),
                ("CompositeSpriteTesting\\spr_sportscar_0_tire.png", tireSize, "car_tire"),
                ("CompositeSpriteTesting\\spr_sportscar_0_tire_2.png", tireSize, "car_tire2"),
                ("CompositeSpriteTesting\\spr_sportscar_0_tire_3.png", tireSize, "car_tire3"),
                ("CompositeSpriteTesting\\spr_sportscar_0_tire_4.png", tireSize, "car_tire4")
            };
            var texturesLoadInfos = new List <TextureLoadInfo>();

            for (var i = 0; i < textures.Count; i++)
            {
                texturesLoadInfos.Add(new TextureLoadInfo(textures[i].Item3 ?? $"image{i}", $"Content\\{textures[i].Item1}", textures[i].Item2));
            }
            manager.LoadTextures(texturesLoadInfos);

            //// create sprites

            // Simple Sprites
            sprite1 = new Sprites.SimpleSprite(manager, "static_car1", "static_car", hullSizeVector);
            sprite2 = new Sprites.SimpleSprite(manager, "static_car2", "static_car", hullSizeVector);

            // Composite Sprites
            var tire1Location = new Vector2(43, 92);
            var tire2Location = new Vector2(213, 92);

            compositeSprite1 = new CompositeSprite(
                manager,
                "car_1",
                hullSizeVector,
                new Sprites.SimpleSprite(manager, "hull", "car_hull", hullSizeVector),
                new SimpleSprite(manager, "tire1", "car_tire", tire1Location, tireSizeVector),
                new SimpleSprite(manager, "tire2", "car_tire", tire2Location, tireSizeVector)
                );
            compositeSprite2 = new CompositeSprite(
                manager,
                "car_2",
                hullSizeVector,
                new Sprites.SimpleSprite(manager, "hull", "car_hull", hullSizeVector),
                new Sprites.Sprite(manager, "tire1", "car_tire", tire1Location, tireSizeVector),
                new Sprites.Sprite(manager, "tire2", "car_tire", tire2Location, tireSizeVector)
                );

            // Composite AnimatedSprites
            var tire_animation = new Animation(
                "tire",
                true,
                new Frame[]
            {
                new Frame("t1", "car_tire", 100),
                new Frame("t1", "car_tire2", 100),
                new Frame("t1", "car_tire3", 100),
                new Frame("t1", "car_tire4", 100)
            }
                );

            compositeAnimatedSprite1 = new CompositeSprite(
                manager,
                "a_car_1",
                hullSizeVector,
                new Sprites.SimpleSprite(manager, "hull", "car_hull", hullSizeVector),
                new AnimatedSprite(
                    manager,
                    "tire1",
                    tire1Location,
                    tireSizeVector,
                    animations: new Animation(tire_animation)
                    ),
                new AnimatedSprite(
                    manager,
                    "tire2",
                    tire2Location,
                    tireSizeVector,
                    animations: new Animation(tire_animation)
                    )
                );
            compositeAnimatedSprite2 = new CompositeSprite(
                manager,
                "a_car_2",
                hullSizeVector,
                new Sprites.SimpleSprite(manager, "hull", "car_hull", hullSizeVector),
                new AnimatedSprite(
                    manager,
                    "tire1",
                    tire1Location,
                    tireSizeVector,
                    animations: new Animation(tire_animation)
                    ),
                new AnimatedSprite(
                    manager,
                    "tire2",
                    tire2Location,
                    tireSizeVector,
                    animations: new Animation(tire_animation)
                    )
                );

            // Animated Sprites
            var frameTime = 75;

            animatedSprite1 = new AnimatedSprite(
                manager,
                "walking_women",
                Vector2.Zero,
                new Vector2(animationSize.X, animationSize.Y),
                animations: new Animation(
                    "walking",
                    true,
                    new Frame[]
            {
                new Frame("f1", "woman1", frameTime),
                new Frame("f2", "woman2", frameTime),
                new Frame("f3", "woman3", frameTime),
                new Frame("f4", "woman4", frameTime),
                new Frame("f5", "woman5", frameTime),
                new Frame("f6", "woman6", frameTime)
            }
                    )
                );
            animatedSprite2 = new AnimatedSprite(
                manager,
                "walking_women2",
                Vector2.Zero,
                new Vector2(animationSize.X, animationSize.Y),
                animations: new Animation(
                    "walking",
                    true,
                    new Frame[]
            {
                new Frame("f1", "woman1", frameTime),
                new Frame("f2", "woman2", frameTime),
                new Frame("f3", "woman3", frameTime),
                new Frame("f4", "woman4", frameTime),
                new Frame("f5", "woman5", frameTime),
                new Frame("f6", "woman6", frameTime)
            }
                    )
                );

            ChangeState(currentState, DevStates.SimpleSpriteTesting);
        }
示例#5
0
        protected override void Update(GameTime gameTime)
        {
            manager.Update(gameTime);

            var current = Keyboard.GetState();

            if (current.IsKeyDown(Keys.Left) && lastState.IsKeyUp(Keys.Left))
            {
                var id = ((int)currentState) - 1;
                if (id < 0)
                {
                    id = Enum.GetNames(typeof(DevStates)).Length - 1;
                }
                var last = currentState;
                currentState           = (DevStates)id;
                lastMovingSpriteUpdate = gameTime.TotalGameTime;
                ChangeState(currentState, last);
            }
            else if (current.IsKeyDown(Keys.Right) && lastState.IsKeyUp(Keys.Right))
            {
                var id = ((int)currentState) + 1;
                if (id >= Enum.GetNames(typeof(DevStates)).Length)
                {
                    id = 0;
                }
                var last = currentState;
                currentState           = (DevStates)id;
                lastMovingSpriteUpdate = gameTime.TotalGameTime;
                ChangeState(currentState, last);
            }
            else if (current.IsKeyDown(Keys.Up) && lastState.IsKeyUp(Keys.Up))
            {
                manager.AutoTextureAtlasBalancingEnabled = !manager.AutoTextureAtlasBalancingEnabled;
            }

            lastState = current;

            if (currentState == DevStates.AnimatedMovingSpriteTesting && TimeHelpers.ElapsedMilliSeconds(lastMovingSpriteUpdate, gameTime.TotalGameTime) > 1000)
            {
                var changes = GetRandomChanges();
                animatedSprite2.Position = changes.Item1;
                animatedSprite2.Rotation = changes.Item2;
                lastMovingSpriteUpdate   = gameTime.TotalGameTime;
            }

            if (currentState == DevStates.SimpleMovingSpriteTesting && TimeHelpers.ElapsedMilliSeconds(lastMovingSpriteUpdate, gameTime.TotalGameTime) > 1000)
            {
                var changes = GetRandomChanges();
                sprite2.Position       = changes.Item1;
                sprite2.Rotation       = changes.Item2;
                lastMovingSpriteUpdate = gameTime.TotalGameTime;
            }

            if (currentState == DevStates.CompositeMovingSpriteTesting && TimeHelpers.ElapsedMilliSeconds(lastMovingSpriteUpdate, gameTime.TotalGameTime) > 1000)
            {
                var changes = GetRandomChanges();
                compositeSprite2.Position = changes.Item1;
                compositeSprite2.Rotation = changes.Item2;
                lastMovingSpriteUpdate    = gameTime.TotalGameTime;
            }

            if (currentState == DevStates.CompositeMovingAnimatedSpriteTesting && TimeHelpers.ElapsedMilliSeconds(lastMovingSpriteUpdate, gameTime.TotalGameTime) > 1000)
            {
                var changes = GetRandomChanges();
                compositeAnimatedSprite2.Position = changes.Item1;
                compositeAnimatedSprite2.Rotation = changes.Item2;
                lastMovingSpriteUpdate            = gameTime.TotalGameTime;
            }


            base.Update(gameTime);
        }