예제 #1
0
        private void readUSB()
        {
            this.viStatus = VISA.viOpenDefaultRM(ref this.defaultRM);

            if (this.viStatus < ViStatus.VI_SUCCESS)
            {
                MessageBox.Show("Failed to open Default RM", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            String usb_ID = "USB0::0x0AAD::0x0178::100958::INSTR";

            this.viStatus = VISA.viOpen(this.defaultRM, usb_ID, VISA.VI_NULL, VISA.VI_NULL, ref this.vi);

            if (this.viStatus < ViStatus.VI_SUCCESS)
            {
                MessageBox.Show("Failed to Connect", "Warning", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            msgbox.AppendText("Connection Success!\n");

            // Set time out values.
            this.viStatus = VISA.viSetAttribute(this.vi, ViAttr.VI_ATTR_TMO_VALUE, 5000);
        }
        private static void Main(string[] args)
        {
            //const string rsaAddress = "127.0.0.1";
            const string rsaAddress = "GPIB8::1::INSTR";
            var          rsa        = new VISA();

            try
            {
                rsa.Open(rsaAddress);
                //rsa.Open(string.Format("TCPIP::{0}::INSTR", rsaAddress));
                if (rsa.Status != TekVISADefs.Status.SUCCESS)
                {
                    Message(string.Format("Unable to connect to RSA at address {0}", rsaAddress));
                    return;
                }

                // Confirm we are connected to the RSA.
                rsa.Write("*RST");
                string retString;
                rsa.Query("*IDN?", out retString);
                Message("Connected to: " + rsaAddress);
                Message("*IDN? returned " + retString);

                // Preset the system, set CF to 1 GHz, 1 MHz span, and turn off continous acquisitions
                rsa.Write(":SYSTEM:PRESET");
                int retVal;
                rsa.Query("*OPC?", out retVal);
                rsa.Write("*CLS");
                rsa.Write("INIT:CONT OFF");
                rsa.Write(":SENSE:SPEC:FREQ:CENTER 1e9");
                rsa.Write(":SENSE:SPEC:FREQ:SPAN 1e6");

                // Add a marker
                rsa.Write("CALCulate:MARKer:ADD");

                // Take one acquisition
                rsa.Write("INIT");
                rsa.Query("*OPC?", out retVal);

                // Use marker to find max peak
                rsa.Write("CALC:SPEC:MARKer0:MAX");
                double peakLevel;
                rsa.Query("CALC:SPEC:MARK0:Y?", out peakLevel);
                Message(string.Format("Peak Amplitude is {0:0.00} dBm", peakLevel));
            }
            finally
            {
                // Be a good .NET citizen and explicitly close resources.
                rsa.Clear();
                rsa.Close();
            }

            Console.WriteLine("Hit enter to close...");
            var wait = Console.ReadLine();
        }
        public void countmoney()
        {
            //此方法用于计算用户租赁场地的花销
            //获取listview中的开始时间和结束时间,计算时间差。
            //用户花的钱 = 时间差*对应场地单价+(违约金)
            //违约金 = (时间差*对应场地单价)*0.3
            //是否需要缴纳违约金看用户的BreakBJ标记是否为YES 为YES,加收,不为YES,不收

            //先根据选取的场地id获取对应的场地价格
            Yard jiage = new Yard();
            chloe_control_all chloe_price = new chloe_control_all("Data Source=DESKTOP-O4C25KM;Initial Catalog=场馆预约系统;Integrated Security=True");

            jiage = chloe_price.catchprice(comboBox1.SelectedValue.ToString()); // ()调用的是控件comboBox的值,即场地id
            double cdprice;

            cdprice = jiage.Price;
            //再根据场地id获取对应列的开始时间和结束时间
            Start             waailu     = new Start();
            String            chalang    = Start.CUser;
            Booking           leihou     = new Booking();
            chloe_control_all chloe_time = new chloe_control_all("Data Source=DESKTOP-O4C25KM;Initial Catalog=场馆预约系统;Integrated Security=True");

            leihou = chloe_time.See_BOOK_CD(comboBox1.SelectedValue.ToString());
            //开始时间、结束时间、中午、下午(用于计算和转换)
            String START, EXIT, MID, AFT;

            START = leihou.OpenTime.ToString();
            EXIT  = leihou.CloseTime.ToString();
            MID   = mid;
            AFT   = aft;
            DateTime dt1 = Convert.ToDateTime(START);
            DateTime dt2 = Convert.ToDateTime(EXIT);
            DateTime dt3 = Convert.ToDateTime(MID);
            DateTime dt4 = Convert.ToDateTime(AFT);
            TimeSpan ts1 = new TimeSpan(dt1.Ticks);
            TimeSpan ts2 = new TimeSpan(dt2.Ticks);
            TimeSpan ts3 = new TimeSpan(dt3.Ticks);
            TimeSpan ts4 = new TimeSpan(dt4.Ticks);
            //计算时间差(然后计算两个TimeSpan的差)
            //时间计算还得区分中午12:00-下午14:00这两个小时的休息时间
            //如果选择的开始时间小于等于12:00以及结束的时间大于等于14:00,实际的消费时间为(12:00-开始时间)+ (结束时间-14:00)
            String ALLtime; //计算出来的时间差

            if (DateTime.Compare(dt1, dt3) <= 0 && DateTime.Compare(dt2, dt4) >= 0)
            {
                TimeSpan ts5 = ts1.Subtract(ts3).Duration();         //(12:00-开始时间)
                TimeSpan ts6 = ts2.Subtract(ts4).Duration();         //(结束时间-14:00)
                TimeSpan ts7 = ts5.Add(ts6).Duration();              //实际的消费时间
                double   t   = ts7.TotalHours / Convert.ToDouble(1); //将TimeSpan转换类型,便于后期计算费用,精确至小数点后两位
                double   t1  = Convert.ToDouble(t);
                ALLtime = t1.ToString();
            }
            else
            {
                TimeSpan ts = ts1.Subtract(ts2).Duration();
                double   m  = ts.TotalHours / Convert.ToDouble(1);
                double   m1 = Convert.ToDouble(m);
                ALLtime = m1.ToString();
            }
            //判断用户标记,计算不同的钱
            //Visa代表违约用户的总金额 VISA代表正常用户的总金额
            //MMMM代表总金额
            double Visa, VISA;
            int    BJ_check_result;

            BJ_check_result = chloe_time.USER_CHECK(chalang);
            if (BJ_check_result == 0) //用户违约用户,需收取违约金
            {
                Visa = double.Parse(ALLtime) * cdprice * 1.3;
                MMMM = Visa.ToString();
            }
            else
            {
                VISA = double.Parse(ALLtime) * cdprice;
                MMMM = VISA.ToString();
            }
        }