Example #1
0
        public Form1()
        {
            InitializeComponent();
            mega = new Arduino("", 19200);

            DataInterpretor dataman = new DataInterpretor();

            dataman.addString("{1,\"hallo, kaas\",5}");

            ComData comdata = dataman.getComData();

            int    param1 = 0;
            string param2 = "";
            int    param3 = 0;

            comdata.Get(0, ref param1);
            comdata.Get(1, ref param2);
            comdata.Get(1, ref param3);

            Debug.Write(param1 + "," + param2 + "," + param3);

            /*StringEater eater = new StringEater();
             *
             * eater.String("hallo there dude");
             * eater.eatUntil(test);
             *
             * Debug.Write(eater.buffer);*/
            tmrConnectionCheck.Enabled = true;
        }
Example #2
0
        /// <summary>
        /// Deals with processing communication channels
        /// </summary>
        /// <param name="incomingbytes">multiple bytes of a command</param>
        public void IncomingCommand_Handle(string incomingbytes)
        {
            reader.addString(incomingbytes);

            UpdateLifetime();

            if (reader.usableInput)
            {
                ComData data = reader.getComData();
                unhandledcommands.Add(data, this);
            }
        }
Example #3
0
        /// <summary>
        /// Converts stringified ComData to comdata and moves it over
        /// </summary>
        /// <param name="rawcommand">A stringified ComData</param>
        /// <returns></returns>
        public bool Send(string rawcommand)
        {
            DataInterpretor reader = new DataInterpretor();

            reader.addString(rawcommand);

            if (reader.usableInput)
            {
                ComData comdata    = reader.getComData();
                bool    succession = Send(comdata);

                if (succession == true)
                {
                    UpdateLifetime();
                }

                return(succession);
            }
            else
            {
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// Incoming messages from clientss are processed here.
        /// </summary>
        /// <param name="message">Stringified version of ComData</param>
        public void SendMessage(string message)
        {
            //Process Stringified ComData
            data.addString(message);

            //Is it really usable (as ComData)
            if (data.usableInput)
            {
                //Get the comdata
                ComData comdata = data.getComData();

                int senderID   = 0;
                int receiverID = 0;
                int commandID  = 0;

                string CurrentTime = DateTime.Now.ToString("HH:mm:ss");

                comdata.Get(0, ref senderID);
                comdata.Get(1, ref receiverID);
                comdata.Get(2, ref commandID);

                //Is the command valid?
                if (commandID < 1)
                {
                    MessagesList.Add(Commandslist.GenerateErrorMessage(senderID, 1, "Invalid command"));
                    return;
                }

                //A message has been received by something, find device
                DeviceRegistry receiver = devices.FindByID(receiverID);

                //The receiver has not been registered in this system
                if (receiver == null)
                {
                    //And the receiver is not supposed to be 'everyone'
                    if (receiverID != -1)
                    {
                        //then stop the code..
                        //Add the message to return error to sender
                        MessagesList.Add(Commandslist.GenerateErrorMessage(senderID, 1, "Invalid receiver"));
                        return;
                    }
                }

                //If this message is meant for this server
                if (receiverID == myserverID || receiverID == -1)
                {
                    //Does not require a valid senderID
                    //Switch base handshake commands

                    dynamic result = Commandslist.ExecuteCommand(commandID, myserverID, senderID, receiverID, comdata, devices);

                    //if result is a command
                    if (result is ComData)
                    {
                        int param1 = 0;
                        result.Get(0, ref param1);

                        Console.WriteLine(param1);
                        Console.WriteLine(message);
                        MessagesList.Add(result);
                    }
                }
                else//wasn't meant  for this server
                {
                    //TODO make code to transmit command to target
                }
            }
            else
            {
                string CurrentTime = DateTime.Now.ToString("HH:mm:ss");
                Console.WriteLine("corrupted message received at " + CurrentTime);
            }
        }