|
|
|
|
# Return to Ritherdon: Eyes and Ears
|
|
|
|
|
|
|
|
|
|
Eyes and Ears is a Windows UWP 'Dashboard App.' which monitors the
|
|
|
|
|
overall artwork, 'Personal Flash in Real-Time' -- which is one of
|
|
|
|
|
several artworks in the 'Return to Ritherdon' project. For more
|
|
|
|
|
information on the 'Return to Ritherdon' project, please use the
|
|
|
|
|
following link:
|
|
|
|
|
|
|
|
|
|
- [Return to Ritherdon Overview](https://git.abbether.net/return-to-ritherdon/rtr-docs)
|
|
|
|
|
|
|
|
|
|
![Screenshot 1](./attachments/eyes-and-ears-screenshot-1.png)
|
|
|
|
|
|
|
|
|
|
![Screenshot 2](./attachments/eyes-and-ears-screenshot-2.png)
|
|
|
|
|
|
|
|
|
|
## Overview of Eyes and Ears Fits into the 'Personal Flash in Real-Time' System
|
|
|
|
|
|
|
|
|
|
For the purpose of this documentation, I will refer to 'Personal Flash
|
|
|
|
|
in Real-Time' as a 'system' instead of an 'artwork'. The reason why is
|
|
|
|
|
becaues of the context we are viewing the various (sub-)projects and
|
|
|
|
|
their components in.
|
|
|
|
|
|
|
|
|
|
First of all, Eyes and Ears is not an essential part of the system. It
|
|
|
|
|
is a nice to have. There are three smaller projects which combine to
|
|
|
|
|
create the whole 'Personal Flash in Real-Time' system. On top of that,
|
|
|
|
|
they reside in different places across the U.K. which makes it
|
|
|
|
|
difficult to see what state the whole system is in at any one
|
|
|
|
|
moment. It is not unsurmountable but this dashboard app. helps.
|
|
|
|
|
|
|
|
|
|
![System Overview](./attachments/system-overview.png)
|
|
|
|
|
|
|
|
|
|
For more information on the other parts of the system, use the following
|
|
|
|
|
links:
|
|
|
|
|
|
|
|
|
|
- [Light Meter Code](https://git.abbether.net/return-to-ritherdon/light-meter)
|
|
|
|
|
- [Light Meter Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-meter)
|
|
|
|
|
- [Relay Code](https://git.abbether.net/return-to-ritherdon/relay)
|
|
|
|
|
- [Relay Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/relay)
|
|
|
|
|
- [Midpoint Code](https://git.abbether.net/return-to-ritherdon/midpoint)
|
|
|
|
|
- [Midpoint Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/midpoint)
|
|
|
|
|
|
|
|
|
|
## Technology Overview
|
|
|
|
|
|
|
|
|
|
Because of the nature of 'Personal Flash in Real-Time', Eyes and Ears
|
|
|
|
|
has no long term maintainence concerns. So, the code is a bit of a
|
|
|
|
|
mess. The biggest mess is the lack of seperation between the code in
|
|
|
|
|
the view (`MainPage.cs`) and the view-model (`MainPageVM.cs`). If
|
|
|
|
|
anything, I think it would be easier to re-write Eyes and Ears than
|
|
|
|
|
look to add new features.
|
|
|
|
|
|
|
|
|
|
Eyes and Ears in written in C# and the Universal Windows Platform
|
|
|
|
|
(UWP) and targets Windows 10. I should point out **Microsoft is moving
|
|
|
|
|
away from UWP so you should view this application as obsolete**.
|
|
|
|
|
|
|
|
|
|
- [Universal Windows Platform (UWP)](https://docs.microsoft.com/en-us/windows/uwp/)
|
|
|
|
|
- [Article on Microsoft dropping UWP](https://www.techradar.com/news/microsoft-is-finally-dropping-uwp-app-support-windows-app-sdk-heres-why)
|
|
|
|
|
|
|
|
|
|
The project's structure is a typical UWP one. There are a lot of files
|
|
|
|
|
you do not need to touch so I have highlighted the files/directories
|
|
|
|
|
you will spend the most time in with `(AREA OF INTEREST)`.
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
./src
|
|
|
|
|
└── EyesAndEars.UWP
|
|
|
|
|
├── EyesAndEars.UWP
|
|
|
|
|
│ ├── AppPackages
|
|
|
|
|
│ ├── App.xaml
|
|
|
|
|
│ ├── App.xaml.cs
|
|
|
|
|
│ ├── Assets
|
|
|
|
|
│ ├── bin
|
|
|
|
|
│ ├── BundleArtifacts
|
|
|
|
|
│ ├── EyesAndEars.UWP.csproj
|
|
|
|
|
│ ├── EyesAndEars.UWP.csproj.user
|
|
|
|
|
│ ├── EyesAndEars.UWP_TemporaryKey.pfx
|
|
|
|
|
│ ├── images
|
|
|
|
|
│ ├── MainPage.xaml <------ (AREA OF INTEREST)
|
|
|
|
|
│ ├── MainPage.xaml.cs <--- (AREA OF INTEREST)
|
|
|
|
|
│ ├── Models <------------- (AREA OF INTEREST)
|
|
|
|
|
│ ├── obj
|
|
|
|
|
│ ├── Package.appxmanifest
|
|
|
|
|
│ ├── Properties
|
|
|
|
|
│ ├── Services <----------- (AREA OF INTEREST)
|
|
|
|
|
│ └── ViewModels <--------- (AREA OF INTEREST)
|
|
|
|
|
└── EyesAndEars.UWP.sln
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Below is a diagram showing how the various pieces fit together. The
|
|
|
|
|
`Models`, `ViewModel` and `Services` sections are the
|
|
|
|
|
directories. There are further files in them. I should point out there
|
|
|
|
|
is only one ViewModel called `MainPageVM.cs` which binds to `MainPage.cs`.
|
|
|
|
|
|
|
|
|
|
![App-Internals](./attachments/app-internals.png)
|
|
|
|
|
|
|
|
|
|
## How-To Use Eyes and Ears
|
|
|
|
|
|
|
|
|
|
The first time you start Eyes and Ears, you need to input the URL to
|
|
|
|
|
the server part of the system (MidPoint). You do this by entering it
|
|
|
|
|
in the URL-bar (3) at the bottom of the screen and then press the
|
|
|
|
|
'Save' button (6). For all intents and purposes, that is all you need
|
|
|
|
|
to do. The rest of the features are secondary and you can get away
|
|
|
|
|
with not ever using them.
|
|
|
|
|
|
|
|
|
|
For more information on the other parts of the system, use the following
|
|
|
|
|
links:
|
|
|
|
|
|
|
|
|
|
- [Light Meter Code](https://git.abbether.net/return-to-ritherdon/light-meter)
|
|
|
|
|
- [Light Meter Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-meter)
|
|
|
|
|
- [Relay Code](https://git.abbether.net/return-to-ritherdon/relay)
|
|
|
|
|
- [Relay Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/relay)
|
|
|
|
|
- [Midpoint Code](https://git.abbether.net/return-to-ritherdon/midpoint)
|
|
|
|
|
- [Midpoint Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/midpoint)
|
|
|
|
|
|
|
|
|
|
The URL has changed throughout the course of developing the whole
|
|
|
|
|
system ('Personal Flash in Real-Time'). So, you will need to confirm
|
|
|
|
|
the URL is correct which means you will need to speak to whomever is
|
|
|
|
|
running the server (Midpoint) part of the system.
|
|
|
|
|
|
|
|
|
|
![GUI-Breakdown](./attachments/gui-breakdown.png)
|
|
|
|
|
|
|
|
|
|
1. Log Toggle (toggle debug logs (6) on/off)
|
|
|
|
|
2. Info. button (artist's website)
|
|
|
|
|
3. URL-Bar (to connect to (Midpoint) server
|
|
|
|
|
4. Play/Stop Button (stop and start updating system status)
|
|
|
|
|
5. Save Button (writes the URL to disk for future use)
|
|
|
|
|
6. Debug Logs (used to testing and you will probably never need to use
|
|
|
|
|
it)
|
|
|
|
|
7. Main Info. Area (displays the status of the various devices making
|
|
|
|
|
up the whole system)
|
|
|
|
|
8. Current Time (used to cross-reference the time-stamps of the
|
|
|
|
|
various status updates)
|
|
|
|
|
|
|
|
|
|
When Eyes and Ears is running, the Main Info. (7) displays the
|
|
|
|
|
time-stamp of the latest event pushed to the server (Midpoint). The
|
|
|
|
|
main (biggest) numbers in `Factory 1` and `Factory 2` states the
|
|
|
|
|
latest light level reading taken from their respective
|
|
|
|
|
devices. `Gallery 1` and `Gallery 2` refers to when the devices are
|
|
|
|
|
either turned-on (and online) or turned-off (and offline as a
|
|
|
|
|
result). Refer to the Legend for the colour coded nature of the
|
|
|
|
|
various devices within the application itself. The 'Low Light' colour
|
|
|
|
|
refers to when the light meters (`Factory 1` and `Factory 2`) record
|
|
|
|
|
'negative light'. The reason why this happens is beyond the scope of
|
|
|
|
|
this documentation (and the Eyes and Ears application).
|
|
|
|
|
|
|
|
|
|
# Installing Eyes and Ears
|
|
|
|
|
|
|
|
|
|
The easiest way to install the program is by downloading a build in
|
|
|
|
|
the 'Releases' section on the main (I.E. code) repository:
|
|
|
|
|
|
|
|
|
|
- [Eyes and Ears Releases Page](https://git.abbether.net/return-to-ritherdon/eyes-and-ears/releases)
|
|
|
|
|
|
|
|
|
|
If you have Visual Studio, you can build from the source code either
|
|
|
|
|
by pressing `F5` and or using the `Publish` feature within Visual
|
|
|
|
|
Studio. I will not go into detail on how to do this becuase it is a
|
|
|
|
|
Visual Studio, .Net, C# and UWP specific concern -- which is outside
|
|
|
|
|
the scope of this documentation.
|