26 Commits

Author SHA1 Message Date
92acc3d0c9 Ensure all bytes are represented by 2-digit hex 2019-02-22 15:17:17 -06:00
d967afc178 Don't block on the initial connection to the dispatcher 2019-02-22 15:16:53 -06:00
4ecdacedab Optimizations, modernizations, cleanup 2019-02-22 11:04:41 -06:00
ffb891b04b More minor tweaks 2019-02-22 09:06:53 -06:00
fca6ebedd6 Nicer formatting, easier to read 2019-02-21 21:40:41 -06:00
f566b4c468 Made all VS-recommended changes 2019-02-21 15:30:48 -06:00
edc7050279 Manually cleaned up MakeKeyFromBlock
I don't completely understand the algorithm that's being employed here, but at least the code is no longer hideous machine-generated unreadable nonsense. Should be much easier to translate to other languages now.
2019-02-21 14:25:19 -06:00
b1cb846420 Cleaned up everything except MakeKeyFromBlock() 2019-02-21 13:34:08 -06:00
fa550d073e Actually fixed encryption for passwords
After messing with my home system for a bit, I realized that the encryption was not actually working and my password was getting rejected. I found a different decompiler which generated different (more sensible) code which is now generating the same password as the desktop Pentair app and is able to remotely login. This code needs a lot of manual deobfuscation.
2019-02-21 12:16:10 -06:00
9d2ba55047 Handle invalid login attempts 2019-02-20 22:25:13 -06:00
2f64cbbc4e Made VS-recommended changes 2019-02-20 22:24:59 -06:00
9bfe563df9 Updated readme 2019-02-20 15:25:39 -06:00
d6dfcb14a9 Added support for remote connection by name via Pentair servers
This brings along proper password encryption and validation for the login process (which is still not needed for local connections).

You can run the remote connection tests by passing a system name and password as 2 arguments (so the system name needs to be quoted, e.g.: `test "Pentair: xx-xx-xx" 1234`)

Also updated to latest .NET Core and C# versions while I was at it.
2019-02-20 15:19:42 -06:00
810342ecc9 Slightly improved encoder
It's still an ugly decompilation job, but it appears to be working, at least.
2019-02-20 15:09:21 -06:00
9655b95898 Time out if no local units are found in 1 second 2019-02-20 15:08:33 -06:00
3e4084714b Added extension method for timing out on async tasks 2019-02-20 15:07:34 -06:00
72827594ae Typo fix 2018-10-14 00:18:02 -05:00
4bb2f95933 Yet more cleanup 2018-03-28 23:55:39 -05:00
8336f45c82 More cleanup, better debugging output 2018-03-28 18:07:08 -05:00
579d15fb4d Added some notes about the test output 2018-03-28 16:27:42 -05:00
39234d096a Pass this library as the version 2018-03-28 16:27:30 -05:00
7af67a46a3 Added readme 2018-03-28 15:51:34 -05:00
e524e394c6 C#-ified
Converted as much ugly code as I could find into appropriate C#-friendly versions. For example, all the manual ByteHelper stuff, buffer index tracking, etc. are now BinaryWriters/BinaryReaders. Also cleaned up a bunch of getter and setter methods to use C# properties.

There's still more to be done here, but this greatly simplifies the code for reading and comprehension.
2018-03-28 15:30:05 -05:00
f893882c4e Fixed so Release builds work 2018-03-27 17:43:59 -05:00
ba089e3c00 Added controller config message
Added circuit data to pool status message
Sanitized byte signedness
Added helper to get pool/spa on/off state from pool status
Added simple color class
Removed debug output
Added basic status output to test program
2018-03-27 17:29:34 -05:00
97c4febdf5 Initial commit
Conversion of the UWP app into a .NET Core app for portability. Requires .NET Core 2.0 and C# 7.1
2018-03-18 23:04:19 -05:00