예제 #1
0
        /// <summary>
        /// 220 - выйти на длину волны без установки сменных элементов.
        /// </summary>
        /// <param name="v_Monochromator"> Передает 1 байт: 0 - первый монохроматор, 1 – второй монохроматор, 2 – оба вместе </param>
        /// <param name="v_WaveLength"> Длина волны </param>
        /// <param name="v_TimeToSleep"> Время ожидания ответа на команду</param>
        public bool F_ComOut_220_ReachWavelength(byte v_Monochromator = 0, float v_WaveLength = 0, Int32 v_TimeToSleep = 500)
        {
            if (V_CommandExecutable.WaitOne(v_TimeToSleep))
            {
                byte[][] v_bytes = new byte[2][];
                v_bytes[0] = new byte[] { (byte)0x90, v_Monochromator };
                v_bytes[1] = C_PackageD02.F_СonversionFloat32(v_WaveLength);

                foreach (byte[] v_bytesOut in v_bytes)
                {
                    foreach (byte v_byteOut in v_bytesOut)
                    {
                        F_ComOut_WriteVerification(v_byteOut, v_TimeToSleep);
                    }
                }
                //V_WaitOfContinuation.WaitOne(v_TimeToSleep);
                Thread.Sleep(5 * v_TimeToSleep);

                F_ComIn_Sleep();
                F_ComIn_205();
                F_ComIn_202();
                return(true);
            }
            return(false);
        }
예제 #2
0
 /// <summary>
 /// 227 - параметры сканирования
 /// </summary>
 /// <param name="v_first">Начало диапазона</param>
 /// <param name="v_second">Конец диапазона</param>
 /// <param name="v_NummberShift">Номер шага</param>
 /// <param name="v_NumberSpeed">Номер скорости</param>
 /// <param name="v_ModeScan">Режим сканирования: 0 – I монохр, 1 – II монохр, 2 - параллельно</param>
 /// <param name="v_NoMove">Положение несканирующего монохр</param>
 /// <param name="v_TimeToSleep">Время ожидания ответа на команду</param>
 public bool F_ComOut_227_OptionsScan(float v_first, float v_second, byte v_NummberShift, byte v_NumberSpeed, List <byte> v_ModeScan, float v_NoMove, Int32 v_TimeToSleep = 500)
 {
     if (V_CommandExecutable.WaitOne(v_TimeToSleep))
     {
         byte[][] v_bytes = new byte[8][];
         v_bytes[0] = new byte[] { (byte)0x97 };
         if (v_first >= v_second)
         {
             v_bytes[1] = C_PackageD02.F_СonversionFloat32(v_first);
             v_bytes[2] = C_PackageD02.F_СonversionFloat32(v_second);
             //v_bytes[7] = (Int16)((v_first-v_second)/);
         }
         else
         {
             v_bytes[2] = C_PackageD02.F_СonversionFloat32(v_first);
             v_bytes[1] = C_PackageD02.F_СonversionFloat32(v_second);
         }
         v_bytes[3] = new byte[] { v_NummberShift };
         v_bytes[4] = new byte[] { v_NumberSpeed };
         v_bytes[5] = v_ModeScan.ToArray();
         v_bytes[6] = C_PackageD02.F_СonversionFloat32(v_NoMove);
         foreach (byte[] v_bytesOut in v_bytes)
         {
             foreach (byte v_byteOut in v_bytesOut)
             {
                 F_ComOut_WriteVerification(v_byteOut, v_TimeToSleep);
             }
         }
         return(true);
     }
     return(false);
 }
예제 #3
0
        /// <summary>
        /// 205 - Коррекция
        /// </summary>
        /// <param name="v_Second"> Положение II монохроматора (нм.)</param>
        /// <param name="v_First"> Положение I монохроматора введенное оператором в случае коррекции по счетчику или произвольные числа при коррекции по реперам</param>
        /// <param name="v_TimeToSleep"> Время ожидания ответа на команду</param>
        public bool F_ComOut_205_Correction(float v_Second = 0, float v_First = 0, Int32 v_TimeToSleep = 500)
        {
            if (V_CommandExecutable.WaitOne(v_TimeToSleep))
            {
                F_WriteTextAsync(null, " 205");
                byte[][] v_bytes = new byte[3][];
                v_bytes[0] = new byte[] { (byte)0x85 };
                v_bytes[2] = C_PackageD02.F_СonversionFloat32(v_First);
                v_bytes[1] = C_PackageD02.F_СonversionFloat32(v_Second);

                foreach (byte[] v_bytesOut in v_bytes)
                {
                    foreach (byte v_byteOut in v_bytesOut)
                    {
                        F_ComOut_WriteVerification(v_byteOut, v_TimeToSleep);
                    }
                }
                //V_WaitOfContinuation.WaitOne(v_TimeToSleep);
                Thread.Sleep(2500);

                F_ComIn_Sleep();
                F_ComIn_205();
                F_ComIn_202();
                return(true);
            }
            return(false);
        }