Ejemplo n.º 1
0
 public void SetPredicting(UserClient client)
 {
     client.SetID(-1);
     client.SetUsername(UniqueName());
     client.SetPass("");
     client.SetLearning(false);
     AddToPredicting(client);
 }
Ejemplo n.º 2
0
 public void DisconnectClient(UserClient client)
 {
     clients.Remove(client);
     learningClients.Remove(client);
     predictingClients.Remove(client);
     proctor.needsUpdate = true;
     client.Disconnect();
 }
Ejemplo n.º 3
0
        public UserClient GetUserInfo(String name, String pass)
        {
            UserClient answer = new UserClient();

            UserDBDataSetWorkerTableAdapters.UserClientTableAdapter adapter = new UserDBDataSetWorkerTableAdapters.UserClientTableAdapter();
            answer.SetID((int)adapter.GetUserID(name, pass));
            answer.SetUsername(name);
            answer.SetPass(pass);
            return(answer);
        }
Ejemplo n.º 4
0
        public void SetLearning(UserClient target, String name, String pass, int userID)
        {
            UserClient temp = GetClientByName(target.GetName());

            temp.SetPass(pass);
            temp.SetID(userID);
            temp.SetUsername(name);
            temp.SetLearning(true);
            AddToLearning(temp);
        }
 private void setPredictingBtn_Click(object sender, EventArgs e)
 {
     if (activeClientsLstView.FocusedItem != null)
     {
         UserClient temp = proctor.GetConnection().GetClientByName(activeClientsLstView.FocusedItem.Text);
         if (temp != null)
         {
             proctor.GetConnection().SetPredicting(temp);
         }
     }
     Populate();
 }
Ejemplo n.º 6
0
        public UserClient GetClientByName(String name)
        {
            UserClient answer = null;

            foreach (UserClient client in clients)
            {
                if (client.GetName() == name)
                {
                    answer = client;
                }
            }
            return(answer);
        }
 private void setLearningBtn_Click(object sender, EventArgs e)
 {
     if (activeClientsLstView.FocusedItem != null)
     {
         UserClient temp = proctor.GetConnection().GetClientByName(activeClientsLstView.FocusedItem.Text);
         if (temp != null)
         {
             loginWnd = new LoginWnd(this, temp);
             loginWnd.Show();
         }
     }
     Populate();
 }
Ejemplo n.º 8
0
 public UserData()
 {
     dataSet = new UserDBDataSetWorker();
     UserClient testclient = new UserClient();
     //testclient.SetUsername("Clay");
     //testclient.SetPass("Simons");
     //List<KeyData.KeyEntry> testdata = new List<KeyData.KeyEntry>();
     //testdata.Add(new KeyData.KeyEntry((Byte)'h', 12345, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'e', 12355, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'l', 12375, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'l', 12395, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'o', 12595, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)' ', 12745, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)' ', 12755, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'t', 12765, "type"));
     //testdata.Add(new KeyData.KeyEntry((Byte)'o', 12775, "type"));
     //SaveData(testclient, testdata);
 }
Ejemplo n.º 9
0
 public void Run()
 {
     try
     {
         server.Start();
         connected = true;
         while (connected)
         {
             UserClient client = new UserClient(server.AcceptTcpClient(), proctor, this);
             clients.Add(client);
             predictingClients.Add(client);
             proctor.needsUpdate = true;
         }
     }
     catch (Exception e)
     {
     }
 }
Ejemplo n.º 10
0
 public void SaveData(UserClient client, List <KeyData.KeyEntry> data)
 {
     bool GotHere = database.SaveData(client, data);
 }
