Hello fellow vCampus members!
In light of Asle's showcase, I would also like to present something. I call it 'PI Nexus'. 'Nexus' is a latin word, which can be loosely translated to 'to connect' or 'connection between things or people'.
The purpose of PINexus is to provide a full set of PI Client tools in a single environment, and provide the opportunity to easily create and extend functionality. Next to that, PINexus provides dashboarding functionality for PI / other systems (more on that later).
The first goal is to provide this functionality on an 'on premise' webserver, but the next version will be able to run in the cloud (Windows Azure)! This is actually my 3th total rewrite of the project. I'm now working on the 4th
PINexus is developed in Silverlight 4, with a WCF/.NET 4 backend. It is currently a prototype/research project. I have a total 2 years of my free time invested in this (started with Silverlight 2 beta ).
The project is a merge of 3 of my other 'hobby' projects:
- Silverlight WebDesktop - with the aim to provide a desktop environment in Silverlight
- LinqToPi - which is now used in the backend to retrieve PI data/metadata
- PIDash - an attempt to create a dashboarding application for PI in Silverlight
This is the first time I'm showing it. I thought it was a shame that it was only sitting on my laptop. So, I would like to take you on a tour using screenshots, and it would be really great if you could tell me what you think of it!
Please note that the screenshots are taken on a PI installation that was 5 minutes old. There is not a lot of data there at the moment :)
All the screenshots are taken from a browser (Silverlight) application. All the data is accessed trough a WCF service..
This is the login screen. Users are authenticated against the Windows accounts on the hosting machine.
This is the main working area. Shown here is the collapsable menu on top, with the different functionality. It's layed out like the Office 2007 ribbons. You can identify the main functions. The ribbon also provides direct search function, direct access to vCampus and techsupport website and also the notion of 'multiple work area's' (the squares with the numbers). You can click one of the squares and go to that work area (much like multiple desktops in linux windowmanagers).
This is an example of a PINexus application (in this case, a videplayer: the PI related stuff will come soon :) ). When a user clicks the icon on the desktop (the WMV file), the appropriate application is searched (in this case, the videplayer). The application is then downloaded from the server, and loaded into PINexus. The application is then started with a parameter to the opened file. So, there is a file <> application association.
This shows the use of multiple windows. The windows react much the same as in Windows, with a twist. The windows also have a back-side, if you double click the bottom bar, the window will rotate and show the backside. Applications can make use of this backside to provide additional functionality (for instance, configuration options. It shows the taskmanager (with the running applications), the filebrowser (with tagging support) and a simple image presenter. edit: a video of the flipping windows can be found here
This shows two windows, the file explorer and the console. PINexus supports two windowing modes: floating (like windows), and autotile. With autotile, the windows are automatically positioned and sized. The files are all on the server (notion of a 'remote filesystem').
Altough a console might sound like outdated functionality, this one is very helpfull. It has autocompletion and command history. Not only can it display text, but also complex interactive controls.
In this case, the test2.sql file is an PIOLEDB command. This can be executed using the 'run' command (which can also execute csharp and performance equations). The result is then displayed in a (interactive) grid.
This demonstrates the execution of csharp code in the console ("Hallo Wereld" is 'hello world' in Dutch). The console also includes a nice editor (with automatic syntax highlighting for PE, SQL, XML and C#) in which you can create the executable code. This way, you can create scripts in C# (which can also access PI)
Next to that, the console also includes an eval mode. In the eval mode, you can type csharp code, which is then evaluated.
This demonstrates the usage of the 'pivalues' and 'chart' command in the console. Console commands (or console apps) can be easily created using the PINexusSDK (just implement an interface, and place the dll in a directory on the remote filesystem).
On to the PI stuff now. This shows a Performance Equation editor and the build-in tagsearch
This shows the 'quickanalyze' application. With this, you can quickly trend some PI tags
This shows the same application, but then in master/detail view
This shows the 'SQL Explorer' (with syntax highlighting)
This shows the dashboarding management application. The dashboards are a seperate part of PINexus, but they are configured using this application.On the left you see the toolbox. This displays the controls that can be added to the dashboard. These can be any Silverlight control. The middle section shows the XAML of the dashboard. At this time, only direct XAML editing is supported, there is no graphical designer just yet!. On the right you see the layout of the dashboard. You can add 'folders' and new displays. On the far right are the properties of that page (name, description, etc).
Here is the same page in preview mode:
This results in the following dashboard in 'running mode'. Please note the 'show workspace' link in the far right, this takes you back to your workspace. On the workspace, there is a same link to go to the dashboard. You can switch back and forth very quickly.
As mentioned before, you can add any Silverlight Control to your dashboard. In this case, a tagsearch (the same as seen before).
This shows the build-in webbrowser, with some widgets on the background 'desktop'. You see a note, calendar, RSS and Twitter widget. These widgets are very easy to create using the PINexusSDK. You can easily think of trends and gauges for your PI system.
And at last, an overview showing the simple email client (not configured in this screenshot, but working), the calculator and the same widgets
Well, that was it. I was planning on creating a screencast (if you guys are interested), so I can show the usage of the windows, the smooth transitions and the easy use of the application.
I'm really curious about what everyone thinks of it. I learned so much creating this, that alone was worth the effort :)
As a side note: this application is created by me personally, and does not depict any commercial application from my company or otherwise.