示例#1
0
        protected void messageReceived(ConnectionEventArgs a)
        {
            PUC.Communication.Message msg = a.GetMessage();

            if (msg is DeviceSpec)
            {
                DeviceSpec dmsg = (DeviceSpec)msg;

                Appliance appl = new Appliance(this);

#if POCKETPC
                Globals.AddFrameMapping(appl, PUCFrame.DEFAULT_FRAME);
#endif
#if SMARTPHONE
                Globals.AddFrameMapping(appl, PhonePUC.PUCFrame.DEFAULT_FRAME);
#endif
#if DESKTOP && !DEBUGSVR
                // TODO: Make DesktopPUC use multiple windows, like Debug Server
                Globals.AddFrameMapping(appl, DesktopPUC.PUCFrame.DEFAULT_FRAME);
#endif

                try
                {
                    SpecParser.Parse(new StringReader(dmsg.GetSpec()), appl);

                    MenuItem mi = new MenuItem();
                    mi.Text = appl.Name;
                    appl.SetMenuItem(mi);

                    _server.ActivateAppliance(this, appl);

                    Cursor.Current = Cursors.Default;

                    _connection.MessageReceivedEvent    -= new Connection.MessageReceivedHandler(this.messageReceived);
                    _connection.ConnectionRegainedEvent -= new Connection.ConnectionRegainedHandler(this.connectionRegained);
                    _connection.ConnectionLostEvent     += new Connection.ConnectionLostHandler(appl.ConnectionLost);
                    _connection.MessageReceivedEvent    += new Connection.MessageReceivedHandler(appl.MessageReceived);
                    _connection.ConnectionRegainedEvent += new Connection.ConnectionRegainedHandler(appl.ConnectionRegained);

                    FullStateRequest fsrMsg = new FullStateRequest();
                    _connection.Send(fsrMsg);
                }
                catch (Exception e)
                {
                    Globals.GetFrame(appl).AddLogLine(e.ToString());
                    Cursor.Current = Cursors.Default;
                }
            }
        }
示例#2
0
        public bool LoadFormFile(string filePath)
        {
            if (File.Exists(filePath))
            {
                StreamReader file = new StreamReader(filePath);
                //Read first line to check format
                string line = file.ReadLine();
                if (line.Split(',').Length != 11)
                {
                    return(false);
                }

                while ((line = file.ReadLine()) != null)
                {
                    string[] lines = line.Split(',');
                    if (lines.Length != 11)
                    {
                        Console.WriteLine("ERROR!: {0}", line);
                        continue;
                    }
                    string manufac     = lines[0];
                    string modelname   = lines[1];
                    string devicename  = lines[2];
                    string modelcode   = lines[3];
                    string gpu         = lines[4];
                    string formfactor  = lines[5];
                    string sysonchip   = lines[6];
                    string totalmem    = lines[7];
                    string abis        = lines[8];
                    string glesversion = lines[9];
                    string sdk         = lines[10];

                    DeviceSpec deviceSpec = new DeviceSpec
                    {
                        GPU          = gpu,
                        FormFactor   = formfactor,
                        SystemOnChip = sysonchip,
                        TotalMem     = totalmem,
                        ABIs         = abis,
                        OpenGLESVer  = glesversion,
                        SDKs         = sdk
                    };

                    ModelCode modelCode = new ModelCode
                    {
                        Name = modelcode,
                        Spec = deviceSpec
                    };

                    DeviceName deviceName = new DeviceName
                    {
                        Name       = devicename,
                        ModelCodes = new List <ModelCode> {
                            modelCode
                        }
                    };

                    ModelName modelName = new ModelName
                    {
                        Name        = modelname,
                        DeviceNames = new List <DeviceName> {
                            deviceName
                        }
                    };
                    // find manufac
                    if (Manufacturers.Any(x => x.Name == manufac))
                    {
                        Manufacturer Manufac = Manufacturers.First(x => x.Name == manufac);
                        if (!Manufac.Add(modelName))
                        {
                            Console.WriteLine("Warning!: Duplicate device {0}", line);
                            Console.WriteLine("Warning!: at Manufacturers[{0}]", line, Manufacturers.IndexOf(Manufac));
                        }
                    }
                    else
                    {
                        Manufacturer newManufac = new Manufacturer
                        {
                            Name       = manufac,
                            ModelNames = new List <ModelName> {
                                modelName
                            }
                        };
                        Manufacturers.Add(newManufac);
                    }
                }
            }
            return(false);
        }