//Fills the histogram-related register list private void GetRegisters(uint requested_channel) { uint fpga = requested_channel / 16; for (int i = 0; i < base_controls.Length; i++) { Mu2e_Register.FindAddr(Convert.ToUInt16(base_controls[i] + (fpga * 0x400)), ref febClient.arrReg, out histo_controls[i]); //Histogram control registers //histo_controls[i].addr += Convert.ToUInt16(fpga * histo_controls[i].fpga_offset_mult); //Apply the offset to the histo_controls } }
//Fills the histogram-related register list private void GetRegisters() { for (int i = 0; i < base_addrs.Length; i++) { Mu2e_Register.FindAddr(base_addrs[i], ref febClient.arrReg, out histo_controls[i]); //Histogram controls } for (int k = 0; k < write_addrs.Length; k++) { Mu2e_Register.FindAddr(write_addrs[k], ref febClient.arrReg, out write_regs[k]); //write registers } }
//public bool SoftwareTrig() //{ // SW.WriteLine("trig"); // timeout = 0; // while ((SR.ReadLine() != "trig") && (timeout < max_timeout)) { System.Threading.Thread.Sleep(1); timeout++; } // if (timeout < max_timeout) { return true; } else { return false; } //} public bool CheckStatus(out uint spill_state, out uint spill_num, out uint trig_num) { Mu2e_Register.FindAddr(0x76, ref arrReg, out Mu2e_Register reg_spill_state); Mu2e_Register.FindAddr(0x68, ref arrReg, out Mu2e_Register reg_spill_num); Mu2e_Register.FindAddr(0x67, ref arrReg, out Mu2e_Register reg_trig_count); Mu2e_Register.ReadReg(ref reg_spill_state, ref client); Mu2e_Register.ReadReg(ref reg_spill_num, ref client); Mu2e_Register.ReadReg(ref reg_trig_count, ref client); spill_state = reg_spill_state.val; spill_num = reg_spill_num.val; trig_num = reg_trig_count.val; return(true); }
public bool ReadCMB_SN(int FPGAnum, int CMB_num, out string CMB_ROM) { CMB_ROM = ""; try { if (_ClientOpen) { Mu2e_Register CMB_set; //addr25 Mu2e_Register.FindAddr(0x25, ref this.arrReg, out CMB_set); Mu2e_Register CMB_cmnd; //addr24 Mu2e_Register.FindAddr(0x24, ref this.arrReg, out CMB_cmnd); Mu2e_Register CMB_read; //addr26 Mu2e_Register.FindAddr(0x26, ref this.arrReg, out CMB_read); try { if (FPGAnum < 4) { CMB_set.fpga_index = Convert.ToUInt16(FPGAnum); CMB_cmnd.fpga_index = Convert.ToUInt16(FPGAnum); CMB_read.fpga_index = Convert.ToUInt16(FPGAnum); } } catch { } switch (CMB_num) { case 0: Mu2e_Register.WriteReg(1, ref CMB_set, ref this.client); break; case 1: Mu2e_Register.WriteReg(2, ref CMB_set, ref this.client); break; case 2: Mu2e_Register.WriteReg(4, ref CMB_set, ref this.client); break; case 3: Mu2e_Register.WriteReg(8, ref CMB_set, ref this.client); break; default: Mu2e_Register.WriteReg(1, ref CMB_set, ref this.client); break; } Mu2e_Register.WriteReg(0x200, ref CMB_cmnd, ref this.client); SendStr("rdi 26"); string t = ""; int rt = 0; ReadStr(out t, out rt); CMB_ROM = t; return(true); } else { return(false); } } catch { return(false); } }