sixteenmillimeter
fc2593c6ee
Resolves #34 . Added delay lib to renderer and added a magic delay before ending devices.ready(). Just works. Move on and don't question it.
2020-01-09 18:06:18 -05:00
sixteenmillimeter
4c0aa4220c
Log with "simple" format, no more json in the console.
2020-01-09 18:05:10 -05:00
mmcwilliams
42621bbf71
Devices discovery WIP
2020-01-05 12:40:38 -05:00
mmcwilliams
4c8c2b66f3
Serialport library was updated and changed to Promise-based returns from callbacks as was being used in the arduino lib.
2019-12-18 17:17:48 -05:00
mmcwilliams
c6ebab4032
Post upgrade, log library needs to be upgraded to support winston 3.x API
2019-12-18 16:05:58 -05:00
mmcwilliams
4461670e14
Fixes security concerns. Resolves #24 and #27
2019-12-16 19:25:51 -05:00
mmcwilliams
8e4c32073a
Sequencer now blocks system sleep while running a sequence. Made me upset last night when it happened during a filmout and I shot 1000 frames of black. Resolves #26
2019-10-04 14:36:26 -04:00
sixteenmillimeter
ac1da17b8d
Handle different aspect ratio images and screens. Add additional counts on fields and thicken lines. Resolves #19
2019-08-25 15:54:50 -04:00
sixteenmillimeter
9b2ed018bf
If filmout picture source is set, set the field guide to match the aspect ratio of the image. Right now that only works if ratio is lower than the screen. Need to add case in display.html that corrects for when screen ratio is lower than image ratio.
2019-08-25 15:26:43 -04:00
sixteenmillimeter
51acbdfd30
Add comments to filmout lib.
2019-08-25 14:59:39 -04:00
mmcwilliams
5ce0aed2ff
Use module "ffmpeg-static" to use a binary of ffmpeg stored in node_modules, rather than rely on the system version.
2019-08-23 15:39:38 -04:00
sixteenmillimeter
f0c28b8624
Properly count number of frames in animated gifs using `identify` from imagemagick because ffprobe was failing.
2019-08-15 15:25:33 -04:00
mmcwilliams
5f701ccecb
Increment patch number.
2019-08-04 19:53:51 -04:00
mmcwilliams
cfa22d3a1d
Replace native js confirm() with a new gui.confirm() method that uses electrons "dialog" module. Resolves issue #25
2019-08-04 19:52:52 -04:00
mmcwilliams
1b83fe6937
Downgrade winston from 3 to 2 because it prints better in the console. Change all require statements to imports, requiring only what's used.
2019-08-04 19:38:45 -04:00
mmcwilliams
2ff98a2148
Refactor ffprobe into a class. Add jsdoc comments to all methods.
2019-08-04 18:04:06 -04:00
mmcwilliams
30c36baa9c
Add comments and switch in logger module for console.log
2019-08-04 17:54:38 -04:00
mmcwilliams
bd79025305
Refactored ffmpeg module into a class. Add a logger, not implemented. Not tested.
2019-08-04 17:42:27 -04:00
mmcwilliams
7c4e9d5823
Add jsdoc comments to ffmpeg lib. Also added types for tsc where they were implicit any type. Also added some semi-colons. Whoops.
2019-08-04 17:31:27 -04:00
mmcwilliams
5695bfd645
App was throwing error during filmout. Re-wrote the resizing logic so that if it can't find dimensions in the info, don't resize the image. This may lead to squashing, as I've seen in frameloom, but I suspect this problem is with the UI and the superfluous "USE FILE" button.
2019-08-04 17:20:45 -04:00
mmcwilliams
c5f3c72f73
All workshop work. Freeze dev on mac and test on linux
2019-07-29 12:45:13 -04:00
mmcwilliams
7e05b5f680
Fix dual projector bug and increment patch.
2019-07-27 08:47:35 -04:00
mmcwilliams
741d4619ee
Replace all references to dig with filmout
2019-07-27 08:39:39 -04:00
mmcwilliams
7c50b66499
Updated gui mscript lib to use .meta instead of .light when preparing an mscript sequence.
2019-07-26 19:59:16 -04:00
mmcwilliams
96d0897f65
Made a breaking change to the mscript module: light array is now the "meta" array to allow for types of commands other than camera movements to have associated metadata. The two driving motivations for this change are the proposed alert feature which will have a string message as its metadata and the proposed pause feature, which will have seconds as its metadata.
...
Updated tests as well. Still need to change behavior in the mscript.js gui lib.
2019-07-26 19:54:22 -04:00
mmcwilliams
c01f3ceff8
Add jsdoc comments AND semi-colons to sequencer module.
2019-07-26 19:03:42 -04:00
mmcwilliams
4023704d31
Added missing jsdoc comment to method "fade_rgb".
2019-07-26 18:57:17 -04:00
mmcwilliams
798e9ce1a3
Fixed comments in system module to reflect the fact that dependency check happens by executing 'which {cmd}' and storing the response as the absolute path to the binary. If which returns a blank string, dependency is marked not present.
2019-07-26 18:31:22 -04:00
mmcwilliams
6612ffa6d1
Add jsdoc comments to cmd module
2019-07-26 18:30:10 -04:00
mmcwilliams
07100a588c
Add jsdoc comments to remaining methods.
2019-07-26 18:12:06 -04:00
mmcwilliams
0b2d386ca2
Compile mscript with Typescript
2019-07-26 17:28:27 -04:00
mmcwilliams
f0804fe23b
Incorrectly bound counter to wrong device.
2019-07-24 22:00:53 -04:00
mmcwilliams
97591b1c1d
Support gifs and stills in filmout
2019-07-24 22:00:23 -04:00
mmcwilliams
b5da7ba233
Filmout supports still images. Uses FFMPEG to convert to png, still. Should use sharp and re-sample the image to the maximum allowed for the screen in the smallest dimension.
2019-07-07 00:02:01 -04:00
mmcwilliams
0f52812767
Add path to main GUI process
2019-07-07 00:00:45 -04:00
mmcwilliams
0d6c3e44b0
Rename "video" to "file" in UI
2019-07-07 00:00:33 -04:00
mmcwilliams
60147e3b0f
Increment patch
2019-07-07 00:00:14 -04:00
mmcwilliams
f8c64b45a7
Install sharp and animated-gif-detector
2019-07-06 19:53:03 -04:00
mmcwilliams
504912009b
Increment patch number of version across the project.
2019-06-26 20:10:18 -04:00
mmcwilliams
084916c317
Preview a frame using the webview. Select monitor to display images on. Wooo!
2019-06-26 20:08:49 -04:00
mmcwilliams
073e778a3b
Visual tweaks for linux
2019-06-26 18:03:54 -04:00
mmcwilliams
b5465384ce
Increment package version
2019-06-26 16:10:04 -04:00
mmcwilliams
45f96e6537
Give macOS an extra 300ms to open and fullscreen a webview
2019-06-26 16:09:14 -04:00
mmcwilliams
f8fc9fded6
Fixed the siemen's star focusing screen with magic numbers. Better than it was before!
2019-06-26 16:07:00 -04:00
mmcwilliams
f239f862e8
Fixed frame counting optimization, resolving issue #17 . Also added a Siemens Star focusing screen, a middle gray metering screen and a field guide screen for use with the filmout feature. TODO: actually change monitors when selected.
2019-06-25 12:13:15 -04:00
mmcwilliams
872b46d4a5
Filmout display monitor size with stats
2019-06-24 21:11:14 -04:00
mmcwilliams
ddfc46a48f
Delete devices.js backup
2019-06-24 15:04:24 -04:00
mmcwilliams
ad67e2f010
Add devices module after refactor
2019-06-24 14:31:26 -04:00
mmcwilliams
9331a766df
Compiled
2019-06-24 13:25:34 -04:00
mmcwilliams
6b10e9c28d
System module phones home
2019-06-24 12:42:27 -04:00
mmcwilliams
d15fe37de5
Add a dependency check for the convert command
2019-06-24 11:37:07 -04:00
mmcwilliams
5014a2db38
Remove systeminformation module from system lib
2019-06-24 11:26:28 -04:00
mmcwilliams
f3e885df35
Rename DOM elements filmout, instead of "video"
2019-06-24 11:20:08 -04:00
mmcwilliams
98a0eff503
Uninstall systeminformation, which was the original module being used to determine monitor stats. Now use the internal electron.screen module, which I was using originally? Yikes.
2019-06-22 12:07:07 -04:00
mmcwilliams
6cda9aed1d
Beginnings of the film out display selection UI
2019-06-22 11:52:36 -04:00
mmcwilliams
9a464a2fcf
Unsafe-eval was throwing an error on compile
2019-06-22 11:52:14 -04:00
mmcwilliams
a4f8ffc3c6
Merge remote-tracking branch 'origin/master'
2019-06-22 10:49:36 -04:00
mmcwilliams
23a7896db9
Update version on lock file.
2019-06-20 14:39:05 -04:00
mmcwilliams
e25054117f
Only require join method from path. Don't need the whole dang thing.
2019-06-18 16:57:35 -04:00
mmcwilliams
2e4ef09a60
Apply new patch version everywhere.
2019-06-18 16:54:22 -04:00
mmcwilliams
717cf77e55
Rename all uses of the previously-named "digital" module to "filmout" in sequence module. Woo! Let's call that a patch.
2019-06-18 16:54:08 -04:00
mmcwilliams
ede6fcdfb8
Rename all uses of the previously-named "digital" module to "filmout" in proj module.
2019-06-18 16:52:26 -04:00
mmcwilliams
6fcb85bca2
Remove unused "digital" attribute from camera state.
2019-06-18 16:50:28 -04:00
mmcwilliams
0cff7c5794
Rename all uses of the previously-named "digital" module to "filmout" in cam module.
2019-06-18 16:49:49 -04:00
mmcwilliams
9b17d5cd47
Meant to commit this as last commit. Oh well.
2019-06-18 16:48:54 -04:00
mmcwilliams
49f9f7f160
Display will now show a meter screen (middle grey) when instructed. Not wired to anything, got distracted by the re-naming shenanigans.
2019-06-18 15:47:17 -04:00
mmcwilliams
22187777e7
Remove node-side digital lib and replace with filmout lib. Still remaining: rename internal uses of "dig" or "digital" to "filmout", including markup on the frontend.
2019-06-18 15:42:30 -04:00
mmcwilliams
00b26719f6
Finish renaming UI files digital->filmout
2019-06-18 15:40:09 -04:00
mmcwilliams
d6da1824cd
Rename UI files
2019-06-18 15:25:28 -04:00
mmcwilliams
23d663c3e7
Create digital.ts and devices.ts. Begin rewriting devices as-is and then refactor the existing digital features into digital.ts. Gonna rename, screw it.
2019-06-18 15:19:57 -04:00
mmcwilliams
1e2b542e4c
Begin refactoring devices.js and create a new digital.js lib for the film-out features. Maybe think of renaming now, before it hurts.
2019-06-18 15:18:08 -04:00
mmcwilliams
5cd6b22ea4
Only use webview in full screen mode for now on all platforms. EOG is trickier and flickers the entire screen into view between frames, which is unsettling. Will look for a lower-level solution than webviews, but works for now. Also, uses real fullscreen on macOS instead of just maximizing the window.
2019-06-18 13:47:55 -04:00
mmcwilliams
32f02d42ce
During the film out mode, the webview now correctly handles "closed" events when the user manually closes the window. The window also now closes at the end of a sequence (caught a typo) and correctly removed the webview from the WebView object when it does not exist. Resolves #15
2019-06-18 13:35:50 -04:00
mmcwilliams
7740dc39ec
Include in last commit
2019-06-15 11:06:57 -04:00
mmcwilliams
07940bc2c6
All film out work from Friday. Re-structure the display module into 3 classes instead of a mess of functions.
2019-06-15 11:06:39 -04:00
mmcwilliams
7c43f2de2c
Add the film out screen and begin styling.
2019-06-15 11:05:29 -04:00
mmcwilliams
39e6ab5247
Update all modules, and update gulpfile to gulp4 syntax.
2019-06-14 13:11:28 -04:00
mmcwilliams
76c7b49142
Import delay and add comments to digital. Starting work on film-out improvements.
2019-06-14 12:00:22 -04:00
mmcwilliams
5b418aeccd
Camera module imports intval class properly.
2019-06-14 11:59:47 -04:00
mmcwilliams
b5fbe0153b
Refactor intval module into Typescript.
2019-06-14 11:58:35 -04:00
mmcwilliams
3aeb971b4d
Merge remote-tracking branch 'origin/master'
2019-06-14 11:31:13 -04:00
mmcwilliams
dab5c34bad
stash progress
2019-06-14 11:29:52 -04:00
mmcwilliams
596832119b
Uninstall node-media-server. What was I thinking? Oh yeah, I wasn't. Instead of using the system to pipe an RTMP stream to nms, I'm just going to use electron's built in navigator.getUserMedia or somesuch. Silly of me.
2019-06-11 16:30:44 -04:00
mmcwilliams
6442d99817
Update delay, exec and exit usage and require statments.
2019-06-08 21:43:14 -04:00
mmcwilliams
e3d213e4f1
Ported ffmpeg, ffprobe, exit and exec modules to typescript
2019-06-08 20:51:00 -04:00
mmcwilliams
c169b7fbae
Update mscript tests. Increase coverage.
2019-05-28 22:40:50 -04:00
mmcwilliams
d8e5e4521a
Increment patch number. Commit 418670ce33
resolves #14 ;
2019-05-28 17:53:23 -04:00
mmcwilliams
418670ce33
Time a sequence and pass back value of milliseconds back when sequence stops.
2019-05-28 17:48:42 -04:00
mmcwilliams
8ddc6e5a20
Promisify gui.notify. Will not run it synchronously, but is nice to have.
2019-05-28 17:47:39 -04:00
mmcwilliams
f015a6f2c5
Display the time of the completed sequence when passed from main process.
2019-05-28 17:46:53 -04:00
mmcwilliams
1fd3b83ca1
Mscript does not need a callback. Remove from compile() method
2019-05-28 17:42:42 -04:00
mmcwilliams
da6fef6080
Notify on mock device connectio
2019-05-28 17:41:39 -04:00
mmcwilliams
9a0ebcca06
cfg has latest version number
2019-05-28 17:41:23 -04:00
mmcwilliams
93144322db
Re-writing mscript tests.
2019-05-28 17:40:59 -04:00
mmcwilliams
02ca59ea7e
Removed the "undefined" lines from occurring. Code is a mess, but won't break anything else... for now.
2019-05-28 14:10:00 -04:00
mmcwilliams
ce226a7f86
Calculate stats on device.ready
2019-05-28 13:41:25 -04:00
mmcwilliams
4ea390897a
Refactored seq.js to Typescript and fixed stats for 1 cam 1 proj. Will need further work to add in multiple devices. Resolves #6 .
2019-05-28 13:33:16 -04:00
mmcwilliams
c942d89572
Wire goto button on projector 2 and camera 2 to cmd.projector_second_to and cmd.camera_second_to. Resolves #9
2019-05-28 12:52:50 -04:00
mmcwilliams
d0cc8eca70
GOTO counter error on projector 2 was due to a CSS error. Resolved #8 . Increment patch number.
2019-05-28 12:28:45 -04:00
mmcwilliams
2e8d20f40a
Update comments on devices module.
2019-05-28 12:16:01 -04:00
mmcwilliams
5c9091d957
Can't reproduce issue #13 . Appeared on installation of unknown version. Close #13 for now.
2019-05-28 10:33:31 -04:00
mmcwilliams
1b3f554492
Caught the "to sequence" bug. Had not fully updated code. Resolves #5
2019-05-28 10:15:57 -04:00
mmcwilliams
67a009ae8d
Increment patch to reflect changes that resolved issue 3
2019-05-28 09:15:29 -04:00
mmcwilliams
39301f5b59
FOUND THE BUG causing #3 . Mscript still needs full conversion to typescript. This would have been caught on compile. Resolves #3 , create a new issue for mscript refactor.
2019-05-28 09:06:59 -04:00
mmcwilliams
ab8d7f57e9
Add a mocha-style test for mscript, related to issue #3
2019-05-28 09:02:55 -04:00
mmcwilliams
abaeb1cbda
Update loop progress styles
2019-04-27 22:28:23 -04:00
mmcwilliams
e15d03a536
Semicolon
2019-04-20 19:52:26 -04:00
mmcwilliams
ad558608ee
All remaining dual projector, dual camera work.
2019-04-20 10:15:28 -04:00
mmcwilliams
1a612376cb
Grid works for dual projectors. cam needs to be examined.
2019-04-20 10:15:01 -04:00
mmcwilliams
a241ef0a2a
Update config
2019-04-20 10:14:22 -04:00
mmcwilliams
687e1887ee
Grid is reasonably functional with dual projectors.
2019-04-19 22:55:57 -04:00
mmcwilliams
5e0947d343
As much as I could do. Still doesn't work. Last commit.
2019-04-18 21:58:11 -04:00
mmcwilliams
88e470c5ac
Installed
2019-04-16 14:36:55 -04:00
mmcw-dev
bb2bfabf9c
2
2019-04-16 10:01:54 -04:00
mmcw-dev
b33ef36ab4
Work on multiple device UI
2019-04-16 10:01:42 -04:00
mmcw-dev
ed14564de7
Fix issue of false positives on detecting second cmaeras and projectors
2019-04-15 16:15:34 -04:00
mmcw-dev
9603f82c49
Use mocha for testing, instead of qunit
2019-04-15 16:14:07 -04:00
mmcw-dev
52aac3f8b0
Settings module restores state to a default on "restore"
2019-04-15 16:13:28 -04:00
mmcw-dev
4f7dd92311
Update the silent log methods to return false.
2019-04-15 16:11:18 -04:00
mmcw-dev
265f383f65
Create new tests for mocha and chai
2019-04-15 15:10:29 -04:00
mmcw-dev
11b389172c
Stash old tests
2019-04-15 15:08:28 -04:00
mmcw-dev
dac70a122f
Begin testing with mocha and chai.
2019-04-15 13:07:47 -04:00
mmcwilliams
7a52bc7c6e
Secondary projector and secondary camera behaviors have been added to the main process. This is not represented in the UI... yet. All renderer code is still in flux.
2019-04-04 18:49:07 -04:00
mmcwilliams
18c515402e
Installed on mac and ran build on mac. Works!
2019-04-04 01:07:30 -04:00
mmcwilliams
cda100b3e6
Electron build works again on debian-based linux.
2019-04-03 18:58:13 -04:00
mmcwilliams
63e42f2dd3
Need to install request now, locally, for latest electron build.
2019-04-03 18:54:37 -04:00
mmcw-dev
d995a4800d
Update install process.
2019-04-02 11:11:26 -04:00
mmcwilliams
96754fcf49
Work on progress bar.
2019-04-02 10:21:01 -04:00
mmcwilliams
d1480181b3
Remove exasperated comment.
2019-04-01 11:07:25 -04:00
mmcwilliams
d6fd83762e
Remove mcopy.state.camera and mcopy.state.projector.
2019-03-31 15:13:21 -04:00
mmcwilliams
7d2033db3d
Remove comment containing documentation for the dialog.showMessageBox method from electron. That API is ever-evolving and it's best to rely on their published docs.
2019-03-31 12:13:15 -04:00
mmcwilliams
072c67fd0f
Update counters. Use local state within objects cam and proj instead of mcopy.state
2019-03-30 20:29:01 -04:00
mmcwilliams
3e5bda77db
Move docs generation to host repo
2019-03-30 17:56:31 -04:00
mmcwilliams
1510762fbb
Sequencer uses class variables that are either set using arguments passed from the renderer, or uses the variables named "grid" referring to the grid.js gui.
2019-03-29 20:44:12 -04:00
mmcwilliams
429e66717d
Files from previous commit
2019-03-24 00:25:16 -04:00
mmcwilliams
c129739394
Sequence module is controlled from the UI. Everything runs in the main.js on the main process. The DOM changes when ipc messages are sent from the sequence module to the render process.
2019-03-24 00:24:39 -04:00
mmcwilliams
43ee0d0672
Sequence now runs entirely in the main process. Renderer no longer stores the sequence, it is a for loop inside the main process.
2019-03-23 21:58:22 -04:00
mmcwilliams
e35c41791b
Create a system lib that can be used in the UI and cli.
2019-03-22 20:29:36 -04:00
mmcwilliams
b02b92c1c7
Update version across the repo.
2019-03-22 20:29:09 -04:00
mmcwilliams
74e6b9c1b2
Install systeminformation module. This will allow a cross platform solution that doesnt use the electron api for enumerating displays
2019-03-22 19:53:44 -04:00
mmcwilliams
f09ada2cd2
Build and version the package json files on each npm run build
2019-03-22 19:52:21 -04:00
mmcwilliams
42691c1577
All work on grid + sequencer rewrite.
2019-03-22 17:06:57 -04:00
mmcwilliams
cfbeeb3ce9
Add a pause button that is hidden by default.
2019-03-22 17:04:29 -04:00
mmcwilliams
dcca364b78
Update to electron 4. Updated electron-rebuild and electron-packager. Removed sqlite because it is currently unused and takes forever to rebuild. Originally intended to store timings of actions to optimize performance. Putting those plans on ice for now.
2019-03-22 17:01:54 -04:00
mmcwilliams
553d2bbb0d
Made progress on sequencer module, renamed from sequence.
2019-03-22 04:33:53 -04:00
mmcwilliams
425dd9fd6a
Initial updates to sequence module. Will try to simplify into a for loop, but if tests fail will re-write to a similar form as the renderer seq.js module
2019-03-22 03:22:33 -04:00
mmcwilliams
c436406e9e
Add todo in grid.js. This will be the biggest change in the rewrite. All ui/cmd.js commands must be re-written to be entirely ipc based and then all seq commands will be re-written to be ipc based as well.
2019-03-22 03:15:43 -04:00
mmcwilliams
52e6431d65
Rename seq.cmd object keys to new full-length strings
2019-03-22 03:14:16 -04:00
mmcwilliams
ddb33e7f35
Require the Commands module as cmd in main.js
2019-03-22 03:13:46 -04:00
mmcwilliams
3dcfa708d2
Add shortened commands to the cfg.json file
2019-03-22 03:12:42 -04:00
mmcwilliams
aff3678daf
Rename "RUN" button to "START" to match internal terminology and make it clearer to me.
2019-03-22 03:12:04 -04:00
mmcwilliams
4356abc820
Disable light from the UI if necessary. Kind of circuitous, will refactor.
2019-03-21 22:55:12 -04:00
mmcwilliams
41a5fd087d
Last work on display for tonight. Add a boolean attribute "opened" to re-open the digitalWindow if closed.
2019-03-21 22:54:49 -04:00
mmcwilliams
742adccf34
Took a tiny detour on the film out feature, or "digital projector". This now avoids showing a browser window fullscreen on mac, which is having performance issues when opening and then running sequences. There is a major source of lag, seemingly coming from the camera? Need to test with fake projector to see if there's a problem with the arduino lib.
2019-03-21 22:33:30 -04:00
mmcwilliams
97f1464106
Print the current active version into the mcopy.state object
2019-03-21 21:32:33 -04:00
mmcwilliams
0ff1b5ff7d
Refactor display module into typescript
2019-03-21 21:18:13 -04:00
mmcwilliams
d264429726
Create new doc files for new libs or ones with jsdoc
2019-03-21 21:03:03 -04:00
mmcwilliams
65ba1f8c18
Add new grid file
2019-03-21 21:02:41 -04:00
mmcwilliams
48e8415ee4
Rename all keys to full "camera_" vs "cam_" and "projector_" vs "proj_" for consistency across the app.
...
Successfully separate and refactor gui.grid object to gui.
2019-03-21 21:02:28 -04:00
mmcwilliams
e5a1654341
Use local id string so that duplicate instances of the classes can talk to one another.
2019-03-21 19:45:48 -04:00
mmcwilliams
6d1e9ec78f
Print state for now. Need to store position in it? Make resetting it simple.
2019-03-21 19:36:37 -04:00
mmcwilliams
fe046027da
In camera and projector modules, for both main and renderer, use a string id to bind ipc paths and set up the ability to then have multiple of the proj, cam or even light class. Need to do light.
2019-03-21 19:34:56 -04:00
mmcwilliams
600a0abc72
Create and install main process lib to control the cmd.js module
2019-03-21 19:33:01 -04:00
M McWilliams
7a87ac924a
Windows install seems to swap some https/http calls ins package-lock.json. Fascinating.
2019-03-21 18:14:53 -04:00
mmcwilliams
7ce3fa854a
Remove dev object and replace with new devices module. Log an error on failure to enumerate devices that isn't caught within the method.
2019-03-21 18:09:14 -04:00
mmcwilliams
82e10bb4a4
Increment minor version. This marks the "feature complete" refactor of the core functionality in typescript using classes instead of objects in the main.js process.
...
Also, install the new devices module that was refactored into a class from an object. This has been tested with firmware, but additional development on this minor version will pull more UI elements into the main process. This will allow a CLI app to be created more efficiently and kept in sync with the rest of the project. Interface with the firmware will be expanded to control multiple projectors or multiple cameras in the next minor version.
2019-03-21 18:08:24 -04:00
mmcwilliams
fc3cc96cd8
Use the import Log = require() method of including log lib. This is cleaner and easier to read when parsing dependencies.
2019-03-21 18:03:53 -04:00
mmcwilliams
478799965e
Update log format, remove timestamp and use file "mcopy.log" in mcopy dir, not mcopy-cli.
2019-03-21 18:01:41 -04:00
mmcwilliams
099cd3052a
Refactor settings into Typescript class module.
...
Refactor devices into Typescript class module from object.
2019-03-21 18:00:34 -04:00
mmcwilliams
ea91ea5ff5
Remove console logging from arduino lib. Reject or throw to log errors
2019-03-21 15:59:50 -04:00
mmcwilliams
6a31eda3c4
Add label to cam, light and proj module logging
2019-03-21 15:57:16 -04:00
mmcwilliams
91ee19f2ab
Add correct alias strings to arduino lib
2019-03-21 15:56:33 -04:00
mmcwilliams
c563bf0dd3
Add a label argument to the log module.
2019-03-21 15:54:55 -04:00
mmcwilliams
87d43fc15b
Only use log module in main
2019-03-21 15:47:25 -04:00
mmcwilliams
94942d86f9
Remove log from UI. Just use console and write directly to system log.
2019-03-21 15:47:07 -04:00
mmcwilliams
bfb9bcbbe4
All vars become consts to prevent redeclaration during this rewrite (and they should be that anyway)
2019-03-21 15:43:03 -04:00
mmcwilliams
f5f23284a3
Uncomment digital state interaction in proj module
2019-03-21 15:31:17 -04:00
mmcwilliams
9472527c70
Merge broke the UI, whoops
2019-03-21 15:13:48 -04:00
mmcwilliams
6faf78b92e
Merge remote-tracking branch 'origin/master'
2019-03-21 15:08:54 -04:00
mmcwilliams
1b6c56b2ad
Sequence module compiled
2019-03-21 15:06:37 -04:00
mmcwilliams
cf7664fb2a
Remove objects cam, proj, light and replace with new modules
2019-03-21 15:02:54 -04:00
mmcwilliams
05d1bc3ae2
Refactor delay into typescript
2019-03-21 15:02:05 -04:00
mmcwilliams
e9ccdfc191
Refactor light module into typescript-compiled class
2019-03-21 15:01:29 -04:00
mmcwilliams
dc080b8566
Refactor proj module into typescript-compiled proj module.
2019-03-21 15:00:47 -04:00
mmcwilliams
56aba1eaba
Refactor cam module into cam module.
2019-03-21 14:59:46 -04:00
mmcwilliams
c276525d3a
Refactor arduino library as a class, using Typescript now.
2019-03-21 14:58:52 -04:00
mmcwilliams
fce259d29b
Create a "digital" module, moving the "dig" object from the main.js process to it's own class.
2019-03-21 14:58:00 -04:00
mmcwilliams
2408456d47
Install cam, log and mscript modules.
2019-03-20 23:04:52 -04:00
mmcwilliams
f2c2d6ce43
WIP wednesday
2019-03-20 18:37:00 -04:00
mmcwilliams
7f0ab0fee3
Layout all commands that need to be added for dual projector functionality.
2019-03-20 15:44:07 -04:00
mmcwilliams
4236651a09
Move all relevant code into comments
2019-03-20 15:33:51 -04:00
mmcwilliams
fe85cc1b37
Re-write of the sequence module will require incorporating more moving parts than I anticipated. I will move forward with the temporary rewrite and then later focus on the long-term rewrite.
2019-03-20 15:30:45 -04:00
mmcwilliams
d308b8a59e
Merge remote-tracking branch 'origin/master'
2019-03-19 22:33:23 -04:00
mmcwilliams
cc227e9a66
Rewrite seq.js front-end "module" as a main process module in the lib. Can be used by the CLI without a second rewrite. Remove all DOM logic, but make API compatible with seq.js so GUI does not have to change.
2019-03-19 22:33:15 -04:00
mmcwilliams
a4682ed9d3
Simplify logs. Still prints timestamp as json.
2019-03-19 14:48:01 -04:00
mmcwilliams
d19e83d616
Increment patch number and run `npm audit fix`
2019-03-18 19:43:27 -04:00
mmcwilliams
9bfc133a67
Add a function to cancel a sequence. This should only be used during "seq.exec()".
2019-03-18 19:42:12 -04:00
mmcwilliams
f89ad53235
Caught a silly mistake. Accidentally referenced setDir instead of setExposure in intval exposure function. It's ok because that's dormant anyway.
2019-03-18 19:11:05 -04:00
mmcwilliams
0fbe45073c
Add a seq.cmds object to map named actions to functions. This creates targets for MSCRIPT to compile to, and allows the sequence to be stored in a string array.
2019-03-18 18:42:31 -04:00
mmcwilliams
415306d7a8
Add comments to existing sequencer gui file. Question arises here: should this logic be pushed back into the main process so that there is less reliance on the renderer and all command logic takes place in main (or a sub-module) with the renderer being used only for display and not sequencing. This seems to be the path going forward, but will take a re-write that allows for GUI to interrupt the process as it does now. A proof of concept will have to be written to demonstrate that using `await delay(ms)` is viable and the process does not completely lock.
2019-03-18 18:41:35 -04:00
mmcwilliams
b1e4015630
If light is not enabled when digital projector is selected, enable light. Otherwise, the light value will stay default 0,0,0 and all frames are rendered as black.
2019-03-18 18:35:49 -04:00
mmcwilliams
ad97086bf0
Overwrite any exported frame by adding -y flag to the ffmpeg command.
2019-03-18 18:28:31 -04:00
mmcwilliams
46da2e6541
Add the new firmware identifiers as accepted responses. Also add text identifiers for firmware identified as the 4 new types.
2019-03-18 17:21:17 -04:00
mmcwilliams
d4c2f5b678
Rebuild docs for arduino library after refactor into class.
2019-03-18 16:51:16 -04:00
mmcwilliams
9b4525e5a7
Refactor logFile function for readability.
...
Add comments to the log library. Build logs.
2019-03-18 16:50:40 -04:00
mmcwilliams
029dd628b6
Add comments to cmd
2019-03-13 15:28:17 -04:00
mmcwilliams
cf6e4f9de9
Disable light on projector
2019-03-13 15:28:07 -04:00
mmcwilliams
e47abeaaa5
Hid light pads if light is disabled.
2019-03-10 13:18:59 -04:00
mmcwilliams
4eee61ab1b
Hide labels if light is disabled. Hide navigation element if light is disabled.
2019-03-10 01:25:59 -05:00
mmcwilliams
4202d01630
Calling this a patch commit lets go!
2019-03-09 15:47:26 -05:00
mmcwilliams
00b5efa484
Logging still sucks.
2019-03-09 13:17:32 -05:00
mmcwilliams
95b6f77848
Try to improve logging. It's not there, yet.
2019-03-08 22:33:03 -05:00
mmcwilliams
e186b1b9fc
Write arg.profile and not the HTML element profile to log
2019-03-08 22:32:43 -05:00
mmcwilliams
ede29216f7
Update arduino lib in app and cli
2019-03-08 22:32:25 -05:00
mmcwilliams
87f3bcef6f
Copy build libraries to cli app
2019-03-08 22:31:29 -05:00
mmcwilliams
fcdc6ebb1d
Typescript adding commas to compiled code.
2019-03-04 22:10:15 -05:00
mmcwilliams
ec0b8e3b4f
Run docs as shell, not bash
2019-03-04 22:09:26 -05:00
mmcwilliams
aa5bbfc9fd
Port shared modules to typescript. Migrate shared modules first, then look at individual needs of sub-projects.
2019-03-04 22:09:12 -05:00
mmcwilliams
307ef33a10
Update description as project expands and reshapes. Now will develop shared modules for the app, cli and then the "native" experimental app written in proton-native.
2019-03-04 22:06:40 -05:00
mmcwilliams
f276d5ce83
Add commands for controlling a secondary projector.
2019-03-01 20:14:20 -05:00
mmcwilliams
200671b1cf
Increment patch number for new build.
2019-03-01 18:02:39 -05:00
mmcwilliams
fcc4da3672
Add additional cases to the arduino filter when looking for devices to connect with.
2019-03-01 18:01:16 -05:00
mmcwilliams
c93413bae4
Hide video feature until better fleshed out.
2019-03-01 18:00:49 -05:00
mmcwilliams
b9bd62bb78
Add mp4 to allowable file extension filter
2019-02-28 17:50:13 -05:00
mmcwilliams
1612d737a1
Add second UI element behavior for new video screen.
2019-02-26 21:58:26 -05:00
mmcwilliams
aff06619a0
Add video screen to UI
2019-02-26 21:57:07 -05:00
mmcwilliams
da7faf59a5
Add documentation to code on GUI grid features, needed to because I will be modifying this extensively.
2019-02-26 21:56:39 -05:00
mmcwilliams
a5a9a4ea86
Refactor arduino module to not use the mcopy. prefix. This should really be a class, not an object. We'll get there.
2019-02-26 21:55:52 -05:00
mmcwilliams
b481906c86
Add video screen, to be used for better control of the digital projector.
2019-02-26 21:54:46 -05:00
mmcwilliams
a9dd45a464
Add some docs to the code. Work in progress
2019-02-26 21:53:32 -05:00
mmcwilliams
8b2095227c
Add case for updating the UI when second projector connected.
2019-02-26 16:43:38 -05:00
mmcwilliams
6622a72241
Resize app when second projector connected
2019-02-26 16:43:14 -05:00
mmcwilliams
c964410f7b
Add variable for tracking whether or not light feature is disabled.
2019-02-26 16:42:54 -05:00
mmcwilliams
643e88aef3
Add a placeholder config profile for the MONO JK
2019-02-26 16:00:59 -05:00
mmcw-dev
aff070cdc4
Connect second projector
2019-02-26 11:49:00 -05:00
mmcwilliams
7398f7993d
Start work on secondary projector feature
2019-02-25 18:14:29 -05:00
mmcwilliams
fb08a28543
Update mscript tests. Could not repro error because it is due to escaping.
2019-02-24 08:31:22 -05:00
mmcwilliams
4947cbcc9d
Found range error in common usage example. Check test coverage
2019-02-24 08:23:57 -05:00
mmcwilliams
58ade0518e
Return mscript output if no callback defined
2019-02-24 08:22:41 -05:00
mmcwilliams
56a83615a9
Begin mcopy-cli for a simple command line interface
2019-02-24 08:13:47 -05:00
mmcwilliams
73ae599cff
Uninstall and remove references to async module
2019-02-23 22:40:59 -05:00
mmcw-dev
723b23fa41
Fix intval bug and apply UI projector value change to digital file state.
2019-02-23 22:19:42 -05:00
mmcw-dev
bf148c6784
Set value to digital projector feature when changing it in UI
2019-02-23 22:19:03 -05:00
mmcwilliams
7fd449724b
Convert comment to string on light object. Will use in a modal.
2019-02-23 12:25:47 -05:00
mmcwilliams
8ebdbf9f6f
Add docs script to package.json
2019-02-23 12:25:47 -05:00
mmcwilliams
54ab121e89
Feeble first attempt at documenting code
2019-02-23 12:25:47 -05:00
mmcwilliams
16dcd1e3d4
Move all scripts into scripts directory
2019-02-23 12:25:47 -05:00
mmcwilliams
8bd505da36
Save and restore settings, including profiles.
2019-02-23 12:25:46 -05:00
mmcwilliams
4de536e2e8
Incrementing patch. Fixed color and timing issues with "digital" sequences.
2019-02-13 19:00:10 -05:00
mmcwilliams
8fd29e89d8
Okay. Removed the light.state.on behavior. Now, a frame is rendered to the set color state of the "light" only when the camera is moving. Unnecessary frames don't display AND the correct color is represented at the right time. No juggling state values between steps in the sequence.
2019-02-13 18:57:18 -05:00
mmcwilliams
e7ac873f41
Two birds, one commit. Can even pull out the bad logic of the light.state.on value, but that's not hurting anybody.
2019-02-13 18:49:59 -05:00
mmcwilliams
ed8f1add35
Merge remote-tracking branch 'origin/master'
2019-02-11 01:34:38 -05:00
mmcwilliams
dbe96491f9
Update version in package-lock.json
2019-02-11 01:34:28 -05:00
mmcw-dev
962a7c8213
Fix loop bug. When selection a video as a projector (need to work on this metaphor) the loops are automatically set. Previous issues were due to id re-use.
...
Also, (almost) you can choose a light color value that a frame will be overlayed on with a Darken composite mode. This is almost working but is kludgey because the first frame is always coming up black. Will need to make adjustments in the light module.
2019-02-11 01:08:20 -05:00
mmcw-dev
3493759998
Scale frame export to video's advertized size
2019-02-10 14:07:07 -05:00
mmcwilliams
cbb28212d6
Increment a major version because of new Digital projector feature.
2019-02-08 18:23:35 -05:00
mmcwilliams
40b5ecfe69
Digital projector feature added. Select a video and it will be displayed on the main monitor (TODO: address this) and the camera will advance in sync, as with a regular optical printer.
2019-02-08 18:21:16 -05:00
mmcwilliams
fafb313f7d
Devices
2019-02-08 14:30:22 -05:00
mmcwilliams
30a070dca0
Device UI
2019-02-08 14:28:57 -05:00
mmcwilliams
0e618430ff
Install delay, exit and exec modules.
2019-02-08 14:07:35 -05:00
mmcwilliams
9db61a7190
Require modules.
2019-02-08 13:17:14 -05:00
mmcwilliams
b9a6da957d
Add new display and capture modules. Don't need new capture module rn.
2019-02-08 13:16:42 -05:00
mmcwilliams
2dbed1215d
Install local capture module to package.
2019-02-08 13:15:22 -05:00
mmcwilliams
12e09f04aa
Remove old capture. Create package file to install capture module.
2019-02-08 13:15:02 -05:00
mmcwilliams
97ec076ec1
Deprecate old capture module. Delete will follow.
2019-02-08 13:13:10 -05:00
mmcwilliams
4a86d5d441
Remove digital module, delete file
2019-02-08 13:12:33 -05:00
mmcwilliams
aebacbccaf
Deprecate "digital" module
2019-02-08 13:11:51 -05:00
mmcwilliams
e42d7a6e0b
Install local modules to package
2019-02-08 12:57:38 -05:00
mmcwilliams
95007d06a2
Install libs from intval_go_node project
2019-02-08 12:46:58 -05:00
mmcw-dev
8adab68cdc
Update package and increment version for local install
2018-12-10 22:14:55 -05:00
mmcw-dev
f110718342
Fix startup error, where spinner would be removed before fully connected
2018-12-10 21:52:48 -05:00
mmcw-dev
deee2ba59f
Fix build linux script
2018-12-10 07:53:00 -05:00
mmcw-dev
f07a429d8b
Rebuilt on linux
2018-12-09 22:01:29 -05:00
mmcw-dev
20f3170fe5
Update package lock
2018-12-09 22:01:15 -05:00
M McWilliams
f58f5ae95f
Make electron debian package optional
2018-11-24 20:10:20 -05:00
mmcw-dev
625094f0e3
Update to electron 3
2018-11-23 13:26:36 -05:00
mmcw-dev
b83e703cf1
staged changes
2018-11-23 13:16:08 -05:00
mmcwilliams
5f50e1f082
Digital module, not complete, was crashing app by looking for a non-existant module
2018-10-23 14:32:41 -04:00
mmcw-dev
a342ecca66
Import all work on digital branch into master
2018-10-06 23:38:29 -04:00
mmcwilliams
2653902dad
npm audit fix vulnerable packages
2018-09-25 14:43:44 -04:00
mmcwilliams
c0bc1b431a
Lock updated after install
2018-09-25 14:42:48 -04:00
mmcwilliams
fb444c03b5
fix lock conflict
2018-09-25 14:38:41 -04:00
mmcw-dev
1914641b77
Updates after package updates
2018-09-02 14:26:12 -04:00
mmcw-dev
92ba4af306
Update everything, latest electron, latest everything
2018-09-02 09:50:36 -04:00
mmcw-dev
af8e982cc9
Update to the latest electron
2018-09-02 08:10:26 -04:00
mmcw-dev
15eea45aa9
Update fixes
2018-09-02 08:06:40 -04:00
mmcwilliams
ca92abea68
Build new app.js
2018-06-26 09:36:18 -04:00
mmcw-dev
a051fe511f
Update todo tasks
2018-06-24 16:09:35 -04:00
mmcw-dev
4e4d19aed7
Update tests for variables features
2018-06-24 16:09:16 -04:00
mmcw-dev
c9f5d11413
Use startsWith, imported from lodash (don't need the whole thing)
2018-06-24 16:09:16 -04:00
mmcw-dev
d306bc915c
When there is a loop specified in the gui, write that into the mscript that gets generated from the grid
2018-06-24 16:09:16 -04:00
mmcw-dev
4c98b5c828
Update tests to use assert instead of if/and
2018-06-24 16:09:16 -04:00
mmcwilliams
709a5c1560
Remove whitespace
2018-06-19 09:49:34 -04:00
mmcwilliams
52350b2325
Update mscript usage
2018-06-16 23:19:58 -04:00
mmcwilliams
9e125e37d3
Add comment for jsdoc
2018-06-16 23:16:13 -04:00
mmcwilliams
db1128ab52
Update documentation
2018-06-16 23:13:14 -04:00
mmcwilliams
371c7afb25
Fix the fade feature and loop feature
2018-06-16 22:48:11 -04:00
mmcw-dev
88175a93c0
Work on fade feature
2018-06-16 21:33:53 -04:00
mmcw-dev
e0d4265875
Reactor command parsing into separate methods
2018-06-16 19:30:50 -04:00
mmcw-dev
8b08c35b96
Update profile script to use the new version of the mscript lib
2018-06-16 19:30:15 -04:00
mmcw-dev
67addbe7ab
Todo for mscript
2018-06-16 18:50:38 -04:00
mmcw-dev
5f736c0af4
New mscript, much easier to read, uses a class
2018-06-16 18:50:24 -04:00
mmcw-dev
48d3952e3c
Save old mscript for comparison for now
2018-06-16 18:50:10 -04:00
mmcw-dev
374d08e6ea
Profile script for timing new vs old mscript
2018-06-16 18:50:01 -04:00
mmcw-dev
e3b735ced3
Update script to function as a class
2018-06-16 18:49:48 -04:00
mmcw-dev
4565205aad
Install fs-extra for promise-based fs functionality
2018-06-14 11:42:29 -04:00
mmcw-dev
cb5e50792a
Remove legacy tests from mscript. This has been migrated to proper tests in QUnit (which should work in the browser as well as the app)
2018-06-14 11:38:17 -04:00
mmcw-dev
fc73859f8f
Use lighting steps to the GUI and when executing.
2018-03-16 12:59:23 -04:00
mmcw-dev
c1d5e52a10
Start mscript docs. Will describe each method to facilitate the addition of the "fade" feature.
2018-03-16 12:57:02 -04:00
mmcw-dev
df0806efa9
Add docs script for future use.
2018-03-16 12:56:24 -04:00
mmcw-dev
a6a910c909
Converted all mscript tests to Qunit tests.
2018-03-16 12:22:34 -04:00
mmcwilliams
1373d1d690
Start mscript work by adding tests. Will be relying on qunit.
2018-03-16 11:30:54 -04:00
mmcwilliams
bab6593fba
Add test script to the package file
2018-03-16 11:26:09 -04:00
mmcwilliams
c209fa9249
Fix build script for mac
2018-03-16 11:20:15 -04:00
mmcw-dev
2c76710f91
Add readme.md work for 1.0.3 release
2018-03-16 10:50:55 -04:00
mmcw-dev
4627382c91
Name package mcopy-app in linux build process
2018-03-15 15:33:45 -04:00
mmcw-dev
d50ba3ac6e
Require package file for server module. Still in dev.
2018-03-15 15:32:26 -04:00
mmcw-dev
0f74f6ac7c
Fix linux build process. Working now.
2018-03-15 15:32:09 -04:00
mmcw-dev
a2406c667a
Rename package to mcopy-app to prevent issues installing alongside mtools. Incremented build after patching issues with the grid sequencer.
2018-03-15 15:31:50 -04:00
mmcw-dev
a2ab93bd46
Fix the toSequence function which actually sends a compiled mscript script to the sequencer. Yay.
2018-03-15 14:52:41 -04:00
mmcw-dev
c128fa2871
Improve linux build process. Caught an issue where the binary mcopy is conflicting with another in the mtools library. Will be re-naming the binary mcopy-app on linux. Will revist this after current release.
2018-03-15 14:52:08 -04:00
mmcw-dev
116cb46fcd
Add experimental feature library.
2018-03-15 14:51:26 -04:00
mmcw-dev
d121a90dcc
Add a placeholder for the experimental "digital" feature.
2018-03-15 14:50:56 -04:00
mmcw-dev
5b0d221daa
Add the async/await exec wrapper that I use, for an experimental feature.
2018-03-15 14:50:36 -04:00
mmcw-dev
38b52d0618
Minor version increment, 1.0.0 was broken, and this is a corrective patch. 1.0.1 allows connected light devices to work without locking up the process.
2018-03-15 12:09:49 -04:00
mmcw-dev
ce6e450b44
To preserve the light functionality, the light command needed to have its await statements re-organized. Issue was that light values issued to the firmware take the form of sending the character "l" and then the rgb value of the light "255,255,255" and so forth. Then the program responds with the "l" to confirm the end of the command. Because of the change within the arduino library, to treat the arduino.send() method as an async function, the program was locking up waiting for the "l" response before it could send the rgb value string.
2018-03-15 12:08:23 -04:00
mmcw-dev
f1ca18b4a5
app.css updated from seq.less change
2018-03-15 11:55:58 -04:00
mmcwilliams
2f05a3d21e
Testing issue with light.js and the new async/await functions in main.js. Fundamental breakdown in light functionality that isn't occuring in proj.js. Ok I am just figuring out the issue as I type this, damnit.
2018-03-15 11:55:10 -04:00
mmcw-dev
f4afcaf8cc
Target correct icon path
2018-03-15 11:23:36 -04:00
mmcw-dev
95da651d6d
Run from local binaries, not globals
2018-03-15 11:23:23 -04:00
mmcw-dev
0577b53517
Add placeholder docs app
2018-03-15 10:23:03 -04:00
mmcw-dev
88c1e6d72d
Correct version to 1.0.0
2018-03-15 10:19:51 -04:00
mmcwilliams
6d6218101c
Update build mac script
2018-03-14 23:43:42 -04:00
mmcwilliams
dddd3214e1
Mscript:
...
* compile sequence
* run sequence
2018-03-14 23:19:23 -04:00
mmcwilliams
394ef0d1e3
Add spinner progress to gui.spinner
2018-03-14 23:17:59 -04:00
mmcwilliams
07df1ed883
All UI update for new mscript features
2018-03-14 23:17:42 -04:00
mmcwilliams
ec08407904
New icons
2018-03-14 23:15:01 -04:00
mmcwilliams
1b995be69b
Execute an abitrary sequence, while locking up the UI. This is needed for the GO TO functions and the mscript editor.
2018-03-14 23:14:48 -04:00
mmcwilliams
f73789bc4c
Added console and sequence designs.
2018-03-14 21:08:20 -04:00
mmcwilliams
d2ad8aa274
Make buttons #fff instead of color (it looked like a christmas tree).
2018-03-14 21:07:47 -04:00
mmcwilliams
acc9b8e89d
REposition the counters and the GO TO functions
2018-03-14 21:07:03 -04:00
mmcwilliams
e1491837f2
Blank back and forward were bother broken (no callbacks)
2018-03-14 21:06:39 -04:00
mmcwilliams
749719e477
mse.mscript and mse.console for mscript editor features.
2018-03-05 13:27:00 -05:00
mmcwilliams
a6becef4cc
Move mscript commands into footer of the text editor
2018-03-04 23:57:45 -05:00
mmcwilliams
8452d24819
Increase footer size
2018-03-04 23:56:25 -05:00
mmcwilliams
5f941a9140
Add styles to mscript UI. Allowing for a compilation step.
2018-03-04 23:56:01 -05:00
mmcwilliams
e28c349c75
Migrate mscript functions into their own source file
2018-03-04 23:55:31 -05:00
mmcwilliams
8d8ce64ff7
Make all functions in intval async/await
2018-03-04 23:54:42 -05:00
mmcwilliams
3e80925aaa
Corrected the fakeConnect serial fallback, which was failing to complete steps
2018-03-04 22:35:21 -05:00
mmcw-dev
7eab7675cb
Async/Await refactor in intval lib. FakeConnect needs repair.
2018-03-03 00:27:49 -05:00