示例#1
0
 public void ResetRegisters()
 {
     Registers.Clear();
     Registers.Add("a", 0);
     Registers.Add("b", 0);
     Registers.Add("c", 0);
     Registers.Add("d", 0);
     Registers.Add("e", 0);
     Registers.Add("f", 0);
     Registers.Add("g", 0);
     Registers.Add("h", 0);
 }
示例#2
0
        public void ShouldBeAbleToClearRegisters()
        {
            for (byte b = 0; b <= 0x0f; b++)
            {
                _registers[b] = 0xFF;
            }

            _registers.Clear();

            for (byte b = 0; b <= 0x0f; b++)
            {
                Assert.Equal(0x00, _registers[b]);
            }
        }
 private void LoadRegistrations()
 {
     try
     {
         var items = ctx.Registers.ToList().Where(r => r.CourseID == _selectedCourseID);
         Registers.Clear();
         foreach (var item in items)
         {
             Registers.Add(item);
         }
     }
     catch (SystemException ex)
     {
         Log.WriteLine(ex.Message);
     }
 }
示例#4
0
 public void Init(IEnumerable <int> input, IEnumerable <int> expected, string inputText)
 {
     Stack.Clear();
     Registers.Clear();
     for (int i = 0; i < 4; i++)
     {
         Registers.Add(0);
     }
     Input.Clear();
     Expected.Clear();
     Output.Clear();
     foreach (int i in input)
     {
         Input.Add(i);
     }
     foreach (int i in expected)
     {
         Expected.Add(i);
     }
     Status = Status.Running;
     Build(inputText);
 }