Ejemplo n.º 11
0
        private KeyValuePair <int, double> predict(UserClient client)
        {
            KeyValuePair <int, double>         answer;
            List <KeyValuePair <int, double> > answerlist = new List <KeyValuePair <int, double> >(), meanAnswerList = new List <KeyValuePair <int, double> >(),
                                               medianAnswerList = new List <KeyValuePair <int, double> >();
            double          likeness = 0, meanLikeness = 0, medianLikeness = 0;
            List <WordData> predictionData = ToWords(client.GetPredictionData());

            if (predictionData.Count > 0)
            {
                UserDBDataSetWorkerTableAdapters.UserClientTableAdapter userAdapt = new UserDBDataSetWorkerTableAdapters.UserClientTableAdapter();
                UserDBDataSetWorker.UserClientDataTable userTable = userAdapt.GetUserClientData();
                foreach (UserDBDataSetWorker.UserClientRow userRow in userTable)
                {
                    int count = 0;
                    foreach (WordData word in predictionData)
                    {
                        UserDBDataSetWorkerTableAdapters.WordDataTableAdapter wordAdapt = new UserDBDataSetWorkerTableAdapters.WordDataTableAdapter();
                        UserDBDataSetWorker.WordDataDataTable wordTable = wordAdapt.GetDataByUserIDandWord(userRow.UserID, word.GetWord());
                        if (wordTable.Count > 0)
                        {
                            List <WordData> wordList = new List <WordData>();
                            foreach (UserDBDataSetWorker.WordDataRow wordRow in wordTable)
                            {
                                UserDBDataSetWorkerTableAdapters.TimingTableAdapter timeAdapt = new UserDBDataSetWorkerTableAdapters.TimingTableAdapter();
                                UserDBDataSetWorker.TimingDataTable timeTable = timeAdapt.GetDataByWordID(wordRow.WordID);
                                if (timeTable.Count > 0)
                                {
                                    int[] timing = new int[timeTable.Count];
                                    for (int i = 0; i < timeTable.Count; i++)
                                    {
                                        timing[i] = timeTable[i].Timing;
                                    }
                                    WordData learnedWord = new WordData(wordRow.Word, timing, userRow.UserID);
                                    double   comp        = Compare(word, learnedWord);
                                    if (comp > 0)
                                    {
                                        likeness += Compare(word, learnedWord);
                                        count++;
                                    }
                                    wordList.Add(learnedWord);
                                }
                            }
                            if (word.GetTiming().Length > 0)
                            {
                                meanLikeness   = MeanCompare(word, wordList);
                                medianLikeness = MedianCompare(word, wordList);
                            }
                            //meanaverage
                        }
                    }
                    likeness /= count;
                    answerlist.Add(new KeyValuePair <int, double>(userRow.UserID, likeness));
                    meanAnswerList.Add(new KeyValuePair <int, double>(userRow.UserID, meanLikeness));
                    medianAnswerList.Add(new KeyValuePair <int, double>(userRow.UserID, medianLikeness));
                    meanAList   = meanAnswerList;
                    medianAList = medianAnswerList;
                    bool problem;
                    if (likeness > 1)
                    {
                        problem = true;
                    }
                    likeness = 0;
                    count    = 0;
                }
            }
            if (answerlist.Count > 1)
            {
                switch (predictionMode)
                {
                case 0:                            //compare
                    answer = MaxValue(answerlist); //most probable prediction
                    break;

                case 1:                                //mean
                    answer = MaxValue(meanAnswerList); //most probable prediction
                    break;

                default:
                case 2:                                  //median
                    answer = MaxValue(medianAnswerList); //most probable prediction
                    break;
                }
            }
            else
            {
                answer = new KeyValuePair <int, double>(0, 0);
            }
            return(answer);
        }
