// The mainboard constructor gets called before anything else in Gadgeteer (module constructors, etc),
        // so it can set up fields in Gadgeteer.dll specifying socket types supported, etc.

        /// <summary>
        /// Instantiates a new GR Sakura IoT Kit mainboard
        /// </summary>
        public GR_Sakura_IoT_Kit()
        {
            // comment the following if you do not support NativeI2C for faster DaisyLink performance
            // otherwise, the DaisyLink I2C interface will be supported in Gadgeteer.dll in managed code.
            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            // For each socket on the mainboard, create, configure and register a Socket object with Gadgeteer.dll
            // This specifies:
            // - the SupportedTypes character array matching the list on the mainboard
            // - the CpuPins array (indexes [3] to [9].  [1,2,10] are constant (3.3V, 5V, GND) and [0] is unused.  This is normally based on an enumeration supplied in the NETMF port used.
            // - for other functionality, e.g. UART, SPI, etc, properties in the Socket class are set as appropriate to enable Gadgeteer.dll to access this functionality.
            // See the Mainboard Builder's Guide and specifically the Socket Types specification for more details
            // The two examples below are not realistically implementable sockets, but illustrate how to initialize a wide range of socket functionality.

            // This example socket 1 supports many types
            // Type 'D' - no additional action
            // Type 'I' - I2C pins must be used for the correct CpuPins
            // Type 'K' and 'U' - UART pins and UART handshaking pins must be used for the correct CpuPins, and the SerialPortName property must be set.
            // Type 'S' - SPI pins must be used for the correct CpuPins, and the SPIModule property must be set
            // Type 'X' - the I2CBusIndirector is set (though by default "nativeI2C" is null)
            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes   = new char[] { 'D', 'I', 'K', 'S', 'U', 'X' };
            socket.CpuPins[3]       = (Cpu.Pin) 1;
            socket.CpuPins[4]       = (Cpu.Pin) 52;
            socket.CpuPins[5]       = (Cpu.Pin) 23;
            socket.CpuPins[6]       = (Cpu.Pin) 12;
            socket.CpuPins[7]       = (Cpu.Pin) 34;
            socket.CpuPins[8]       = (Cpu.Pin) 5;
            socket.CpuPins[9]       = (Cpu.Pin) 7;
            socket.I2CBusIndirector = nativeI2C;
            socket.SerialPortName   = "COM1";
            socket.SPIModule        = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            // This example socket 2 supports many types
            // Type 'A' - AnalogInput3-5 properties are set and GT.Socket.SocketInterfaces.SetAnalogInputFactors call is made
            // Type 'O' - AnalogOutput property is set
            // Type 'P' - PWM7-9 properties are set
            // Type 'Y' - the NativeI2CWriteRead function pointer is set (though by default "nativeI2C" is null)
            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'A', 'O', 'P', 'Y' };
            socket.CpuPins[3]     = (Cpu.Pin) 11;
            socket.CpuPins[4]     = (Cpu.Pin) 5;
            socket.CpuPins[5]     = (Cpu.Pin) 3;
            socket.CpuPins[6]     = (Cpu.Pin) 66;
            // Pin 7 not connected on this socket, so it is left unspecified
            socket.CpuPins[8]    = (Cpu.Pin) 59;
            socket.CpuPins[9]    = (Cpu.Pin) 18;
            socket.AnalogOutput5 = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 1, 2, 10);
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_2;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_1;
            socket.PWM7             = Cpu.PWMChannel.PWM_3;
            socket.PWM8             = Cpu.PWMChannel.PWM_0;
            socket.PWM9             = Cpu.PWMChannel.PWM_2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 2
0
        /// <summary>Constructs a new instance.</summary>
        public FEZCobraIIEco()
        {
            this.ldr0                = null;
            this.ldr1                = null;
            this.debugLed            = null;
            this.storageDevices      = new IRemovable[2];
            this.sdCardStorageDevice = null;

            RemovableMedia.Insert += this.OnInsert;
            RemovableMedia.Eject  += this.OnEject;

            Controller.MouseConnected += (a, b) => {
                this.connectedMouse = b;
                this.OnMouseConnected(this, b);

                b.Disconnected += (c, d) => this.connectedMouse = null;
            };

            Controller.KeyboardConnected += (a, b) => {
                this.connectedKeyboard = b;
                this.OnKeyboardConnected(this, b);

                b.Disconnected += (c, d) => this.connectedKeyboard = null;
            };

            Controller.MassStorageConnected += (a, b) => {
                this.IsMassStorageConnected = true;

                this.MountStorageDevice("USB");

                b.Disconnected += (c, d) => {
                    this.IsMassStorageConnected = false;

                    if (this.IsMassStorageMounted)
                    {
                        this.UnmountStorageDevice("USB");
                    }
                };
            };

            this.IsSDCardMounted        = false;
            this.IsMassStorageConnected = false;
            this.IsMassStorageMounted   = false;

            this.sdCardDetect = new InputPort(G120.P1_8, false, Port.ResistorMode.PullUp);

            if (this.IsSDCardInserted)
            {
                this.MountStorageDevice("SD");
            }

            Controller.Start();

            this.NativeBitmapConverter = this.BitmapConverter;

            #region Sockets
            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes   = new char[] { 'B', 'Y' };
            socket.CpuPins[3]       = G120.P2_13;
            socket.CpuPins[4]       = G120.P1_26;
            socket.CpuPins[5]       = G120.P1_27;
            socket.CpuPins[6]       = G120.P1_28;
            socket.CpuPins[7]       = G120.P1_29;
            socket.CpuPins[8]       = G120.P2_4;
            socket.CpuPins[9]       = G120.P2_2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'G' };
            socket.CpuPins[3]     = G120.P1_20;
            socket.CpuPins[4]     = G120.P1_21;
            socket.CpuPins[5]     = G120.P1_22;
            socket.CpuPins[6]     = G120.P1_23;
            socket.CpuPins[7]     = G120.P1_24;
            socket.CpuPins[8]     = G120.P1_25;
            socket.CpuPins[9]     = G120.P1_19;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes   = new char[] { 'R', 'Y' };
            socket.CpuPins[3]       = G120.P2_12;
            socket.CpuPins[4]       = G120.P2_6;
            socket.CpuPins[5]       = G120.P2_7;
            socket.CpuPins[6]       = G120.P2_8;
            socket.CpuPins[7]       = G120.P2_9;
            socket.CpuPins[8]       = G120.P2_3;
            socket.CpuPins[9]       = G120.P2_5;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes = new char[] { 'A', 'I', 'T', 'X' };
            socket.CpuPins[3]     = G120.P0_25;
            socket.CpuPins[4]     = G120.P0_24;
            socket.CpuPins[5]     = G120.P0_23;
            socket.CpuPins[6]     = G120.P1_0;
            socket.CpuPins[7]     = G120.P1_1;
            socket.CpuPins[8]     = G120.P0_27;
            socket.CpuPins[9]     = G120.P0_28;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_2;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'U', 'X' };
            socket.CpuPins[3]     = G120.P0_13;
            socket.CpuPins[4]     = G120.P0_2;
            socket.CpuPins[5]     = G120.P0_3;
            socket.CpuPins[6]     = G120.P1_4;
            socket.SerialPortName = "COM1";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'S', 'X' };
            socket.CpuPins[3]     = G120.P2_21;
            socket.CpuPins[4]     = G120.P1_14;
            socket.CpuPins[5]     = G120.P1_16;
            socket.CpuPins[6]     = G120.P1_17;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            socket.SPIModule      = SPI.SPI_module.SPI2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            #endregion Sockets
        }
