public void Init(uint address, string pass, VirtualPort data_vport) { this.m_address = address; this.m_vport = data_vport; libCrc = new LibCRC(LibCRC.Algorithms.crc8Dallas); }
public void Init(uint address, string pass, VirtualPort vp) { this.m_address = address; this.m_vport = vp; isMeterSelected = false; cachedAnsewerBytes.Clear(); }
public void Init(uint address, string pass, VirtualPort vp) { // перевод адреса в формат наладчика // формула: 4194304003 + (n кв*8) this.m_address = 0xFA000000 + Convert.ToUInt32(3 + address * 8); this.m_vport = vp; SetTypesForRead(GetTypesForCategory(CommonCategory.Current)); }
public void Init(uint address, string pass, VirtualPort vp) { this.m_address = address; this.m_vport = vp; this.vp = vp; //для однозачного парсинга float значений System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); customCulture.NumberFormat.NumberDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; }
public void Init(uint address, string pass, VirtualPort vp) { this.m_address = address; // TODO в этом драйвере сетевой номер получается не так, см. документацию // поправить this.m_addr = (byte)(this.m_address & 0x000000ff); this.m_vport = vp; isMeterSelected = false; cachedAnsewerBytes.Clear(); }
public void Init(uint address, string pass, VirtualPort data_vport) { m_address = address; this.m_vport = data_vport; for (byte t = 1; t <= m_max_canals; t++) { m_dictDataTypes.Add(t, ""); } //m_log_file_name += this.GetType() + "_" + m_address.ToString(); }
//private byte m_ident_name_size = 0; //private int IDENT_CMD_ANSWER_SIZE = m_min_answer_length; /// <summary> /// Конструктор /// </summary> /// <param name="address"></param> public void Init(uint address, string pass, VirtualPort data_vport) { this.m_address = address; //m_ident_name_size = 7; for (byte t = 1; t <= m_max_types; t++) { m_dictDataTypes.Add(t, ""); } this.m_vport = data_vport; // m_log_file_name += this.GetType() + "_" + m_address.ToString(); }
public void Init(uint address, string pass, VirtualPort data_vport) { if (drvt != null) { foreach (MethodInfo m in drvmi) { if (m.Name.CompareTo("Init") == 0) { object[] FuncParam = { address, pass, data_vport }; m.Invoke(refo, FuncParam); return; } } } }
public void Init(uint address, string pass, VirtualPort data_vport) { try { string[] p = pass.Split('#'); this.sPrgId = p[0]; this.sItemTag = p[1]; } catch (Exception ex) { sPrgId = "Logika.DA.2"; sItemTag = "SPbus.SPG762.p1.300(Potr)"; } this.m_vport = data_vport; }
/// <summary> /// Конструктор /// </summary> /// <param name="address"></param> /// <param name="password"></param> public void Init(uint address, string pass, VirtualPort data_vport) { if (address == 0) { WriteToLog("Init: Не возможно проинициализировать драйвер karat30X с адресом 0"); return; } // проинициализируем массив в котором будет кэш int[] archiveTypeRegisterVals = (int[])Enum.GetValues(typeof(ArchiveTypeRegister)); foreach (int typeReg in archiveTypeRegisterVals) { this.archiveCash[(short)typeReg] = new byte[0]; } this.m_address = address; m_vport = data_vport; }
private bool initMeterDriver(uint mAddr, string mPass, VirtualPort virtPort) { if (virtPort == null) { return(false); } try { Meter = new Mercury23XDriver(); Meter.Init(mAddr, mPass, virtPort); return(true); } catch (Exception ex) { WriteToStatus("Ошибка инициализации драйвера: " + ex.Message); return(false); } }
// TODO: сделать интерфейс получения информации из драйвера - по параметрам // и по паролю public void Init(uint address, string pass, VirtualPort data_vport) { // ожидаемый формат пароля: ftp;admin;admin;1234 - номер прибора string[] passwordParts = pass.Split(';'); if (passwordParts.Length < 4) { return; } // TODO: ловить исключения в драйверах //throw new Exception("Не возможно инициализировать драйвер, ожидаемый формат пароля ftp;admin;admin;1234"); ftpCredentials = new NetworkCredential(passwordParts[1], passwordParts[2]); ftpFileCurrentPath = FTP_PATH + FTP_FILENAME; // TODO: получать из data_vport ftpHost = "192.168.0.1"; indivId = passwordParts[3]; }
/// <summary> /// Конструктор /// </summary> /// <param name="address"></param> /// <param name="password"></param> public void Init(uint address, string pass, VirtualPort data_vport) { // всегда делай так, нужно для логгирования this.m_vport = data_vport; //if (address == 0) //{ // WriteToLog("Init: Не возможно проинициализировать драйвер karat30X с адресом 0"); // return; //} this.WriteToLog("Драйвер карата проинициализирован"); // проинициализируем массив в котором будет кэш int[] archiveTypeRegisterVals = (int[])Enum.GetValues(typeof(ArchiveTypeRegister)); foreach (int typeReg in archiveTypeRegisterVals) { this.archiveCash[(short)typeReg] = new byte[0]; } this.m_address = address; }
public void Init(uint address, string pass, VirtualPort data_vport) { this.m_address = address; int tmp = 0; if (pass != "" && int.TryParse(pass, out tmp) && tmp > 0) readDailyTimeoutInDays = tmp; else readDailyTimeoutInDays = 3; directoryBase = AppDomain.CurrentDomain.BaseDirectory; }
private bool setVirtualSerialPort(bool setTcp) { ushort read_timeout = (ushort)numericUpDown1.Value; byte attempts = 1; uint mAddr = 0x01; string mPass = this.tbPass.Text; if (!setTcp) { try { SerialPort m_Port = new SerialPort(comboBox1.Items[comboBox1.SelectedIndex].ToString()); m_Port.BaudRate = int.Parse(ConfigurationSettings.AppSettings["baudrate"]); m_Port.DataBits = int.Parse(ConfigurationSettings.AppSettings["databits"]); m_Port.Parity = (Parity)int.Parse(ConfigurationSettings.AppSettings["parity"]); m_Port.StopBits = (StopBits)int.Parse(ConfigurationSettings.AppSettings["stopbits"]); m_Port.DtrEnable = bool.Parse(ConfigurationSettings.AppSettings["dtr"]); //meters initialized by secondary id (factory n) respond to 0xFD primary addr Vp = new ComPort(m_Port, attempts, read_timeout, 400); if (!initMeterDriver(mAddr, mPass, Vp)) { return(false); } //check vp settings SerialPort tmpSP = (SerialPort)Vp.GetPortObject(); toolStripStatusLabel2.Text = String.Format("{0} {1}{2}{3} DTR: {4} RTimeout: {5} ms", tmpSP.PortName, tmpSP.BaudRate, tmpSP.Parity, tmpSP.StopBits, tmpSP.DtrEnable, read_timeout); exportFilename = String.Format("{0}_{1}-{2}", tmpSP.PortName, numericUpDown2.Value, numericUpDown3.Value); return(true); } catch (Exception ex) { WriteToStatus("Ошибка создания виртуального COM порта: " + ex.Message); return(false); } } else { try { ushort write_timeout = 100; int delay_between_sendings = 50; //TODO: сделать это подсосом из xml NameValueCollection loadedAppSettings = new NameValueCollection(); loadedAppSettings.Add("localEndPointIp", this.listBox1.SelectedItem.ToString()); Vp = new TcpipPort(textBox1.Text, (int)numericUpDown4.Value, write_timeout, read_timeout, delay_between_sendings, loadedAppSettings); if (!initMeterDriver(mAddr, mPass, Vp)) { return(false); } toolStripStatusLabel2.Text = String.Format("TCP {0}:{1} RTimeout: {2} ms", textBox1.Text, (int)numericUpDown4.Value, read_timeout); exportFilename = String.Format("{0}_{1}-{2}", textBox1.Text + "_" + numericUpDown4.Value, numericUpDown2.Value, numericUpDown3.Value); return(true); } catch (Exception ex) { WriteToStatus("Ошибка создания виртуального TCP порта: " + ex.Message); return(false); } } }
/// <summary> /// Конструктор /// </summary> /// <param name="address"></param> /// <param name="password"></param> public void Init(uint address, string pass, VirtualPort data_vport) { byte[] password = new byte[pass.Length]; for (int j = 0; j < password.Length; j++) { password[j] = Convert.ToByte(pass[j]); password[j] -= 0x30; } //if (address > 239) this.m_address = address - 239; //else this.m_address = address; if (address == 0) { WriteToLog("Init: Не возможно проинициализировать драйвер m230 с адресом 0"); return; } this.m_address = address % 239; if (m_address == 0) m_address = 239; password.CopyTo(this.m_password, 0); m_vport = data_vport; }
public void Init(uint address, string pass, VirtualPort data_vport) { bool password_type_hex = false; this.m_address = address; if (m_password.Length >= pass.Length) { for (int j = 0; j < pass.Length; j++) { if (password_type_hex) { m_password[j] = Convert.ToByte(pass[j]); m_password[j] -= 0x30; } else { m_password[j] = Convert.ToByte(pass[j]); } } } /* for (byte t = 1; t <= (byte)TypesValues.QC; t++) { m_dictDataTypes.Add(t, ""); } */ m_vport = data_vport; //m_log_file_name += this.GetType() + "_" + m_address.ToString(); }
public void Init(uint address, string pass, VirtualPort vp) { this.m_address = address; this.m_addr = (byte)(this.m_address & 0x000000ff); this.m_vport = vp; }
private bool initMeterDriver(uint mAddr, string mPass, VirtualPort virtPort) { if (virtPort == null) return false; try { Meter = new teplouchet1(); Meter.Init(mAddr, mPass, virtPort); return true; } catch (Exception ex) { WriteToStatus("Ошибка инициализации драйвера: " + ex.Message); return false; } }
/// <summary> /// Конструктор /// </summary> /// <param name="address"></param> /// <param Pulsar="password"></param> public void Init(uint address, string pass, VirtualPort data_vport) { this.m_address = address; m_vport = data_vport; }
private bool setVirtualSerialPort() { try { byte attempts = 1; ushort read_timeout = (ushort)numericUpDownComReadTimeout.Value; ushort write_timeout = (ushort)numericUpDownComWriteTimeout.Value; if (!checkBoxTcp.Checked) { SerialPort m_Port = new SerialPort(comboBoxComPorts.Items[comboBoxComPorts.SelectedIndex].ToString()); m_Port.BaudRate = int.Parse(ConfigurationSettings.AppSettings["baudrate"]); m_Port.DataBits = int.Parse(ConfigurationSettings.AppSettings["databits"]); m_Port.Parity = (Parity)int.Parse(ConfigurationSettings.AppSettings["parity"]); m_Port.StopBits = (StopBits)int.Parse(ConfigurationSettings.AppSettings["stopbits"]); m_Port.DtrEnable = bool.Parse(ConfigurationSettings.AppSettings["dtr"]); //meters initialized by secondary id (factory n) respond to 0xFD primary addr Vp = new ComPort(m_Port, attempts, read_timeout, write_timeout); } else { Vp = new TcpipPort(textBoxIp.Text, int.Parse(textBoxPort.Text), write_timeout, read_timeout, 0); } uint mAddr = 0xFD; string mPass = ""; if (!initMeterDriver(mAddr, mPass, Vp)) return false; //check vp settings if (!checkBoxTcp.Checked) { SerialPort tmpSP = Vp.getSerialPortObject(); if (!DemoMode) { toolStripStatusLabel2.Text = String.Format("{0}-{1}-{2}-DTR({3})-RTimeout: {4}ms", tmpSP.PortName, tmpSP.BaudRate, tmpSP.Parity, tmpSP.DtrEnable, read_timeout); } else { toolStripStatusLabel2.Text = String.Empty; } } else { toolStripStatusLabel2.Text = "TCP mode"; } return true; } catch (Exception ex) { WriteToStatus("Ошибка создания виртуального порта: " + ex.Message); return false; } }
public void Init(uint address, string pass, VirtualPort vp) { // перевод адреса в формат наладчика this.m_address = 0xFA000000 + Convert.ToUInt32(3 + address * 8); this.m_vport = vp; SetTypesForRead(GetTypesForCategory(CommonCategory.Current)); }
public ArchiveValueParser(byte[] d_array, uint m_address, VirtualPort vport) { this.m_address = m_address; this.m_vport = vport; WriteToLog("ArchiveValueParser - constructor start"); crc_check = CRC8(d_array, d_array.Length); if (crc_check == 0x0) { try { Array.Copy(d_array, id_index, id_bytes_arr, 0, id_bytes_arr.Length); Array.Copy(d_array, date_index, date_bytes_arr, 0, date_bytes_arr.Length); Array.Copy(d_array, energy_index, energy_bytes_arr, 0, energy_bytes_arr.Length); Array.Copy(d_array, vol_index, vol_bytes_arr, 0, vol_bytes_arr.Length); Array.Copy(d_array, time_on_index, time_on_bytes_arr, 0, time_on_bytes_arr.Length); Array.Copy(d_array, time_err_index, time_err_bytes_arr, 0, time_err_bytes_arr.Length); /*Во всех запросах кроме запросов на получение архивов используется формат данных LSB-MSB*/ if (BitConverter.IsLittleEndian) { Array.Reverse(id_bytes_arr); Array.Reverse(energy_bytes_arr); Array.Reverse(vol_bytes_arr); Array.Reverse(time_on_bytes_arr); Array.Reverse(time_err_bytes_arr); } //id записи archVal.id = BitConverter.ToInt32(id_bytes_arr, 0); //разбор даты [15 [14 05] 01 02] 01-02-15 14:05 string hexValue = date_bytes_arr[0].ToString("X"); int year = Convert.ToByte(hexValue, 16) + 2000; hexValue = date_bytes_arr[1].ToString("X"); int hours = Convert.ToByte(hexValue, 16); hexValue = date_bytes_arr[2].ToString("X"); int minutes = Convert.ToByte(hexValue, 16); hexValue = date_bytes_arr[3].ToString("X"); int day = Convert.ToByte(hexValue, 16); hexValue = date_bytes_arr[4].ToString("X"); int month = Convert.ToByte(hexValue, 16); archVal.dt = new DateTime(year, month, day, hours, minutes, 0); //разбор ресурсов archVal.energy = ((float)BitConverter.ToUInt32(energy_bytes_arr, 0) / 1000); archVal.volume = ((float)BitConverter.ToUInt32(vol_bytes_arr, 0) / 1000); //разбор времени работы и вр.работы с ошибкой соответственно archVal.timeOn = BitConverter.ToInt32(time_on_bytes_arr, 0); archVal.timeErr = BitConverter.ToInt32(time_err_bytes_arr, 0); isOk = true; } catch (Exception ex) { isOk = false; WriteToLog("ArchiveValueReader: Ошибка разбора значений"); } } else { WriteToLog("ArchiveValueReader: Ошибка подсчета контрольной суммы"); } }