/// <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); }
/// <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); }
/// <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); }