public FirmwareUno(Node node, byte systemFlags)
 {
     _node = node;
     _operationTimeRestictionDictionary = new Dictionary<ushort, Operation>();
     _operationDictionary = new Dictionary<ushort, Operation[]>();
     _systemFlags = systemFlags;
     _baseConfiguration = node.GetBaseConfiguration();
 }
        public static Base GetBaseConfiguration(BaseTypes controller)
        {
            Base result = new Base();
            switch (controller)
            {
                case BaseTypes.ATMega128RFA1_V1:
                case BaseTypes.ATMega128RFA1_V2:
                    result.UController = controller;
                    result.DeviceSignature = 128;
                    result.NumPorts = 7;
                    result.NumPins = 8;

                    result.AnalogPorts = new string[] { "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7" };
                    result.PWMPorts = new string[] { "B4", "B5", "B6", "B7", "E3", "E4", "E5", "G5" };  //VERSION MINOLO:{ "B4", "B7", "G5" } el B7 y el G5 estan compartidos con el mismo timer
                    result.UnavailablePorts = new string[] { "G3", "G4" };  //TODO: de momento estos pero hay que chequear

                    result.LittleEndian = true;
                    break;
                default:
                    throw new Exception();
            }

            return result;
        }