Exemplo n.º 3
0
        /// <summary>Constructs a new instance.</summary>
        public FEZSpider()
        {
            if ((DeviceType)SystemInfo.SystemID.Model != DeviceType.EMX)
            {
                throw new InvalidOperationException("You have selected the wrong mainboard in the designer. Please double check your mainboard.");
            }

            this.debugLed       = null;
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            this.NativeBitmapConverter = this.BitmapConverter;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'D', 'I' };
            socket.CpuPins[3]     = EMX.IO21;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = EMX.IO19;
            socket.CpuPins[7]     = EMX.IO75;
            socket.CpuPins[8]     = EMX.IO12;
            socket.CpuPins[9]     = EMX.IO11;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'Z' };
            socket.CpuPins[3]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'H', 'I' };
            socket.CpuPins[3]     = EMX.IO1;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = EMX.IO0;
            socket.CpuPins[8]     = EMX.IO12;
            socket.CpuPins[9]     = EMX.IO11;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes = new char[] { 'I', 'K', 'U', 'X' };
            socket.CpuPins[3]     = EMX.IO33;
            socket.CpuPins[4]     = EMX.IO37;
            socket.CpuPins[5]     = EMX.IO32;
            socket.CpuPins[6]     = EMX.IO31;
            socket.CpuPins[7]     = EMX.IO34;
            socket.CpuPins[8]     = EMX.IO12;
            socket.CpuPins[9]     = EMX.IO11;
            socket.SerialPortName = "COM2";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = EMX.IO23;
            socket.CpuPins[4]       = EMX.IO43;
            socket.CpuPins[5]       = EMX.IO41;
            socket.CpuPins[6]       = EMX.IO44;
            socket.CpuPins[7]       = EMX.IO40;
            socket.CpuPins[8]       = EMX.IO39;
            socket.CpuPins[9]       = EMX.IO42;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes   = new char[] { 'C', 'S', 'Y' };
            socket.CpuPins[3]       = EMX.IO18;
            socket.CpuPins[4]       = EMX.IO20;
            socket.CpuPins[5]       = EMX.IO22;
            socket.CpuPins[6]       = EMX.IO10;
            socket.CpuPins[7]       = EMX.IO36;
            socket.CpuPins[8]       = EMX.IO38;
            socket.CpuPins[9]       = EMX.IO35;
            socket.I2CBusIndirector = nativeI2C;
            socket.SPIModule        = SPI.SPI_module.SPI2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes = new char[] { 'E' };
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = EMX.IO30;
            socket.CpuPins[4]       = EMX.IO29;
            socket.CpuPins[5]       = EMX.IO28;
            socket.CpuPins[6]       = EMX.IO16;
            socket.CpuPins[7]       = EMX.IO74;
            socket.CpuPins[8]       = EMX.IO48;
            socket.CpuPins[9]       = EMX.IO49;
            socket.SerialPortName   = "COM3";
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_5;
            socket.PWM8             = Cpu.PWMChannel.PWM_4;
            socket.PWM9             = Cpu.PWMChannel.PWM_3;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(9);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'S', 'U', 'Y' };
            socket.CpuPins[3]       = EMX.IO46;
            socket.CpuPins[4]       = EMX.IO6;
            socket.CpuPins[5]       = EMX.IO7;
            socket.CpuPins[6]       = EMX.IO15;
            socket.CpuPins[7]       = EMX.IO24;
            socket.CpuPins[8]       = EMX.IO25;
            socket.CpuPins[9]       = EMX.IO27;
            socket.SerialPortName   = "COM4";
            socket.I2CBusIndirector = nativeI2C;
            socket.SPIModule        = SPI.SPI_module.SPI1;
            socket.AnalogOutput5    = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_7;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_2;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_3;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(10);
            socket.SupportedTypes = new char[] { 'A', 'I', 'T', 'X' };
            socket.CpuPins[3]     = EMX.IO45;
            socket.CpuPins[4]     = EMX.IO5;
            socket.CpuPins[5]     = EMX.IO8;
            socket.CpuPins[6]     = EMX.IO73;
            socket.CpuPins[7]     = EMX.IO72;
            socket.CpuPins[8]     = EMX.IO12;
            socket.CpuPins[9]     = EMX.IO11;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_6;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(11);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = EMX.IO26;
            socket.CpuPins[4]       = EMX.IO3;
            socket.CpuPins[5]       = EMX.IO2;
            socket.CpuPins[6]       = EMX.IO9;
            socket.CpuPins[7]       = EMX.IO14;
            socket.CpuPins[8]       = EMX.IO13;
            socket.CpuPins[9]       = EMX.IO50;
            socket.SerialPortName   = "COM1";
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_1;
            socket.PWM8             = Cpu.PWMChannel.PWM_0;
            socket.PWM9             = Cpu.PWMChannel.PWM_2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(12);
            socket.SupportedTypes   = new char[] { 'B', 'Y' };
            socket.CpuPins[3]       = EMX.IO70;
            socket.CpuPins[4]       = EMX.IO57;
            socket.CpuPins[5]       = EMX.IO58;
            socket.CpuPins[6]       = EMX.IO59;
            socket.CpuPins[7]       = EMX.IO60;
            socket.CpuPins[8]       = EMX.IO63;
            socket.CpuPins[9]       = EMX.IO61;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(13);
            socket.SupportedTypes = new char[] { 'G' };
            socket.CpuPins[3]     = EMX.IO51;
            socket.CpuPins[4]     = EMX.IO52;
            socket.CpuPins[5]     = EMX.IO53;
            socket.CpuPins[6]     = EMX.IO54;
            socket.CpuPins[7]     = EMX.IO55;
            socket.CpuPins[8]     = EMX.IO56;
            socket.CpuPins[9]     = EMX.IO17;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(14);
            socket.SupportedTypes   = new char[] { 'R', 'Y' };
            socket.CpuPins[3]       = EMX.IO69;
            socket.CpuPins[4]       = EMX.IO65;
            socket.CpuPins[5]       = EMX.IO66;
            socket.CpuPins[6]       = EMX.IO67;
            socket.CpuPins[7]       = EMX.IO68;
            socket.CpuPins[8]       = EMX.IO62;
            socket.CpuPins[9]       = EMX.IO64;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Instantiates a new FEZCerbot mainboard
        /// </summary>
        public FEZCerbot()
        {
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            // comment the following if you do not support NativeI2C for faster DaisyLink performance
            // otherwise, the DaisyLink I2C interface will be supported in Gadgeteer.dll in managed code.
            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'F', 'Y' };

            socket.CpuPins[3] = Generic.GetPin('B', 15);
            socket.CpuPins[4] = Generic.GetPin('C', 8);
            socket.CpuPins[5] = Generic.GetPin('C', 9);
            socket.CpuPins[6] = Generic.GetPin('D', 2);
            socket.CpuPins[7] = Generic.GetPin('C', 10);
            socket.CpuPins[8] = Generic.GetPin('C', 11);
            socket.CpuPins[9] = Generic.GetPin('C', 12);


            GT.Socket.SocketInterfaces.RegisterSocket(socket);


            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'I', 'X' };
            socket.CpuPins[3]     = Generic.GetPin('C', 5);
            socket.CpuPins[4]     = Generic.GetPin('A', 10);
            socket.CpuPins[5]     = Generic.GetPin('B', 12);
            socket.CpuPins[6]     = Generic.GetPin('C', 7);
            socket.CpuPins[8]     = Generic.GetPin('B', 7);
            socket.CpuPins[9]     = Generic.GetPin('B', 6);

            GT.Socket.SocketInterfaces.RegisterSocket(socket);


            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'U', 'S', 'X' };
            socket.CpuPins[3]     = Generic.GetPin('B', 8);
            socket.CpuPins[4]     = Generic.GetPin('B', 10);
            socket.CpuPins[5]     = Generic.GetPin('B', 11);
            socket.CpuPins[6]     = Generic.GetPin('A', 0);
            socket.CpuPins[7]     = Generic.GetPin('B', 5);
            socket.CpuPins[8]     = Generic.GetPin('B', 4);
            socket.CpuPins[9]     = Generic.GetPin('B', 3);

            socket.SerialPortName = "COM3";
            socket.SPIModule      = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);


            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes = new char[] { 'A', 'O', 'I', 'X' };
            socket.CpuPins[3]     = Generic.GetPin('C', 0);
            socket.CpuPins[4]     = Generic.GetPin('C', 1);
            socket.CpuPins[5]     = Generic.GetPin('A', 4);
            socket.CpuPins[6]     = Generic.GetPin('A', 1);
            socket.CpuPins[8]     = Generic.GetPin('B', 7);
            socket.CpuPins[9]     = Generic.GetPin('B', 6);

            socket.AnalogOutput5 = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 12);
            socket.AnalogInput3 = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput4 = Cpu.AnalogChannel.ANALOG_4;
            socket.AnalogInput5 = Cpu.AnalogChannel.ANALOG_5;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);


            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'U', 'I' };
            socket.CpuPins[3]     = Generic.GetPin('C', 14);
            socket.CpuPins[4]     = Generic.GetPin('A', 2);
            socket.CpuPins[5]     = Generic.GetPin('A', 3);
            socket.CpuPins[6]     = Generic.GetPin('C', 15);
            socket.CpuPins[8]     = Generic.GetPin('B', 7);
            socket.CpuPins[9]     = Generic.GetPin('B', 6);

            socket.SerialPortName = "COM2";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);


            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'P' };
            socket.CpuPins[3]     = Generic.GetPin('C', 13);
            socket.CpuPins[6]     = Generic.GetPin('C', 3);
            socket.CpuPins[7]     = Generic.GetPin('A', 9);
            socket.CpuPins[8]     = Generic.GetPin('B', 9);
            socket.CpuPins[9]     = Generic.GetPin('A', 8);
            socket.PWM7           = (Cpu.PWMChannel) 12;
            socket.PWM8           = (Cpu.PWMChannel) 15;
            socket.PWM9           = Cpu.PWMChannel.PWM_3;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        public FEZReaper()
        {
            this.configSet      = false;
            this.debugLed       = null;
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            this.NativeBitmapConverter = this.NativeBitmapConvert;
            this.NativeBitmapCopyToSpi = this.NativeBitmapSpi;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'D' };
            socket.CpuPins[3]     = G80.Gpio.PE1;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G80.Gpio.PA13;
            socket.CpuPins[7]     = G80.Gpio.PA14;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'H' };
            socket.CpuPins[3]     = G80.Gpio.PE10;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'I', 'K', 'U', 'X' };
            socket.CpuPins[3]     = G80.Gpio.PE7;
            socket.CpuPins[4]     = G80.Gpio.PD8;
            socket.CpuPins[5]     = G80.Gpio.PD9;
            socket.CpuPins[6]     = G80.Gpio.PD12;
            socket.CpuPins[7]     = G80.Gpio.PD11;
            socket.CpuPins[8]     = G80.Gpio.PB7;
            socket.CpuPins[9]     = G80.Gpio.PB6;
            socket.SerialPortName = G80.SerialPort.Com3;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes   = new char[] { 'C', 'P', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PC13;
            socket.CpuPins[4]       = G80.Gpio.PB13;
            socket.CpuPins[5]       = G80.Gpio.PB12;
            socket.CpuPins[6]       = G80.Gpio.PA15;
            socket.CpuPins[7]       = G80.Gpio.PE11;
            socket.CpuPins[8]       = G80.Gpio.PE13;
            socket.CpuPins[9]       = G80.Gpio.PE14;
            socket.PWM7             = G80.PwmOutput.PE11;
            socket.PWM8             = G80.PwmOutput.PE13;
            socket.PWM9             = G80.PwmOutput.PE14;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'A', 'I', 'X' };
            socket.CpuPins[3]     = G80.Gpio.PA3;
            socket.CpuPins[4]     = G80.Gpio.PA6;
            socket.CpuPins[5]     = G80.Gpio.PA7;
            socket.CpuPins[6]     = G80.Gpio.PE8;
            socket.CpuPins[8]     = G80.Gpio.PB7;
            socket.CpuPins[9]     = G80.Gpio.PB6;
            socket.AnalogInput3   = G80.AnalogInput.PA3;
            socket.AnalogInput4   = G80.AnalogInput.PA6;
            socket.AnalogInput5   = G80.AnalogInput.PA7;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G80.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'I', 'U', 'X' };
            socket.CpuPins[3]     = G80.Gpio.PA8;
            socket.CpuPins[4]     = G80.Gpio.PA0;
            socket.CpuPins[5]     = G80.Gpio.PA1;
            socket.CpuPins[6]     = G80.Gpio.PE2;
            socket.CpuPins[8]     = G80.Gpio.PB7;
            socket.CpuPins[9]     = G80.Gpio.PB6;
            socket.SerialPortName = G80.SerialPort.Com4;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PE5;
            socket.CpuPins[4]       = G80.Gpio.PA9;
            socket.CpuPins[5]       = G80.Gpio.PA10;
            socket.CpuPins[6]       = G80.Gpio.PE0;
            socket.CpuPins[7]       = G80.Gpio.PB8;
            socket.CpuPins[8]       = G80.Gpio.PB9;
            socket.CpuPins[9]       = G80.Gpio.PB11;
            socket.PWM7             = G80.PwmOutput.PB8;
            socket.PWM8             = G80.PwmOutput.PB9;
            socket.PWM9             = G80.PwmOutput.PB11;
            socket.SerialPortName   = G80.SerialPort.Com1;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'P', 'S', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PC0;
            socket.CpuPins[4]       = G80.Gpio.PC1;
            socket.CpuPins[5]       = G80.Gpio.PA4;
            socket.CpuPins[6]       = G80.Gpio.PC6;
            socket.CpuPins[7]       = G80.Gpio.PB5;
            socket.CpuPins[8]       = G80.Gpio.PB4;
            socket.CpuPins[9]       = G80.Gpio.PB3;
            socket.PWM7             = G80.PwmOutput.PB5;
            socket.PWM8             = G80.PwmOutput.PB4;
            socket.PWM9             = G80.PwmOutput.PB3;
            socket.AnalogInput3     = G80.AnalogInput.PC0;
            socket.AnalogInput4     = G80.AnalogInput.PC1;
            socket.AnalogInput5     = G80.AnalogInput.PA4;
            socket.AnalogOutput5    = G80.AnalogOutput.PA4;
            socket.SPIModule        = G80.SpiBus.Spi1;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G80.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, G80.SupportedAnalogOutputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(9);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'S', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PC4;
            socket.CpuPins[4]       = G80.Gpio.PC5;
            socket.CpuPins[5]       = G80.Gpio.PA5;
            socket.CpuPins[6]       = G80.Gpio.PD7;
            socket.CpuPins[7]       = G80.Gpio.PC3;
            socket.CpuPins[8]       = G80.Gpio.PC2;
            socket.CpuPins[9]       = G80.Gpio.PB10;
            socket.AnalogInput3     = G80.AnalogInput.PC4;
            socket.AnalogInput4     = G80.AnalogInput.PC5;
            socket.AnalogInput5     = G80.AnalogInput.PA5;
            socket.AnalogOutput5    = G80.AnalogOutput.PA5;
            socket.SPIModule        = G80.SpiBus.Spi2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G80.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, G80.SupportedAnalogOutputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(10);
            socket.SupportedTypes = new char[] { 'I', 'K', 'U', 'X' };
            socket.CpuPins[3]     = G80.Gpio.PE6;
            socket.CpuPins[4]     = G80.Gpio.PD5;
            socket.CpuPins[5]     = G80.Gpio.PD6;
            socket.CpuPins[6]     = G80.Gpio.PD4;
            socket.CpuPins[7]     = G80.Gpio.PD3;
            socket.CpuPins[8]     = G80.Gpio.PB7;
            socket.CpuPins[9]     = G80.Gpio.PB6;
            socket.SerialPortName = G80.SerialPort.Com2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(11);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PE9;
            socket.CpuPins[4]       = G80.Gpio.PC8;
            socket.CpuPins[5]       = G80.Gpio.PC9;
            socket.CpuPins[6]       = G80.Gpio.PD2;
            socket.CpuPins[7]       = G80.Gpio.PC10;
            socket.CpuPins[8]       = G80.Gpio.PC11;
            socket.CpuPins[9]       = G80.Gpio.PC12;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(12);
            socket.SupportedTypes   = new char[] { 'C', 'P', 'Y' };
            socket.CpuPins[3]       = G80.Gpio.PE12;
            socket.CpuPins[4]       = G80.Gpio.PD1;
            socket.CpuPins[5]       = G80.Gpio.PD0;
            socket.CpuPins[6]       = G80.Gpio.PC7;
            socket.CpuPins[7]       = G80.Gpio.PD13;
            socket.CpuPins[8]       = G80.Gpio.PD14;
            socket.CpuPins[9]       = G80.Gpio.PD15;
            socket.PWM7             = G80.PwmOutput.PD13;
            socket.PWM8             = G80.PwmOutput.PD14;
            socket.PWM9             = G80.PwmOutput.PD15;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(13);
            socket.SupportedTypes = new char[] { 'A', 'X' };
            socket.CpuPins[3]     = G80.Gpio.PA2;
            socket.CpuPins[4]     = G80.Gpio.PB0;
            socket.CpuPins[5]     = G80.Gpio.PB1;
            socket.CpuPins[6]     = G80.Gpio.PD10;
            socket.AnalogInput3   = G80.AnalogInput.PA2;
            socket.AnalogInput4   = G80.AnalogInput.PB0;
            socket.AnalogInput5   = G80.AnalogInput.PB1;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G80.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(14);
            socket.SupportedTypes = new char[] { 'Z' };
            socket.CpuPins[3]     = G80.Gpio.PE15;
            socket.CpuPins[4]     = G80.Gpio.PA14;
            socket.CpuPins[5]     = G80.Gpio.PC14;
            socket.CpuPins[6]     = G80.Gpio.PC15;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = G80.Gpio.PA13;
            socket.CpuPins[9]     = G80.Gpio.PB2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 6
