Beispiel #1
0
        static public void SetValue(NameVar var, string value)
        {
            if (var.modbus == null)
            {
                if (!dumps.ContainsKey(var.subsystem))
                {
                    throw new ArgumentException("Subsystem " + var.subsystem + " not supported!");
                }
                Dumper dump = dumps[var.subsystem];
                string str  = dump.GetValueStr(var.name);
                if (str == null)
                {
                    throw new ArgumentException("Subsystem " + var.subsystem + " var " + var.name + " not found!");
                }
                dump.SetValue(var.name, value);
                return;
            }
            if (!masters.ContainsKey(var.subsystem + "." + var.modbus))
            {
                throw new ArgumentException("Subsystem " + var.subsystem + " and modbus" + var.modbus + " not supported!");
            }
            MasterModbus master = masters[var.subsystem + "." + var.modbus];
            string       result = master.GetValueString(var.name);

            if (result == null)
            {
                throw new ArgumentException("Subsystem " + var.subsystem + " modbus " + var.modbus + " var " + var.name + " not found!");
            }
            if (master.IsReadOnly(var.name))
            {
                throw new ArgumentException("Subsystem " + var.subsystem + " modbus " + var.modbus + " var " + var.name + " read only!");
            }
            master.SetValueString(var.name, value);
        }
Beispiel #2
0
        static public void AddDumper(string nameSubs)
        {
            if (!nameSubs.Contains("."))
            {
                if (!dumps.ContainsKey(nameSubs))
                {
                    Dumper dump = new Dumper(MainWindow.project, nameSubs, MainWindow.project.subs[nameSubs].main);
                    if (!dump.Status)
                    {
                        throw new ArgumentException("Subsystem " + nameSubs + " not supported!");
                    }
                    dump.Connect();
                    if (!dump.isConnected())
                    {
                        throw new ArgumentException("Subsystem " + nameSubs + " not connected!");
                    }
                    dumps.Add(nameSubs, dump);
                }
                else
                {
                    throw new ArgumentException("Subsystem " + nameSubs + " is used!");
                }
                return;
            }
            if (masters.ContainsKey(nameSubs))
            {
                throw new ArgumentException("Subsystem and modbus" + nameSubs + " is used!");
            }
            string sub    = nameSubs.Substring(0, nameSubs.IndexOf("."));
            string modbus = nameSubs.Substring(nameSubs.IndexOf(".") + 1);

            if (!MainWindow.project.subs.ContainsKey(sub))
            {
                throw new ArgumentException("Subsystem " + sub + " is not loaded!");
            }
            Subsystem Sub = MainWindow.project.subs[sub];

            foreach (ModbusDevice md in Sub.modbuses)
            {
                if (md.isMaster())
                {
                    continue;
                }
                if (md.name.CompareTo(modbus) != 0)
                {
                    continue;
                }
                MasterModbus master = new MasterModbus(Sub, md);
                master.Connect();
                if (!master.IsConnected())
                {
                    throw new ArgumentException("Subsystem " + sub + " modbus " + modbus + " not connected!");
                }
                masters.Add(nameSubs, master);
                return;
            }
            throw new ArgumentException("Subsystem and modbus " + nameSubs + " not founded!");
        }
Beispiel #3
0
        static public string GetValue(NameVar var)
        {
            if (var.modbus == null)
            {
                if (!dumps.ContainsKey(var.subsystem))
                {
                    throw new ArgumentException("Subsystem " + var.subsystem + " not supported!");
                }
                Dumper dump = dumps[var.subsystem];
                string str  = dump.GetValueStr(var.name);
                if (str == null)
                {
                    throw new ArgumentException("Subsystem " + var.subsystem + " var " + var.name + "not found!");
                }
                if (str.Contains("true"))
                {
                    str = "1";
                }
                if (str.Contains("false"))
                {
                    str = "0";
                }
                return(str);
            }
            if (!masters.ContainsKey(var.subsystem + "." + var.modbus))
            {
                throw new ArgumentException("Subsystem " + var.subsystem + " and modbus" + var.modbus + " not supported!");
            }
            MasterModbus master = masters[var.subsystem + "." + var.modbus];
            string       result = master.GetValueString(var.name);

            if (result == null)
            {
                throw new ArgumentException("Subsystem " + var.subsystem + " modbus " + var.modbus + " var " + var.name + "not found!");
            }
            if (result.Contains("true"))
            {
                result = "1";
            }
            if (result.Contains("false"))
            {
                result = "0";
            }
            return(result);
        }
Beispiel #4
0
        static public void Close(string nameSubs)
        {
            if (!nameSubs.Contains("."))
            {
                if (!dumps.ContainsKey(nameSubs))
                {
                    throw new ArgumentException("Subsystem " + nameSubs + " not supported!");
                }
                Dumper dump = dumps[nameSubs];
                dump.Close();
                dumps.Remove(nameSubs);
                return;
            }
            if (!masters.ContainsKey(nameSubs))
            {
                throw new ArgumentException("Subsystem and modbus " + nameSubs + " not supported!");
            }
            MasterModbus master = masters[nameSubs];

            master.Close();
            masters.Remove(nameSubs);
        }