示例#5
0
        public void ReadRegisters()
        {
            Registers.Clear();

            // TODO: Read registers descriptions from extenal file

            //AddRegister(0x0100, "OV8865_SC_CTRL0100");
            //AddRegister(0x0103, "OV8865_SC_CTRL0103");

            // PLL
            //AddRegister(0x0300, "PLL_CTRL_0");
            //AddRegister(0x0301, "PLL_CTRL_1");
            //AddRegister(0x0302, "PLL_CTRL_2");
            //AddRegister(0x0303, "PLL_CTRL_3");
            //AddRegister(0x0304, "PLL_CTRL_4");
            //AddRegister(0x0305, "PLL_CTRL_5");
            //AddRegister(0x0306, "PLL_CTRL_6");
            //AddRegister(0x0307, "PLL_CTRL_7");
            //AddRegister(0x0308, "PLL_CTRL_8");
            //AddRegister(0x0309, "PLL_CTRL_9");
            //AddRegister(0x030A, "PLL_CTRL_A");
            //AddRegister(0x030B, "PLL_CTRL_B");
            //AddRegister(0x030C, "PLL_CTRL_C");
            //AddRegister(0x030D, "PLL_CTRL_D");
            //AddRegister(0x030E, "PLL_CTRL_E");
            //AddRegister(0x030F, "PLL_CTRL_F");
            //AddRegister(0x0310, "PLL_CTRL_10");
            //AddRegister(0x0311, "PLL_CTRL_11");
            //AddRegister(0x0312, "PLL_CTRL_12");
            //AddRegister(0x031B, "PLL_CTRL_1B");
            //AddRegister(0x031C, "PLL_CTRL_1C");
            //AddRegister(0x031E, "PLL_CTRL_1E");
            //AddRegister(0x3106, "SCLK_DIV, SCLK_PRE_DIV");
            //AddRegister(0x3007, "R ISPOUT BITSEL");
            //AddRegister(0x3020, "PCLK_DIV");
            //AddRegister(0x3032, "MUX PLL_SYS_CLK");
            //AddRegister(0x3033, "MUX DAC_SYS_CLK");

            // Image Windowing Control
            AddRegister(0x3808, "H_OUTPUT_SIZE 11:8");
            AddRegister(0x3809, "H_OUTPUT_SIZE 7:0");
            AddRegister(0x380A, "V_OUTPUT_SIZE 11:8");
            AddRegister(0x380B, "V_OUTPUT_SIZE 7:0");

            AddRegister(0x380C, "TIMING_HTS 15:8");
            AddRegister(0x380D, "TIMING_HTS 7:0");
            AddRegister(0x380E, "TIMING_VTS 15:8");
            AddRegister(0x380F, "TIMING_VTS 7:0");

            AddRegister(0x3820, "TIMING_FORMAT1");

            // Binning
            AddRegister(0x3821, "TIMING_FORMAT2");
            AddRegister(0x3814, "X_ODD_INC");
            AddRegister(0x3815, "X_EVEN_INC");
            AddRegister(0x382A, "Y_ODD_INC");
            AddRegister(0x382B, "Y_EVEN_INC");

            // DSP top
            AddRegister(0x5000, "DSP CTRL00");
            AddRegister(0x5001, "DSP CTRL01");  // BLC function enable
            AddRegister(0x5002, "DSP CTRL02");  // Variopixel function enable
            AddRegister(0x5003, "DSP CTRL03");
            AddRegister(0x5004, "DSP CTRL04");
            AddRegister(0x5005, "DSP CTRL05");
            AddRegister(0x501F, "DSP CTRL1F");
            AddRegister(0x5025, "DSP CTRL25");
            AddRegister(0x5041, "DSP CTRL41");
            AddRegister(0x5043, "DSP CTRL43");

            // Pre DSP
            AddRegister(0x5E00, "PRE CTRL00");
            AddRegister(0x5E01, "PRE CTRL01");

            // Defective Pixel Cancellation (DPC)
            AddRegister(0x5000, "ISP CTRL00");

            // Window Cut (WINC)
            //AddRegister(0x5A00, "WINC CTRL00");
            //AddRegister(0x5A01, "WINC CTRL01");
            //AddRegister(0x5A02, "WINC CTRL02");
            //AddRegister(0x5A03, "WINC CTRL03");
            //AddRegister(0x5A04, "WINC CTRL04");
            //AddRegister(0x5A05, "WINC CTRL05");
            //AddRegister(0x5A06, "WINC CTRL06");
            //AddRegister(0x5A07, "WINC CTRL07");
            //AddRegister(0x5A08, "WINC CTRL08");

            // Manual White Balance (MWB)
            AddRegister(0x5018, "ISP CTRL18");
            AddRegister(0x5019, "ISP CTRL19");
            AddRegister(0x501A, "ISP CTRL1A");
            AddRegister(0x501B, "ISP CTRL1B");
            AddRegister(0x501C, "ISP CTRL1C");
            AddRegister(0x501D, "ISP CTRL1D");
            AddRegister(0x501E, "ISP CTRL1E");

            // Manual Exposure Compensation (MEC) / Manual Gain Compensation (MGC)
            AddRegister(0x3500, "AEC EXPO 19:16");
            AddRegister(0x3501, "AEC EXPO 15:8");
            AddRegister(0x3502, "AEC EXPO 7:0");
            AddRegister(0x3503, "AEC MANUAL");
            //AddRegister(0x3505, "GCVT OPTION");
            //AddRegister(0x3507, "AEC GAIN SHIFT");
            AddRegister(0x3508, "AEC GAIN 12:8");
            AddRegister(0x3509, "AEC GAIN 7:0");
            AddRegister(0x350A, "AEC DIGIGAIN 13:6");
            AddRegister(0x350B, "AEC DIGIGAIN 5:0");

            // System Control
            //AddRegister(0x300A, "CHIP ID 23:16");
            //AddRegister(0x300B, "CHIP ID 15:8");
            //AddRegister(0x300C, "CHIP ID 7:0");

            // Timing Control Registers
            //AddRegister(0x3822, "REG22");
            //AddRegister(0x382C, "BLC COL ST L");
            //AddRegister(0x382D, "BLC COL END L");
            //AddRegister(0x382E, "BLC COL ST R");
            //AddRegister(0x382F, "BLC COL END R");
            //AddRegister(0x3830, "BLC NUM OPTION");
            //AddRegister(0x3831, "BLC NUM MAN");
            //AddRegister(0x3836, "ZLINE NUM OPTION");

            // BLC Control
            //AddRegister(0x4000, "BLC CTRL00");
            AddRegister(0x4004, "BLC CTRL04 target 15:8");
            AddRegister(0x4005, "BLC CTRL05 target 7:0");

            AddRegister(0x4300, "CLIP MAX HI");
            AddRegister(0x4301, "CLIP MIN HI");
            //AddRegister(0x4302, "CLIP LO");
            //AddRegister(0x4303, "FORMAT CTRL 3");


            // OTP
            // AddRegister(0x3D81, "OTP_REG85");

            // Update GUI elements
            OnPropertyChanged("FPS");
            OnPropertyChanged("ExposureMs"); OnPropertyChanged("Exposure");
            OnPropertyChanged("AnalogGain"); OnPropertyChanged("ISO");
            OnPropertyChanged("IsWhiteBalanceEnabled");
            OnPropertyChanged("MWBGainRed"); OnPropertyChanged("MWBGainGreen"); OnPropertyChanged("MWBGainBlue");
        }