0
        /// <summary>Constructs a new instance.</summary>
        public FEZCerbuinoNet()
        {
            this.configSet           = false;
            this.debugLed            = null;
            this.ethernet            = null;
            this.storageDevices      = new IRemovable[2];
            this.sdCardStorageDevice = null;

            RemovableMedia.Insert += this.OnInsert;
            RemovableMedia.Eject  += this.OnEject;

            Controller.MouseConnected += (a, b) => {
                this.connectedMouse = b;
                this.OnMouseConnected(this, b);

                b.Disconnected += (c, d) => this.connectedMouse = null;
            };

            Controller.KeyboardConnected += (a, b) => {
                this.connectedKeyboard = b;
                this.OnKeyboardConnected(this, b);

                b.Disconnected += (c, d) => this.connectedKeyboard = null;
            };

            Controller.MassStorageConnected += (a, b) => {
                this.IsMassStorageConnected = true;

                this.MountStorageDevice("USB");

                b.Disconnected += (c, d) => {
                    this.IsMassStorageConnected = false;

                    if (this.IsMassStorageMounted)
                    {
                        this.UnmountStorageDevice("USB");
                    }
                };
            };

            this.IsSDCardMounted        = false;
            this.IsMassStorageConnected = false;
            this.IsMassStorageMounted   = false;

            this.sdCardDetect              = new InterruptPort(FEZCerbuinoNetPins.SdCardDetect, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeBoth);
            this.sdCardDetect.OnInterrupt += this.OnSDCardDetect;

            if (this.IsSDCardInserted)
            {
                this.MountStorageDevice("SD");
            }

            Controller.Start();

            this.NativeBitmapConverter = this.NativeBitmapConvert;
            this.NativeBitmapCopyToSpi = this.NativeBitmapSpi;

            #region Sockets
            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'P', 'S', 'U', 'X' };
            socket.CpuPins[3]     = FEZCerbuinoNetPins.Socket1.Pin3;
            socket.CpuPins[4]     = FEZCerbuinoNetPins.Socket1.Pin4;
            socket.CpuPins[5]     = FEZCerbuinoNetPins.Socket1.Pin5;
            socket.CpuPins[6]     = FEZCerbuinoNetPins.Socket1.Pin6;
            socket.CpuPins[7]     = FEZCerbuinoNetPins.Socket1.Pin7;
            socket.CpuPins[8]     = FEZCerbuinoNetPins.Socket1.Pin8;
            socket.CpuPins[9]     = FEZCerbuinoNetPins.Socket1.Pin9;
            socket.SerialPortName = "COM1";
            socket.PWM7           = Cpu.PWMChannel.PWM_6;
            socket.PWM8           = Cpu.PWMChannel.PWM_7;
            socket.PWM9           = (Cpu.PWMChannel) 8;
            socket.SPIModule      = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes   = new char[] { 'A', 'I', 'K', 'U', 'Y' };
            socket.CpuPins[3]       = FEZCerbuinoNetPins.Socket2.Pin3;
            socket.CpuPins[4]       = FEZCerbuinoNetPins.Socket2.Pin4;
            socket.CpuPins[5]       = FEZCerbuinoNetPins.Socket2.Pin5;
            socket.CpuPins[6]       = FEZCerbuinoNetPins.Socket2.Pin6;
            socket.CpuPins[7]       = FEZCerbuinoNetPins.Socket2.Pin7;
            socket.CpuPins[8]       = FEZCerbuinoNetPins.Socket2.Pin8;
            socket.CpuPins[9]       = FEZCerbuinoNetPins.Socket2.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.SerialPortName   = "COM2";
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_0;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_2;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'P', 'Y' };
            socket.CpuPins[3]       = FEZCerbuinoNetPins.Socket3.Pin3;
            socket.CpuPins[4]       = FEZCerbuinoNetPins.Socket3.Pin4;
            socket.CpuPins[5]       = FEZCerbuinoNetPins.Socket3.Pin5;
            socket.CpuPins[6]       = FEZCerbuinoNetPins.Socket3.Pin6;
            socket.CpuPins[7]       = FEZCerbuinoNetPins.Socket3.Pin7;
            socket.CpuPins[8]       = FEZCerbuinoNetPins.Socket3.Pin8;
            socket.CpuPins[9]       = FEZCerbuinoNetPins.Socket3.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = (Cpu.PWMChannel) 14;
            socket.PWM8             = Cpu.PWMChannel.PWM_1;
            socket.PWM9             = (Cpu.PWMChannel) 15;
            socket.AnalogOutput5    = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_4;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_5;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            #endregion Sockets
        }