Ejemplo n.º 12
0
        public bool SaveData(UserClient client, List <KeyData.KeyEntry> data)
        {
            WordInsert        Data = new WordInsert();
            List <WordInsert> words = new List <WordInsert>();
            String            PKBT, CKBT;//Previous and current keyboard type

            PKBT = data[0].keyboardType;
            List <UserDBDataSetWorker.TimingRow> timingEntries = new List <UserDBDataSetWorker.TimingRow>();
            int Ptime = Ptime = 0, Ctime = 0;

            Data.word = "";
            foreach (KeyData.KeyEntry entry in data)//extract data from parameter data
            {
                UserDBDataSetWorker.TimingRow timingEntry = dataSet.Timing.NewTimingRow();
                Ctime = entry.time;
                timingEntry.Timing = Ctime - Ptime;
                CKBT = entry.keyboardType;
                if (entry.keyValue == ':' || entry.keyValue == ',' || entry.keyValue == ' ')
                {
                    if (Data.word != "")
                    {
                        Data.KeyboardType = keyToInt(CKBT);
                        Data.UserID       = GetUserClientID(client.GetName(), client.GetPass());
                        words.Add(Data);
                    }
                    Data      = new WordInsert();
                    Data.word = "";
                    Ctime     = 0;
                }
                else if (CKBT != PKBT)
                {
                    if (Data.word != "")
                    {
                        Data.KeyboardType = keyToInt(CKBT);
                        Data.UserID       = GetUserClientID(client.GetName(), client.GetPass());
                        words.Add(Data);
                    }
                    Data       = new WordInsert();
                    Data.word  = "";
                    Ctime      = 0;
                    Data.word += entry.keyValue.ToString();
                }
                else
                {
                    Data.word += (char)entry.keyValue;
                    if (timingEntry.Timing != Ctime)
                    {
                        timingEntries.Add(timingEntry);
                    }
                }
                Ptime = Ctime;
                PKBT  = CKBT;
            }
            //Get straggling data.
            Data.KeyboardType = keyToInt(data[data.Count - 1].keyboardType);
            Data.UserID       = GetUserClientID(client.GetName(), client.GetPass());
            words.Add(Data);

            foreach (WordInsert word in words)//enter words
            {
                UserDBDataSetWorkerTableAdapters.WordDataTableAdapter adapter = new UserDBDataSetWorkerTableAdapters.WordDataTableAdapter();
                int test1 = GetUserClientID(client.GetName(), client.GetPass());
                adapter.WordInsert(test1, word.word, word.KeyboardType);
                int test = GetLatestWordID();
                for (int i = 1; i < word.word.Length; i++)//enter timing for words
                {
                    UserDBDataSetWorkerTableAdapters.TimingTableAdapter timeAdapter = new UserDBDataSetWorkerTableAdapters.TimingTableAdapter();
                    timeAdapter.TimingInsert(GetLatestWordID(), timingEntries[i].Timing, i);
                }
            }
            return(true);
        }
Ejemplo n.º 13
0
 public void AddToPredicting(UserClient client)
 {
     predictingClients.Add(client);
     learningClients.Remove(client);
 }
Ejemplo n.º 14
0
 public LoginWnd(ActiveClientsWnd p, UserClient t)
 {
     parent = p;
     target = t;
     InitializeComponent();
 }
Ejemplo n.º 15
0
        private void HandleMessage(string[] msg)
        {
            switch (msg[0])
            {
            case "Username":
                SetUsername(msg[1]);
                break;

            case "Password":
                SetPass(msg[1]);
                parent.AddToLearning(this);
                break;

            case "CheckCredentials":
                if (proctor.CheckCredentials(msg[1], msg[2]))
                {
                    streamWriter.WriteLine("Response,true");
                    UserClient temp = proctor.GetUserInfo(msg[1], msg[2]);
                    userName = temp.userName;
                    password = temp.password;
                    userID   = temp.userID;
                }
                else
                {
                    streamWriter.WriteLine("Response,false");
                }
                streamWriter.Flush();
                break;

            case "RegisterCredentials":
                if (proctor.RegisterCredentials(msg[1], msg[2]))
                {
                    streamWriter.WriteLine("Response,true");
                    UserClient temp = proctor.GetUserInfo(msg[1], msg[2]);
                    userName = temp.userName;
                    password = temp.password;
                    userID   = temp.userID;
                }
                else
                {
                    streamWriter.WriteLine("Response,false");
                }
                streamWriter.Flush();

                break;

            case "Data":
                DataCollection();
                break;

            case "Learning":
                learning = true;
                parent.AddToLearning(this);
                break;

            case "Disconnect":
                parent.DisconnectClient(this);
                break;

            default:
                break;
            }
        }