예제 #1
0
        internal SignalProcessor(string signalName, DriveProfileSignalConfig config)
        {
            this.SignalName = signalName;
            this.config     = config;

            this.ParameterNames = ExtractParameters(config.ValueFormula);
            if (this.ParameterNames == null || this.ParameterNames.Length == 0)
            {
                Console.WriteLine("No parameters detected in expression {0}. ValueFormat format error.\n Each variable must correspond modbus operation displayname and start with $");
            }
            else
            {
                FunctionProcessor = new Interpreter();
                Console.WriteLine("Function for signal {0} compiled sucessfully", this.SignalName);
            }
        }
예제 #2
0
        public static ModuleMessageHandler CreateFromConfig(DriveProfileConfig config)
        {
            if (config == null || config.SignalConfigs == null)
            {
                return(null);
            }

            ModuleMessageHandler moduleHandle = new ModuleMessageHandler();

            foreach (string keyName in config.SignalConfigs.Keys)
            {
                DriveProfileSignalConfig signalConfig    = config.SignalConfigs[keyName];
                SignalProcessor          signalProcessor = new SignalProcessor(keyName, signalConfig);
                moduleHandle.SignalProcessorList.Add(signalProcessor);
            }

            return(moduleHandle);
        }