Matt McWilliams
b21b899303
Re-enabled tests. Re-enabled docs build (jsdocs are very out of date). Removed several any types and created types for Config
2024-05-23 23:36:51 -04:00
Matt McWilliams
5597aea828
Do not display broken layout before devices are ready
2024-05-23 20:56:32 -04:00
Matt McWilliams
5d31bf0020
Ported main.js to TypeScript. Rewrote all imports and replaced with class constructors, not require()().
2024-05-23 20:51:35 -04:00
Matt McWilliams
91ad944c46
Removed several uses of any and added types to System module.
2024-05-23 19:54:42 -04:00
Matt McWilliams
cb63194fc6
All known classes have types exported and imported into dependent modules. This has already caught a class of bugs. Removing references to any will catch another.
2024-05-23 18:49:18 -04:00
Matt McWilliams
8e8fac92d1
Update Settings class to export properly. Replace use of any in Device.
2024-05-22 23:36:40 -04:00
Matt McWilliams
7e24c70454
Re-write of log module to use export properly (in Typescript) and include the winston types for Logger. Will repeat this step with all of the remaining modules that are declared 'any' type and miss out on the benefits of using Typescript in the first place.
2024-05-19 18:14:33 -04:00
Matt McWilliams
a9f20ebf36
Remove extraneous log lines from arduino. Device is printed by send() and also sendAsync is called by send and logs the same information. Removed.
2024-05-19 17:11:31 -04:00
Matt McWilliams
5bad15a79a
In a two device simultaneous action, the cmd module was attemptint to await both actions in an array. This was not working and caused await to not occur. Instead, all actions have been replaced by a Promise.all, which awaits both actions simultaneously until both are complete. After that, function is correct.
2024-05-19 11:05:16 -04:00
Matt McWilliams
63f4278b2b
Resolve startup order issues and explanation for all the delays that were meager attempts to solve a race condition. By moving more IPC connectionts to handles, which can be awaited, there are no more attempts to send message to light object that fails because it has not yet been instantiated.
2024-04-06 23:37:30 -04:00
Matt McWilliams
6778f871db
Devices, serial and type terms were updated everywhere in code except in the settings object.
2024-04-06 20:29:56 -04:00
Matt McWilliams
edc72a5486
Do not overwrite data with an empty object. Overwrite values if there are keys in the object.
2024-04-06 20:15:19 -04:00
Matt McWilliams
2779258111
List of devices looks strange on laptop. Attempt at fix here
2024-04-06 20:10:14 -04:00
Matt McWilliams
da735779b4
Add more trycatches add more logs. Not sure where failure is.
2024-04-06 20:00:54 -04:00
Matt McWilliams
b7e2e912f4
Figure out why devices.ready() is not reaching end of method on Mono laptop
2024-04-06 19:53:04 -04:00
Matt McWilliams
d34172d8e9
Use device.profile() method, seemingly not implemented properly
2024-04-06 19:37:29 -04:00
Matt McWilliams
f30ce78f9d
Suppress warnings from Intval and execRaw during compilation. Add logging to ready to test on Mono laptop
2024-04-06 19:18:15 -04:00
Matt McWilliams
ed767aedb5
Recompile with newer modules.
2024-04-06 19:09:50 -04:00
Matt McWilliams
4181c22995
Cleanup whitespace/semicolons and add concept for passing an exposure length to the image in millis.
2024-01-19 06:49:03 -05:00
Matt McWilliams
08ce0d792b
Fix for case where this.confirmExec is not a function
2023-10-08 18:15:31 -04:00
Matt McWilliams
e7e7f86ab3
Manual merge from capper branch: all changes to devices library.
2023-08-06 15:04:33 -04:00
Matt McWilliams
c4119ab7cc
Manual merge from capper branch: all changes to arduino library with some improvements.
2023-08-06 14:56:42 -04:00
Matt McWilliams
176643f148
Manual merge from capper branch: all changes to display library.
2023-08-06 14:36:31 -04:00
Matt McWilliams
2f56dd4b8a
Update the timing after delaying for 5000ms (hack)
2023-07-30 23:03:06 -04:00
Matt McWilliams
699c2dbec8
UI cleanup 1: confirm setting the exposure
2023-07-30 22:26:05 -04:00
Matt McWilliams
dac720863d
Resolves #80 and #81 . UI will need a little cleanup. There is some string concatenation happening where it shouldn't.
2023-07-30 22:13:50 -04:00
Matt McWilliams
a173cf0d7c
WIP
2023-07-23 20:00:42 -04:00
Matt McWilliams
fb51716e3a
All work
2023-07-14 21:13:04 -04:00
Matt McWilliams
0cc167b3a6
Incredibly close to #80 and #81 . Can get state confirmation at startup. Can send exposure string and get confirmation after. Cannot get state outside of initial confirmation. Something is either locked or failing to wait?
2023-07-10 22:33:16 -04:00
Matt McWilliams
4539c6d897
Methods in place for setting exposure
2023-07-05 15:17:45 -04:00
Matt McWilliams
58ce079330
Both components are working properly.
2023-07-04 22:46:37 -04:00
Matt McWilliams
c0d6cbccec
Can now detect if state is available on a device
2023-06-17 17:57:30 -04:00
Matt McWilliams
71e4bea384
Preliminary state support in arduino library. Currently confirms the negative state. Might want to push it until after verify, out of enumerate.
2023-06-16 23:04:16 -04:00
Matt McWilliams
83aa3099c4
Update the settings page with time for projector and camera actions
2023-06-16 22:07:53 -04:00
Matt McWilliams
672db32917
Put in place changes needed to receive a string from an arduino
2023-06-12 22:45:25 -04:00
Matt McWilliams
174b900cd8
Update commands
2023-03-18 17:00:13 -04:00
Matt McWilliams
142c990a0e
Refactored GUI into TypeScript and class-based format
2023-03-18 16:59:26 -04:00
Matt McWilliams
70ab8cb527
Improve timing. Sequence takes into account serialDelay within each command and sequenceDelay has no bearing. Was adding 120ms of error to every step
2023-03-01 13:37:22 -05:00
Matt McWilliams
512f6c86ad
Resolves #73 . Delay is exported in .ts file so it is non-ambient
2023-03-01 13:35:45 -05:00
Matt McWilliams
5db5d477e4
Timing is now updated via rolling average on all projector and camera actions. This data is reset when profile is changed. This data is stored in the settings.json and loaded on start so estimates will improve the more it is used.
2023-02-28 15:55:02 -05:00
Matt McWilliams
7741134917
Create the Timing class
2023-02-28 14:30:17 -05:00
Matt McWilliams
3c19cd35cf
Resolves #4 (4 years ago!). Adds delay (stops scripts for X seconds), alert (displays an alert that stops script execution) and pause (displays a pre-populated alert).
2023-02-28 12:49:11 -05:00
Matt McWilliams
02639466ee
By doing a check for active clients during the sequencer start and stop actions, the local display is no longer used. Resolves first part of #20 .
2023-02-25 17:00:11 -05:00
Matt McWilliams
6e2795d380
Remove ACK messages for ping, rely on
2023-02-25 16:33:55 -05:00
Matt McWilliams
8e35596088
Fixed the iOS issue. Also allow for fullscreen on all browsers (with no sleep). Can preview properly but normal mode does not work
2023-02-25 16:32:08 -05:00
Matt McWilliams
0162d012c5
Server can now display images and will completely preempt local display when done
2023-02-25 13:22:20 -05:00
Matt McWilliams
47fb673b78
Combined script and html into single request (problems with iOS safari).
...
Can get script loaded but still cannot connect to websocket server without SSL.
ALSO: Now can pre-empt opening new display if an active client is connected to server.
Otherwise will open a local link.
2023-02-25 13:11:40 -05:00
Matt McWilliams
f296488bc2
Further progress on #20 . TODO: Image display logic on the server side. Need to add image to proxy list and give it a properly-extensioned name and cmdAll.
...
ALSO: Server is not working on iOS.
2023-02-25 12:40:35 -05:00
Matt McWilliams
f5392aea9f
Resolves #74
2023-02-25 12:33:18 -05:00
Matt McWilliams
24b1301f9f
Adding contextIsolation: false to the display module fixes the initial issue in #74 , cannot use "require" but the escape button does not work due to "Cannot read properties of undefined (reading 'getCurrentWindow')"
2023-02-25 12:16:47 -05:00