Beispiel #1
0
        public void AddStudent(string StudentName, string Password)
        {
            sendType(DataType.AddStudent);

            sendString(StudentName);
            Thread.Sleep(3);

            if (Password.Equals(""))
            {
                Password = "******";
            }
            sendString(Password);

            Fel f = (Fel)GetInt();

            if (f == Fel.YES)
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
        }
Beispiel #2
0
        public int GetLastOrder()
        {
            int order = 0;

            sendType(DataType.GetLastOrder);

            Fel f = (Fel)GetInt();

            sendInt(3);
            if (f == Fel.NO)
            {
                order = GetInt();
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            Thread.Sleep(3);
            return(order);
        }
Beispiel #3
0
        public bool OrderExist(int OrderNr)
        {
            sendType(DataType.OrderExist);
            bool exist = false;

            GetInt();

            sendInt(OrderNr);



            Fel f = (Fel)GetInt();

            sendInt(3);
            if (f == Fel.NO)
            {
                exist = GetBool();
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
            return(exist);
        }
Beispiel #4
0
        public string[] GetStudent(string ElevNamn)
        {
            string[] student = new string[1];

            sendType(DataType.GetStudent);

            sendString(ElevNamn);

            Fel f = (Fel)GetInt();

            if (f == Fel.NO)
            {
                string DataString = GetString();

                student = DataString.Split('#');
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            return(student);
        }
Beispiel #5
0
 public static void WaitForDevice()
 {
     while (!Fel.DeviceExists())
     {
         Thread.Sleep(100);
     }
 }
Beispiel #6
0
        public string[] GetDataFromOrder(int ordNr)
        {
            sendType(DataType.GetDataFromOrder);
            GetInt();
            sendInt(ordNr);

            string[] Data = new string[7];



            Fel f = (Fel)GetInt();

            sendInt(3);
            if (f == Fel.NO)
            {
                string DataString = GetString();



                Data = DataString.Split('#');
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
            return(Data);
        }
Beispiel #7
0
        public byte[] ReadFlash(Fel fel, byte[] fes, byte[] uboot, UInt32 address, UInt32 length, string what = "NAND")
        {
            var size = length;

            size = (size + Fel.sector_size - 1) / Fel.sector_size;
            size = size * Fel.sector_size;

            long maxProgress = (size / 65536), progress = 0;

            var r = fel.ReadFlash(address, length,
                                  delegate(Fel.CurrentAction action, string command)
            {
                switch (action)
                {
                case Fel.CurrentAction.ReadingMemory:
                    SetStatus("Reading " + what);
                    break;
                }
                progress++;
                SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
            }
                                  );

            return(r);
        }
Beispiel #8
0
        public bool Check(string StudentName, string Password)
        {
            bool Finns = false;

            sendType(DataType.Check);

            sendString(StudentName);

            GetString();

            sendString(Password);

            Fel f = (Fel)GetInt();

            if (f == Fel.NO)
            {
                Finns = GetBool();
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return(Finns);
        }
Beispiel #9
0
        public void SetDataToOrder(int ordNr, string[] data, bool visa)
        {
            sendType(DataType.SetDataToOrder);
            sendInt(ordNr);
            string DataString = data[0].ToString();

            for (int i = 1; i < data.Length; i++)
            {
                DataString = DataString + '#' + data[i];
            }
            GetInt();
            sendString(DataString);


            Fel f = (Fel)GetInt();

            if (f == Fel.NO && visa)
            {
                MessageBox.Show("Datan har sparats :)", "Sparat", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (f == Fel.YES)
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
        }
Beispiel #10
0
        public string[] GetPlaces()
        {
            string[] Data = new string[0];

            sendType(DataType.GetPlaces);

            Fel f = (Fel)GetInt();

            sendInt(3);
            if (f == Fel.NO)
            {
                string DataString = GetString();

                if (!DataString.Equals("NO DATA"))
                {
                    Data = DataString.Split('#');
                }
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
            return(Data);
        }
Beispiel #11
0
 private void timer_Tick(object sender, EventArgs e)
 {
     if (Fel.DeviceExists(vid, pid))
     {
         DialogResult  = DialogResult.OK;
         timer.Enabled = false;
     }
 }
Beispiel #12
0
        public void StartThread()
        {
            fel = new Fel();
            SetProgress(0, 1);
            try
            {
                if (Task != Tasks.DownloadAllCovers)
                {
                    if (!File.Exists(fes1Path))
                    {
                        throw new FileNotFoundException(fes1Path + " not found");
                    }
                    if (!File.Exists(ubootPath))
                    {
                        throw new FileNotFoundException(ubootPath + " not found");
                    }
                    fel.Fes1Bin  = File.ReadAllBytes(fes1Path);
                    fel.UBootBin = File.ReadAllBytes(ubootPath);
                    fel.Open(vid, pid);
                    SetStatus(Resources.UploadingFes1);
                    fel.InitDram(true);
                }
                switch (Task)
                {
                case Tasks.DumpKernel:
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    FlashKernel();
                    break;

                case Tasks.Memboot:
                    Memboot();
                    break;

                case Tasks.DownloadAllCovers:
                    DownloadAllCovers();
                    break;
                }
                Thread.Sleep(1000);
                DialogResult = DialogResult.OK;
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
            }
        }
Beispiel #13
0
 private void timer_Tick(object sender, EventArgs e)
 {
     if (Fel.DeviceExists())
     {
         DialogResult  = DialogResult.OK;
         timer.Enabled = false;
         deviceFound   = true;
         Close();
     }
 }
Beispiel #14
0
 public static bool WaitForDevice(UInt16 vid, UInt16 pid)
 {
     if (!Fel.DeviceExists(vid, pid))
     {
         var form = new WaitingForm(vid, pid);
         form.ShowDialog();
         return(form.DialogResult == DialogResult.OK);
     }
     return(true);
 }
Beispiel #15
0
        public static bool WaitForDevice(UInt16 vid, UInt16 pid, IWin32Window owner)
        {
            if (Fel.DeviceExists(vid, pid))
            {
                return(true);
            }
            var form = new WaitingFelForm(vid, pid);

            form.ShowDialog(owner);
            return(form.DialogResult == DialogResult.OK);
        }
Beispiel #16
0
        public void StartThread()
        {
            fel          = new Fel();
            fel.Fes1Bin  = Resources.fes1;
            fel.UBootBin = Resources.uboot;
            SetProgress(0, 100);
            try
            {
                fel.Open(vid, pid);
                SetStatus(Resources.UploadingFes1);
                fel.InitDram(true);
                switch (Task)
                {
                case Tasks.DumpKernel:
                    SetText(Resources.DumpingKernel);
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    if (!string.IsNullOrEmpty(Mod))
                    {
                        SetText(Resources.FlasingCustom);
                    }
                    else
                    {
                        SetText(Resources.FlasingOriginal);
                    }
                    FlashKernel();
                    break;

                case Tasks.Memboot:
                    SetText(Resources.UploadingGames);
                    Memboot();
                    break;
                }
                Thread.Sleep(1000);
                DialogResult = DialogResult.OK;
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
            }
        }
Beispiel #17
0
        public void WriteFlash(Fel fel, byte[] fes, byte[] uboot, UInt32 address, byte[] data, bool verify = true, string what = "NAND")
        {
            var size = data.LongLength;

            size = (size + Fel.sector_size - 1) / Fel.sector_size;
            size = size * Fel.sector_size;
            if (data.LongLength != size)
            {
                var newData = new byte[size];
                Array.Copy(data, newData, data.Length);
                data = newData;
            }


            long maxProgress = (size / 65536) * (verify ? 2 : 1), progress = 0;

            // upload kernel through fel
            fel.WriteFlash(address, data,
                           delegate(Fel.CurrentAction action, string command)
            {
                switch (action)
                {
                case Fel.CurrentAction.WritingMemory:
                    SetStatus?.Invoke("Writing " + what);
                    break;
                }
                progress++;
                SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
            }
                           );

            if (verify)
            {
                var r = fel.ReadFlash((UInt32)Fel.kernel_base_f, (UInt32)data.LongLength,
                                      delegate(Fel.CurrentAction action, string command)
                {
                    switch (action)
                    {
                    case Fel.CurrentAction.ReadingMemory:
                        SetStatus("Reading " + what);
                        break;
                    }
                    progress++;
                    SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
                }
                                      );

                if (!data.SequenceEqual(r))
                {
                    throw new Exception("Verify failed for " + what);
                }
            }
        }
Beispiel #18
0
        public void StartThread()
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(ConfigIni.Language);
            SetProgress(0, 1);
            try
            {
                DialogResult = DialogResult.None;
                Debug.WriteLine("Executing task: " + Task.ToString());
                switch (Task)
                {
                case Tasks.DumpKernel:
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    FlashKernel();
                    break;

                case Tasks.UploadGames:
                    UploadGames();
                    break;

                case Tasks.Memboot:
                    Memboot();
                    break;

                case Tasks.DownloadAllCovers:
                    DownloadAllCovers();
                    break;
                }
                if (DialogResult == DialogResult.None)
                {
                    DialogResult = DialogResult.OK;
                }
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
                GC.Collect();
            }
        }
Beispiel #19
0
        public void WriteFlash(byte[] fes, byte[] uboot, UInt32 address, byte[] data, bool verify = true, string what = "NAND")
        {
            var fel = new Fel();

            fel.WriteLine += WriteLine;
            fel.Fes1Bin    = fes;
            fel.UBootBin   = uboot;
            if (!fel.Open())
            {
                throw new Exception("USB Device Not Found");
            }

            WriteFlash(fel, fes, uboot, address, data, verify, what);
        }
Beispiel #20
0
        public byte[] ReadFlash(byte[] fes, byte[] uboot, UInt32 address, UInt32 length, string what = "NAND")
        {
            var fel = new Fel();

            fel.WriteLine += WriteLine;
            fel.Fes1Bin    = fes;
            fel.UBootBin   = uboot;
            if (!fel.Open())
            {
                throw new Exception("USB Device Not Found");
            }

            return(ReadFlash(fel, fes, uboot, address, length, what));
        }
Beispiel #21
0
        public void RunCommand(byte[] fes, byte[] uboot, string command, bool noreturn = false)
        {
            var fel = new Fel();

            fel.WriteLine += WriteLine;
            fel.Fes1Bin    = fes;
            fel.UBootBin   = uboot;
            if (!fel.Open())
            {
                throw new Exception("USB Device Not Found");
            }

            RunCommand(fel, command, noreturn);
        }
Beispiel #22
0
 private void WaitingForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (!Fel.DeviceExists(vid, pid))
     {
         if (Tasks.MessageForm.Show(Resources.AreYouSure, Resources.DoYouWantCancel, Resources.sign_warning, new Tasks.MessageForm.Button[] { Tasks.MessageForm.Button.Yes, Tasks.MessageForm.Button.No }, Tasks.MessageForm.DefaultButton.Button2) == Tasks.MessageForm.Button.No)
         {
             e.Cancel = true;
         }
         else
         {
             DialogResult = DialogResult.Abort;
         }
     }
 }
Beispiel #23
0
 private void WaitingForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (!Fel.DeviceExists(vid, pid))
     {
         if (MessageBox.Show(this, Resources.DoYouWantCancel, Resources.AreYouSure, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
             == System.Windows.Forms.DialogResult.No)
         {
             e.Cancel = true;
         }
         else
         {
             DialogResult = DialogResult.Abort;
         }
     }
 }
Beispiel #24
0
 static bool DeviceExists(UInt16 vid, UInt16 pid)
 {
     try
     {
         using (var fel = new Fel())
         {
             fel.Open(vid, pid);
             return(true);
         }
     }
     catch
     {
         return(false);
     }
 }
Beispiel #25
0
        public void Memboot(byte[] fes, byte[] uboot, byte[] bootImage, Fel.WriteLineHandler writeLineHandler = null)
        {
            var fel = new Fel();

            fel.WriteLine += WriteLine;
            fel.Fes1Bin    = fes;
            fel.UBootBin   = uboot;
            if (!fel.Open())
            {
                throw new Exception("USB Device Not Found");
            }

            var size = CalcKernelSize(bootImage);

            if (size > bootImage.Length || size > Fel.transfer_max_size)
            {
                throw new Exception($"Invalid boot image size: {size}");
            }
            size = (size + Fel.sector_size - 1) / Fel.sector_size;
            size = size * Fel.sector_size;
            if (bootImage.Length != size)
            {
                var newK = new byte[size];
                Array.Copy(bootImage, newK, bootImage.Length);
                bootImage = newK;
            }

            long maxProgress = size / 65536, progress = 0;

            // upload kernel through fel
            fel.WriteMemory(Fel.transfer_base_m, bootImage,
                            delegate(Fel.CurrentAction action, string command)
            {
                switch (action)
                {
                case Fel.CurrentAction.WritingMemory:
                    SetStatus?.Invoke("Uploading boot image");
                    break;
                }
                progress++;
                SetProgress?.Invoke(Math.Min(progress, maxProgress), maxProgress);
            }
                            );

            var bootCommand = string.Format("boota {0:x}", Fel.transfer_base_m);

            RunCommand(fel, bootCommand, true);
        }
Beispiel #26
0
        public void StartThread()
        {
            fel = new Fel();
            try
            {
                fel.Open(vid, pid);
                switch (Task)
                {
                case Tasks.DumpKernel:
                    SetText(Resources.DumpingKernel);
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    if (!string.IsNullOrEmpty(Mod))
                    {
                        SetText(Resources.FlasingCustom);
                    }
                    else
                    {
                        SetText(Resources.FlasingOriginal);
                    }
                    FlashKernel();
                    break;

                case Tasks.Memboot:
                    SetText(Resources.UploadingGames);
                    Memboot();
                    break;
                }
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
            }
        }
Beispiel #27
0
        public void StartThread()
        {
            SetProgress(0, 1);
            try
            {
                switch (Task)
                {
                case Tasks.DumpKernel:
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    FlashKernel();
                    break;

                case Tasks.Memboot:
                    Memboot();
                    break;

                case Tasks.DownloadAllCovers:
                    DownloadAllCovers();
                    break;

                case Tasks.AddGames:
                    AddGames(GamesToAdd);
                    break;
                }
                Thread.Sleep(1000);
                DialogResult = DialogResult.OK;
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
            }
            GC.Collect();
        }
Beispiel #28
0
        public string[,] GetAllOrder()
        {
            sendType(DataType.GetAllOrder);

            string[,] Data = new string[0, 7];

            Fel f = (Fel)GetInt();

            if (f == Fel.NO)
            {
                string DataString = GetString();

                if (!DataString.Equals("NO DATA"))
                {
                    string[] Ydata = DataString.Split('#');


                    Data = new string[Ydata.Length, 7];
                    for (int i = 0; i < Ydata.Length; i++)
                    {
                        string[] Xdata = Ydata[i].Split('?');



                        Data[i, 0] = Xdata[0];
                        Data[i, 1] = Xdata[1];
                        Data[i, 2] = Xdata[2];
                        Data[i, 3] = Xdata[3];
                        Data[i, 4] = Xdata[4];
                        Data[i, 5] = Xdata[5];
                        Data[i, 6] = Xdata[6];
                    }
                }
            }
            else
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
            return(Data);
        }
Beispiel #29
0
        public void StartThread()
        {
            fel          = new Fel();
            fel.Fes1Bin  = Resources.fes1;
            fel.UBootBin = Resources.uboot;
            SetProgress(0, 100);
            try
            {
                fel.Open(vid, pid);
                SetStatus(Resources.UploadingFes1);
                fel.InitDram(true);
                switch (Task)
                {
                case Tasks.DumpKernel:
                    DoKernelDump();
                    break;

                case Tasks.FlashKernel:
                    FlashKernel();
                    break;

                case Tasks.Memboot:
                    Memboot();
                    break;
                }
                Thread.Sleep(1000);
                DialogResult = DialogResult.OK;
            }
            catch (ThreadAbortException) { }
            catch (Exception ex)
            {
                ShowError(ex);
            }
            finally
            {
                thread = null;
                if (fel != null)
                {
                    fel.Close();
                    fel = null;
                }
            }
        }
Beispiel #30
0
        public void AddPlace(string place)
        {
            sendType(DataType.AddPlace);

            sendString(place);
            Thread.Sleep(3);


            Fel f = (Fel)GetInt();

            if (f == Fel.YES)
            {
                if (connected)
                {
                    string felMedelande = GetString();
                    MessageBox.Show(felMedelande, "Fel", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            Thread.Sleep(3);
        }