Exemplo n.º 7
0
        /// <summary>Constructs a new instance.</summary>
        public FEZHydra()
        {
            this.debugLed = null;
            this.sdCard   = null;

            this.NativeBitmapConverter = this.BitmapConverter;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'Z' };
            socket.CpuPins[3]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'D' };
            socket.CpuPins[3]     = FEZHydraPins.Socket2.Pin3;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = FEZHydraPins.Socket2.Pin6;
            socket.CpuPins[7]     = FEZHydraPins.Socket2.Pin7;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes   = new char[] { 'S', 'X' };
            socket.CpuPins[3]       = FEZHydraPins.Socket3.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket3.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket3.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket3.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket3.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket3.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket3.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.SPIModule        = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes   = new char[] { 'S', 'U', 'X' };
            socket.CpuPins[3]       = FEZHydraPins.Socket4.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket4.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket4.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket4.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket4.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket4.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket4.Pin9;
            socket.SerialPortName   = "COM3";
            socket.I2CBusIndirector = nativeI2C;
            socket.SPIModule        = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'I', 'U', 'X' };
            socket.CpuPins[3]     = FEZHydraPins.Socket5.Pin3;
            socket.CpuPins[4]     = FEZHydraPins.Socket5.Pin4;
            socket.CpuPins[5]     = FEZHydraPins.Socket5.Pin5;
            socket.CpuPins[6]     = FEZHydraPins.Socket5.Pin6;
            socket.CpuPins[8]     = FEZHydraPins.Socket5.Pin8;
            socket.CpuPins[9]     = FEZHydraPins.Socket5.Pin9;
            socket.SerialPortName = "COM1";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'I', 'U', 'X' };
            socket.CpuPins[3]     = FEZHydraPins.Socket6.Pin3;
            socket.CpuPins[4]     = FEZHydraPins.Socket6.Pin4;
            socket.CpuPins[5]     = FEZHydraPins.Socket6.Pin5;
            socket.CpuPins[6]     = FEZHydraPins.Socket6.Pin6;
            socket.CpuPins[7]     = FEZHydraPins.Socket6.Pin7;
            socket.CpuPins[8]     = FEZHydraPins.Socket6.Pin8;
            socket.CpuPins[9]     = FEZHydraPins.Socket6.Pin9;
            socket.SerialPortName = "COM4";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket7.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket7.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket7.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket7.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket7.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket7.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket7.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.SerialPortName   = "COM2";
            socket.PWM7             = Cpu.PWMChannel.PWM_0;
            socket.PWM8             = Cpu.PWMChannel.PWM_1;
            socket.PWM9             = Cpu.PWMChannel.PWM_2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket8.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket8.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket8.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket8.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket8.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket8.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket8.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(9);
            socket.SupportedTypes   = new char[] { 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket9.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket9.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket9.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket9.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket9.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket9.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket9.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(10);
            socket.SupportedTypes   = new char[] { 'R', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket10.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket10.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket10.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket10.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket10.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket10.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket10.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(11);
            socket.SupportedTypes   = new char[] { 'G', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket11.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket11.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket11.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket11.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket11.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket11.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket11.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(12);
            socket.SupportedTypes   = new char[] { 'B', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket12.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket12.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket12.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket12.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket12.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket12.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket12.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(13);
            socket.SupportedTypes   = new char[] { 'A', 'T', 'Y' };
            socket.CpuPins[3]       = FEZHydraPins.Socket13.Pin3;
            socket.CpuPins[4]       = FEZHydraPins.Socket13.Pin4;
            socket.CpuPins[5]       = FEZHydraPins.Socket13.Pin5;
            socket.CpuPins[6]       = FEZHydraPins.Socket13.Pin6;
            socket.CpuPins[7]       = FEZHydraPins.Socket13.Pin7;
            socket.CpuPins[8]       = FEZHydraPins.Socket13.Pin8;
            socket.CpuPins[9]       = FEZHydraPins.Socket13.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_4;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_1;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(14);
            socket.SupportedTypes = new char[] { 'A', 'X' };
            socket.CpuPins[3]     = FEZHydraPins.Socket14.Pin3;
            socket.CpuPins[4]     = FEZHydraPins.Socket14.Pin4;
            socket.CpuPins[5]     = FEZHydraPins.Socket14.Pin5;
            socket.CpuPins[6]     = FEZHydraPins.Socket14.Pin6;
            socket.CpuPins[7]     = FEZHydraPins.Socket14.Pin7;
            socket.CpuPins[8]     = FEZHydraPins.Socket14.Pin8;
            socket.CpuPins[9]     = FEZHydraPins.Socket14.Pin9;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_5;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_2;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 8
0
        /// <summary>Constructs a new instance.</summary>
        public FEZRaptor()
        {
            this.debugLed       = null;
            this.ldr0           = null;
            this.ldr1           = null;
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            this.NativeBitmapConverter = this.BitmapConverter;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes   = new char[] { 'S', 'U', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PB0;
            socket.CpuPins[4]       = G400.Gpio.PA7;
            socket.CpuPins[5]       = G400.Gpio.PA8;
            socket.CpuPins[6]       = G400.Gpio.PB5;
            socket.CpuPins[7]       = G400.Gpio.PA22;
            socket.CpuPins[8]       = G400.Gpio.PA21;
            socket.CpuPins[9]       = G400.Gpio.PA23;
            socket.SPIModule        = SPI.SPI_module.SPI2;
            socket.SerialPortName   = "COM4";
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'A', 'I', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PB14;
            socket.CpuPins[4]     = G400.Gpio.PB15;
            socket.CpuPins[5]     = G400.Gpio.PB16;
            socket.CpuPins[6]     = G400.Gpio.PB18;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_4;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_5;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'S', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PB1;
            socket.CpuPins[4]     = G400.Gpio.PC23;
            socket.CpuPins[5]     = G400.Gpio.PB3;
            socket.CpuPins[6]     = G400.Gpio.PA28;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            socket.SPIModule      = SPI.SPI_module.SPI1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes = new char[] { 'I', 'K', 'U', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PA27;
            socket.CpuPins[4]     = G400.Gpio.PA0;
            socket.CpuPins[5]     = G400.Gpio.PA1;
            socket.CpuPins[6]     = G400.Gpio.PA2;
            socket.CpuPins[7]     = G400.Gpio.PA3;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.SerialPortName = "COM2";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'Z' };
            socket.CpuPins[3]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'H', 'I' };
            socket.CpuPins[3]     = G400.Gpio.PD4;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G400.Gpio.PA24;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes = new char[] { 'H', 'I' };
            socket.CpuPins[3]     = G400.Gpio.PA25;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G400.Gpio.PA4;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes = new char[] { 'D', 'I' };
            socket.CpuPins[3]     = G400.Gpio.PD6;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G400.Gpio.PD0;
            socket.CpuPins[7]     = G400.Gpio.PD5;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(9);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PD7;
            socket.CpuPins[4]       = G400.Gpio.PA15;
            socket.CpuPins[5]       = G400.Gpio.PA18;
            socket.CpuPins[6]       = G400.Gpio.PA16;
            socket.CpuPins[7]       = G400.Gpio.PA19;
            socket.CpuPins[8]       = G400.Gpio.PA20;
            socket.CpuPins[9]       = G400.Gpio.PA17;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(10);
            socket.SupportedTypes = new char[] { 'C', 'I', 'U', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PA29;
            socket.CpuPins[4]     = G400.Gpio.PA10;
            socket.CpuPins[5]     = G400.Gpio.PA9;
            socket.CpuPins[6]     = G400.Gpio.PA26;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.SerialPortName = "COM1";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(11);
            socket.SupportedTypes = new char[] { 'C', 'S', 'U', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PC26;
            socket.CpuPins[4]     = G400.Gpio.PA5;
            socket.CpuPins[5]     = G400.Gpio.PA6;
            socket.CpuPins[6]     = G400.Gpio.PB4;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            socket.SPIModule      = SPI.SPI_module.SPI1;
            socket.SerialPortName = "COM3";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(12);
            socket.SupportedTypes = new char[] { 'I', 'U', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PC31;
            socket.CpuPins[4]     = G400.Gpio.PC16;
            socket.CpuPins[5]     = G400.Gpio.PC17;
            socket.CpuPins[6]     = G400.Gpio.PB2;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.SerialPortName = "COM6";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(13);
            socket.SupportedTypes = new char[] { 'A', 'I', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PB17;
            socket.CpuPins[4]     = G400.Gpio.PB6;
            socket.CpuPins[5]     = G400.Gpio.PB7;
            socket.CpuPins[6]     = G400.Gpio.PC22;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_6;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_7;
            socket.AnalogInput5   = (Cpu.AnalogChannel) 8;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(14);
            socket.SupportedTypes = new char[] { 'A', 'I', 'T', 'X' };
            socket.CpuPins[3]     = G400.Gpio.PB11;
            socket.CpuPins[4]     = G400.Gpio.PB12;
            socket.CpuPins[5]     = G400.Gpio.PB13;
            socket.CpuPins[6]     = G400.Gpio.PD1;
            socket.CpuPins[7]     = G400.Gpio.PD2;
            socket.CpuPins[8]     = G400.Gpio.PA30;
            socket.CpuPins[9]     = G400.Gpio.PA31;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_0;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_2;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(15);
            socket.SupportedTypes   = new char[] { 'R', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PC11;
            socket.CpuPins[4]       = G400.Gpio.PC12;
            socket.CpuPins[5]       = G400.Gpio.PC13;
            socket.CpuPins[6]       = G400.Gpio.PC14;
            socket.CpuPins[7]       = G400.Gpio.PC15;
            socket.CpuPins[8]       = G400.Gpio.PC27;
            socket.CpuPins[9]       = G400.Gpio.PC28;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(16);
            socket.SupportedTypes   = new char[] { 'G', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PC5;
            socket.CpuPins[4]       = G400.Gpio.PC6;
            socket.CpuPins[5]       = G400.Gpio.PC7;
            socket.CpuPins[6]       = G400.Gpio.PC8;
            socket.CpuPins[7]       = G400.Gpio.PC9;
            socket.CpuPins[8]       = G400.Gpio.PC10;
            socket.CpuPins[9]       = G400.Gpio.PC21;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(17);
            socket.SupportedTypes   = new char[] { 'B', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PC0;
            socket.CpuPins[4]       = G400.Gpio.PC1;
            socket.CpuPins[5]       = G400.Gpio.PC2;
            socket.CpuPins[6]       = G400.Gpio.PC3;
            socket.CpuPins[7]       = G400.Gpio.PC4;
            socket.CpuPins[8]       = G400.Gpio.PC29;
            socket.CpuPins[9]       = G400.Gpio.PC30;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(18);
            socket.SupportedTypes   = new char[] { 'A', 'P', 'Y' };
            socket.CpuPins[3]       = G400.Gpio.PB8;
            socket.CpuPins[4]       = G400.Gpio.PB9;
            socket.CpuPins[5]       = G400.Gpio.PB10;
            socket.CpuPins[6]       = G400.Gpio.PC24;
            socket.CpuPins[7]       = G400.Gpio.PC18;
            socket.CpuPins[8]       = G400.Gpio.PC19;
            socket.CpuPins[9]       = G400.Gpio.PC20;
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_0;
            socket.PWM8             = Cpu.PWMChannel.PWM_1;
            socket.PWM9             = Cpu.PWMChannel.PWM_2;
            socket.AnalogInput3     = (Cpu.AnalogChannel) 9;
            socket.AnalogInput4     = (Cpu.AnalogChannel) 10;
            socket.AnalogInput5     = (Cpu.AnalogChannel) 11;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 9
0
        /// <summary>Constructs a new instance.</summary>
        public FEZCerberus()
        {
            this.configSet      = false;
            this.debugLed       = null;
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            this.NativeBitmapConverter = this.NativeBitmapConvert;
            this.NativeBitmapCopyToSpi = this.NativeBitmapSpi;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'H', 'I' };
            socket.CpuPins[3]     = FEZCerberusPins.Socket1.Pin3;
            socket.CpuPins[4]     = FEZCerberusPins.Socket1.Pin4;
            socket.CpuPins[5]     = FEZCerberusPins.Socket1.Pin5;
            socket.CpuPins[6]     = FEZCerberusPins.Socket1.Pin6;
            socket.CpuPins[8]     = FEZCerberusPins.Socket1.Pin8;
            socket.CpuPins[9]     = FEZCerberusPins.Socket1.Pin9;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes   = new char[] { 'A', 'I', 'K', 'U', 'Y' };
            socket.CpuPins[3]       = FEZCerberusPins.Socket2.Pin3;
            socket.CpuPins[4]       = FEZCerberusPins.Socket2.Pin4;
            socket.CpuPins[5]       = FEZCerberusPins.Socket2.Pin5;
            socket.CpuPins[6]       = FEZCerberusPins.Socket2.Pin6;
            socket.CpuPins[7]       = FEZCerberusPins.Socket2.Pin7;
            socket.CpuPins[8]       = FEZCerberusPins.Socket2.Pin8;
            socket.CpuPins[9]       = FEZCerberusPins.Socket2.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.SerialPortName   = "COM2";
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_0;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_2;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'P', 'Y' };
            socket.CpuPins[3]       = FEZCerberusPins.Socket3.Pin3;
            socket.CpuPins[4]       = FEZCerberusPins.Socket3.Pin4;
            socket.CpuPins[5]       = FEZCerberusPins.Socket3.Pin5;
            socket.CpuPins[6]       = FEZCerberusPins.Socket3.Pin6;
            socket.CpuPins[7]       = FEZCerberusPins.Socket3.Pin7;
            socket.CpuPins[8]       = FEZCerberusPins.Socket3.Pin8;
            socket.CpuPins[9]       = FEZCerberusPins.Socket3.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_0;
            socket.PWM8             = Cpu.PWMChannel.PWM_1;
            socket.PWM9             = Cpu.PWMChannel.PWM_2;
            socket.AnalogOutput5    = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_3;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_4;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_5;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'P', 'Y' };
            socket.CpuPins[3]       = FEZCerberusPins.Socket4.Pin3;
            socket.CpuPins[4]       = FEZCerberusPins.Socket4.Pin4;
            socket.CpuPins[5]       = FEZCerberusPins.Socket4.Pin5;
            socket.CpuPins[6]       = FEZCerberusPins.Socket4.Pin6;
            socket.CpuPins[7]       = FEZCerberusPins.Socket4.Pin7;
            socket.CpuPins[8]       = FEZCerberusPins.Socket4.Pin8;
            socket.CpuPins[9]       = FEZCerberusPins.Socket4.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_3;
            socket.PWM8             = Cpu.PWMChannel.PWM_4;
            socket.PWM9             = Cpu.PWMChannel.PWM_5;
            socket.AnalogOutput5    = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_1;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_6;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_7;
            socket.AnalogInput5     = (Cpu.AnalogChannel) 8;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes = new char[] { 'P', 'C', 'S', 'X' };
            socket.CpuPins[3]     = FEZCerberusPins.Socket5.Pin3;
            socket.CpuPins[4]     = FEZCerberusPins.Socket5.Pin4;
            socket.CpuPins[5]     = FEZCerberusPins.Socket5.Pin5;
            socket.CpuPins[6]     = FEZCerberusPins.Socket5.Pin6;
            socket.CpuPins[7]     = FEZCerberusPins.Socket5.Pin7;
            socket.CpuPins[8]     = FEZCerberusPins.Socket5.Pin8;
            socket.CpuPins[9]     = FEZCerberusPins.Socket5.Pin9;
            socket.SPIModule      = SPI.SPI_module.SPI1;
            socket.PWM7           = Cpu.PWMChannel.PWM_6;
            socket.PWM8           = Cpu.PWMChannel.PWM_7;
            socket.PWM9           = (Cpu.PWMChannel) 8;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'P', 'S', 'U', 'X' };
            socket.CpuPins[3]     = FEZCerberusPins.Socket6.Pin3;
            socket.CpuPins[4]     = FEZCerberusPins.Socket6.Pin4;
            socket.CpuPins[5]     = FEZCerberusPins.Socket6.Pin5;
            socket.CpuPins[6]     = FEZCerberusPins.Socket6.Pin6;
            socket.CpuPins[7]     = FEZCerberusPins.Socket6.Pin7;
            socket.CpuPins[8]     = FEZCerberusPins.Socket6.Pin8;
            socket.CpuPins[9]     = FEZCerberusPins.Socket6.Pin9;
            socket.SerialPortName = "COM3";
            socket.SPIModule      = SPI.SPI_module.SPI1;
            socket.PWM7           = Cpu.PWMChannel.PWM_6;
            socket.PWM8           = Cpu.PWMChannel.PWM_7;
            socket.PWM9           = (Cpu.PWMChannel) 8;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = FEZCerberusPins.Socket7.Pin3;
            socket.CpuPins[4]       = FEZCerberusPins.Socket7.Pin4;
            socket.CpuPins[5]       = FEZCerberusPins.Socket7.Pin5;
            socket.CpuPins[6]       = FEZCerberusPins.Socket7.Pin6;
            socket.CpuPins[7]       = FEZCerberusPins.Socket7.Pin7;
            socket.CpuPins[8]       = FEZCerberusPins.Socket7.Pin8;
            socket.CpuPins[9]       = FEZCerberusPins.Socket7.Pin9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes = new char[] { 'D', 'Z' };
            socket.CpuPins[3]     = FEZCerberusPins.Socket8.Pin3;
            socket.CpuPins[4]     = FEZCerberusPins.Socket8.Pin4;
            socket.CpuPins[5]     = FEZCerberusPins.Socket8.Pin5;
            socket.CpuPins[6]     = FEZCerberusPins.Socket8.Pin6;
            socket.CpuPins[7]     = FEZCerberusPins.Socket8.Pin7;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 10
0
        /// <summary>Constructs a new instance.</summary>
        public FEZSpiderII()
        {
            if ((DeviceType)SystemInfo.SystemID.Model != DeviceType.G120E)
            {
                throw new InvalidOperationException("You have selected the wrong mainboard in the designer. Please double check your mainboard.");
            }

            this.debugLed       = null;
            this.storageDevices = new IRemovable[2];

            Controller.Start();

            this.NativeBitmapConverter = this.BitmapConverter;

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'D', 'I' };
            socket.CpuPins[3]     = G120E.Gpio.P2_26;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G120E.Gpio.P2_22;
            socket.CpuPins[7]     = G120E.Gpio.P4_31;
            socket.CpuPins[8]     = G120E.Gpio.P0_27;
            socket.CpuPins[9]     = G120E.Gpio.P0_28;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes = new char[] { 'Z' };
            socket.CpuPins[3]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'H', 'I' };
            socket.CpuPins[3]     = G120E.Gpio.P0_5;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G120E.Gpio.P0_4;
            socket.CpuPins[8]     = G120E.Gpio.P0_27;
            socket.CpuPins[9]     = G120E.Gpio.P0_28;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes = new char[] { 'I', 'K', 'U', 'X' };
            socket.CpuPins[3]     = G120E.Gpio.P2_31;
            socket.CpuPins[4]     = G120E.Gpio.P2_0;
            socket.CpuPins[5]     = G120E.Gpio.P0_16;
            socket.CpuPins[6]     = G120E.Gpio.P0_6;
            socket.CpuPins[7]     = G120E.Gpio.P3_18;
            socket.CpuPins[8]     = G120E.Gpio.P0_27;
            socket.CpuPins[9]     = G120E.Gpio.P0_28;
            socket.SerialPortName = "COM2";
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P2_27;
            socket.CpuPins[4]       = G120E.Gpio.P1_6;
            socket.CpuPins[5]       = G120E.Gpio.P1_7;
            socket.CpuPins[6]       = G120E.Gpio.P1_3;
            socket.CpuPins[7]       = G120E.Gpio.P1_11;
            socket.CpuPins[8]       = G120E.Gpio.P1_12;
            socket.CpuPins[9]       = G120E.Gpio.P1_2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes = new char[] { 'C', 'S', 'X' };
            socket.CpuPins[3]     = G120E.Gpio.P2_25;
            socket.CpuPins[4]     = G120E.Gpio.P0_1;
            socket.CpuPins[5]     = G120E.Gpio.P0_0;
            socket.CpuPins[6]     = G120E.Gpio.P4_28;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            socket.SPIModule      = SPI.SPI_module.SPI2;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(7);
            socket.SupportedTypes = new char[] { 'E' };
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[7]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[8]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[9]     = GT.Socket.UnnumberedPin;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(8);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P2_10;
            socket.CpuPins[4]       = G120E.Gpio.P0_10;
            socket.CpuPins[5]       = G120E.Gpio.P0_11;
            socket.CpuPins[6]       = G120E.Gpio.P1_19;
            socket.CpuPins[7]       = G120E.Gpio.P3_29;
            socket.CpuPins[8]       = G120E.Gpio.P3_27;
            socket.CpuPins[9]       = G120E.Gpio.P3_26;
            socket.SerialPortName   = "COM3";
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = (Cpu.PWMChannel) 11;
            socket.PWM8             = (Cpu.PWMChannel) 9;
            socket.PWM9             = (Cpu.PWMChannel) 8;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(9);
            socket.SupportedTypes   = new char[] { 'A', 'O', 'S', 'U', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P0_13;
            socket.CpuPins[4]       = G120E.Gpio.P0_25;
            socket.CpuPins[5]       = G120E.Gpio.P0_26;
            socket.CpuPins[6]       = G120E.Gpio.P3_25;
            socket.CpuPins[7]       = G120E.Gpio.P0_18;
            socket.CpuPins[8]       = G120E.Gpio.P0_17;
            socket.CpuPins[9]       = G120E.Gpio.P0_15;
            socket.SerialPortName   = "COM4";
            socket.I2CBusIndirector = nativeI2C;
            socket.SPIModule        = SPI.SPI_module.SPI1;
            socket.AnalogOutput5    = Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0;
            socket.AnalogInput3     = Cpu.AnalogChannel.ANALOG_7;
            socket.AnalogInput4     = Cpu.AnalogChannel.ANALOG_2;
            socket.AnalogInput5     = Cpu.AnalogChannel.ANALOG_3;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.SetAnalogOutputFactors(socket, 3.3, 0, 10);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(10);
            socket.SupportedTypes = new char[] { 'A', 'I', 'T', 'X' };
            socket.CpuPins[3]     = G120E.Gpio.P0_12;
            socket.CpuPins[4]     = G120E.Gpio.P0_24;
            socket.CpuPins[5]     = G120E.Gpio.P0_23;
            socket.CpuPins[6]     = G120E.Gpio.P3_31;
            socket.CpuPins[7]     = G120E.Gpio.P2_23;
            socket.CpuPins[8]     = G120E.Gpio.P0_27;
            socket.CpuPins[9]     = G120E.Gpio.P0_28;
            socket.AnalogInput3   = Cpu.AnalogChannel.ANALOG_6;
            socket.AnalogInput4   = Cpu.AnalogChannel.ANALOG_1;
            socket.AnalogInput5   = Cpu.AnalogChannel.ANALOG_0;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, 12);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(11);
            socket.SupportedTypes   = new char[] { 'P', 'U', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P2_30;
            socket.CpuPins[4]       = G120E.Gpio.P0_2;
            socket.CpuPins[5]       = G120E.Gpio.P0_3;
            socket.CpuPins[6]       = G120E.Gpio.P4_29;
            socket.CpuPins[7]       = G120E.Gpio.P3_24;
            socket.CpuPins[8]       = G120E.Gpio.P3_16;
            socket.CpuPins[9]       = G120E.Gpio.P3_17;
            socket.SerialPortName   = "COM1";
            socket.I2CBusIndirector = nativeI2C;
            socket.PWM7             = Cpu.PWMChannel.PWM_6;
            socket.PWM8             = Cpu.PWMChannel.PWM_0;
            socket.PWM9             = Cpu.PWMChannel.PWM_1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(12);
            socket.SupportedTypes   = new char[] { 'B', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P2_13;
            socket.CpuPins[4]       = G120E.Gpio.P1_26;
            socket.CpuPins[5]       = G120E.Gpio.P1_27;
            socket.CpuPins[6]       = G120E.Gpio.P1_28;
            socket.CpuPins[7]       = G120E.Gpio.P1_29;
            socket.CpuPins[8]       = G120E.Gpio.P2_4;
            socket.CpuPins[9]       = G120E.Gpio.P2_2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(13);
            socket.SupportedTypes = new char[] { 'G' };
            socket.CpuPins[3]     = G120E.Gpio.P1_20;
            socket.CpuPins[4]     = G120E.Gpio.P1_21;
            socket.CpuPins[5]     = G120E.Gpio.P1_22;
            socket.CpuPins[6]     = G120E.Gpio.P1_23;
            socket.CpuPins[7]     = G120E.Gpio.P1_24;
            socket.CpuPins[8]     = G120E.Gpio.P1_25;
            socket.CpuPins[9]     = G120E.Gpio.P2_21;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(14);
            socket.SupportedTypes   = new char[] { 'R', 'Y' };
            socket.CpuPins[3]       = G120E.Gpio.P2_12;
            socket.CpuPins[4]       = G120E.Gpio.P2_6;
            socket.CpuPins[5]       = G120E.Gpio.P2_7;
            socket.CpuPins[6]       = G120E.Gpio.P2_8;
            socket.CpuPins[7]       = G120E.Gpio.P2_9;
            socket.CpuPins[8]       = G120E.Gpio.P2_3;
            socket.CpuPins[9]       = G120E.Gpio.P2_5;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        public FEZMedusaII()
        {
            this.debugLed       = null;
            this.storageDevices = new IRemovable[1];

            GT.SocketInterfaces.I2CBusIndirector nativeI2C = (s, sdaPin, sclPin, address, clockRateKHz, module) => new InteropI2CBus(s, sdaPin, sclPin, address, clockRateKHz, module);
            GT.Socket socket;

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(1);
            socket.SupportedTypes = new char[] { 'D', 'I' };
            socket.CpuPins[3]     = G30.Gpio.PB14;
            socket.CpuPins[4]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[5]     = GT.Socket.UnnumberedPin;
            socket.CpuPins[6]     = G30.Gpio.PB13;
            socket.CpuPins[7]     = G30.Gpio.PB15;
            socket.CpuPins[8]     = G30.Gpio.PB7;
            socket.CpuPins[9]     = G30.Gpio.PB6;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(2);
            socket.SupportedTypes   = new char[] { 'F', 'Y' };
            socket.CpuPins[3]       = G30.Gpio.PC0;
            socket.CpuPins[4]       = G30.Gpio.PC8;
            socket.CpuPins[5]       = G30.Gpio.PC9;
            socket.CpuPins[6]       = G30.Gpio.PD2;
            socket.CpuPins[7]       = G30.Gpio.PC10;
            socket.CpuPins[8]       = G30.Gpio.PC11;
            socket.CpuPins[9]       = G30.Gpio.PC12;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(3);
            socket.SupportedTypes = new char[] { 'I', 'U', 'X' };
            socket.CpuPins[3]     = G30.Gpio.PC1;
            socket.CpuPins[4]     = G30.Gpio.PA9;
            socket.CpuPins[5]     = G30.Gpio.PA10;
            socket.CpuPins[6]     = G30.Gpio.PC2;
            socket.CpuPins[7]     = G30.Gpio.PB10;
            socket.CpuPins[8]     = G30.Gpio.PB7;
            socket.CpuPins[9]     = G30.Gpio.PB6;
            socket.SerialPortName = G30.SerialPort.Com1;
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(4);
            socket.SupportedTypes   = new char[] { 'A', 'S', 'Y' };
            socket.CpuPins[3]       = G30.Gpio.PA7;
            socket.CpuPins[4]       = G30.Gpio.PB0;
            socket.CpuPins[5]       = G30.Gpio.PB1;
            socket.CpuPins[6]       = G30.Gpio.PB12;
            socket.CpuPins[7]       = G30.Gpio.PB5;
            socket.CpuPins[8]       = G30.Gpio.PB4;
            socket.CpuPins[9]       = G30.Gpio.PB3;
            socket.AnalogInput3     = G30.AnalogInput.PA7;
            socket.AnalogInput4     = G30.AnalogInput.PB0;
            socket.AnalogInput5     = G30.AnalogInput.PB1;
            socket.SPIModule        = G30.SpiBus.Spi1;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G30.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(5);
            socket.SupportedTypes   = new char[] { 'A', 'P', 'Y' };
            socket.CpuPins[3]       = G30.Gpio.PA4;
            socket.CpuPins[4]       = G30.Gpio.PA5;
            socket.CpuPins[5]       = G30.Gpio.PA6;
            socket.CpuPins[6]       = G30.Gpio.PB2;
            socket.CpuPins[7]       = G30.Gpio.PA8;
            socket.CpuPins[8]       = G30.Gpio.PB8;
            socket.CpuPins[9]       = G30.Gpio.PB9;
            socket.AnalogInput3     = G30.AnalogInput.PA4;
            socket.AnalogInput4     = G30.AnalogInput.PA5;
            socket.AnalogInput5     = G30.AnalogInput.PA6;
            socket.PWM7             = G30.PwmOutput.PA8;
            socket.PWM8             = G30.PwmOutput.PB8;
            socket.PWM9             = G30.PwmOutput.PB9;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G30.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);

            socket = GT.Socket.SocketInterfaces.CreateNumberedSocket(6);
            socket.SupportedTypes   = new char[] { 'A', 'K', 'P', 'U', 'Y' };
            socket.CpuPins[3]       = G30.Gpio.PC3;
            socket.CpuPins[4]       = G30.Gpio.PA2;
            socket.CpuPins[5]       = G30.Gpio.PA3;
            socket.CpuPins[6]       = G30.Gpio.PA1;
            socket.CpuPins[7]       = G30.Gpio.PA0;
            socket.CpuPins[8]       = G30.Gpio.PC6;
            socket.CpuPins[9]       = G30.Gpio.PC7;
            socket.AnalogInput3     = G30.AnalogInput.PC3;
            socket.AnalogInput4     = G30.AnalogInput.PA2;
            socket.AnalogInput5     = G30.AnalogInput.PA3;
            socket.PWM7             = G30.PwmOutput.PA0;
            socket.PWM8             = G30.PwmOutput.PC6;
            socket.PWM9             = G30.PwmOutput.PC7;
            socket.SerialPortName   = G30.SerialPort.Com2;
            socket.I2CBusIndirector = nativeI2C;
            GT.Socket.SocketInterfaces.SetAnalogInputFactors(socket, 3.3, 0, G30.SupportedAnalogInputPrecision);
            GT.Socket.SocketInterfaces.RegisterSocket(socket);
        }