|
This blog entry describes what I intend to do in the near future. It does not collide with our roadmap, there will be only one new item inside (scripting), and the implementation will be planned carefully in order to exclude any interference with other functionality. O.K., so what's inside: - improvement of Timers plugin: - relative timer already implemented (ticking in a regular interval, but unsynchronized to real time) - absolute timer (ticking at a given time in a given interval - for example every second sync to 0:00, or every hour sync to 00:04:30, or every Monday at 8:00, or every last day of a month at 23:59:59, etc....). - improvement of MODBUS plugin: - exception handling - device failure information in a dedicated channel - channel conversion when reading from MODBUS registers for various device stored types (uint16, int16, uint32, int32, float, string) - serial interface Master - implement TCP and Serial Slave, but this not in a near future - adding of Scripting infrastructure. I think it will radically improve flexibility and usability of FS2. - scripting using IronPython (now matured technology in version 2.0) - script editing (in future also debugging) using Scintilla (Scintilla.NET wrapper) - script storing in Project file - various types of scripts, at the time I think about three types: 1) "Channel" scripts - can read any channel value, make computation and write to any channel value (preferably simulation generic channels as internal variables). Activation of these scripts via configured channels' "value changed" event (that means also possible "cyclic" behavior using timer channels, or "spontaneous" (computation when input value changes) using value source channels). 2) "Action" scripts for schemas: A new "Script" Action object will be defined, which will call the script according to defined channel change event. Script also becomes the source FrameworkElement object reference as a parameter, so it can freely manipulate with grahical representation of the actioned object. 3) "Designer" scripts - user scripts for design time extensions for Designer, in some form of a "plugin" infrastructure, usable for writing of import or export filters for database or schemas etc. This type must be still thought over, at the time I have no closer idea how to do it. Some next ideas for development - New communication plug for SNMP device monitoring - New communication plug for system resource monitoring will be I hope covered by Lada. That's all folks. Pavel
|
Comments
2009-02-0918:31:17 Hi Pavel,
I have used SharpSNMP before, it works alright, see: www.codeplex.com/sharpsnmplib It would be nice if you could make like a network overview on tcp/ip level and see the health of your devices (ie. modbus gateways etc ).
2009-02-0711:06:48 Hello Martin,
that's exactly what we are just doing! Our MODBUS plugin is implemented using nModbus library. To the SNMP - I am thinking about such a plugin, but I am at the time not decided for a particular .NET SNMP library. Do you have an idea?
2009-01-3010:27:31 Why dont you make use of existing components? Such as nModbus which is an excellent library for Modbus and also there are libs for SNMP etc
2009-01-2212:52:57 To the compatibility:
SCINTILLA:
Scintilla is a piece of native code. Sentence from scintilla.org: Scintilla and SciTE are currently available for Intel Win32 and Linux compatible operating systems with GTK+.
SCINTILLA.NET Wrapper: managed code, MONO support is an open question
IronPython: managed code, MONO support is an open question
2009-01-2207:15:17 One thing which we need to take into account when using 3rd party components is availability of this component on different platforms. If it has Native code, then it should have at least 2 versions (x86 and x64). If there is Linux support, it would be great. If the component is .Net based, it should support both .Net and Mono. That will help us later to implement some utilities which can work on both Windows and Linux.
2009-01-2121:14:36 Alex asked me by mail:
"can you describe how do you want to implement scripting functionality? As plugin? Or monolit?"
My answer is: My first intention was to do it as a plugin. Then I refused it due to some restrictions, and I prefer the integrated solution. Some reasons: Script view should be integrated into Designer views. This is not possible wit plugin. Debugging must interact with this View. Script "action" in schemas will have simple implementation with integrated script engine. Etc