Commit Graph

301 Commits

Author SHA1 Message Date
mmcw-dev ed14564de7 Fix issue of false positives on detecting second cmaeras and projectors 2019-04-15 16:15:34 -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 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 96754fcf49 Work on progress bar. 2019-04-02 10:21:01 -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 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 42691c1577 All work on grid + sequencer rewrite. 2019-03-22 17:06:57 -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 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 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
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 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 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 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 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 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 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 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 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 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 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 c964410f7b Add variable for tracking whether or not light feature is disabled. 2019-02-26 16:42:54 -05:00
mmcwilliams 7398f7993d Start work on secondary projector feature 2019-02-25 18:14:29 -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
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 54ab121e89 Feeble first attempt at documenting code 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 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
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 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 b9a6da957d Add new display and capture modules. Don't need new capture module rn. 2019-02-08 13:16:42 -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 95007d06a2 Install libs from intval_go_node project 2019-02-08 12:46:58 -05:00
mmcw-dev a342ecca66 Import all work on digital branch into master 2018-10-06 23:38:29 -04:00
mmcw-dev 1914641b77 Updates after package updates 2018-09-02 14:26:12 -04:00
mmcw-dev a051fe511f Update todo tasks 2018-06-24 16:09:35 -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
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 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 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
mmcwilliams 1373d1d690 Start mscript work by adding tests. Will be relying on qunit. 2018-03-16 11:30:54 -04:00
mmcw-dev d50ba3ac6e Require package file for server module. Still in dev. 2018-03-15 15:32:26 -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 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
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
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 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 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 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
mmcwilliams c453e7ac43 Async/Await refactor for arduino and sequence-related features 2018-03-02 22:42:15 -05:00
mmcwilliams 4dccefc126 Write new profile setting to settings.json file when changed 2018-02-07 13:44:24 -05:00
mmcwilliams 3ac7733635 Refactor lib/gui/index.js to use const/let 2018-02-01 14:55:20 -05:00
mmcwilliams 62eb54ce49 Add the beginnings of the move_to feature 2018-02-01 14:53:46 -05:00
mmcwilliams 34a7d37b7b Save devices state
Restore state
Switch to use intval as camera
2018-02-01 14:52:47 -05:00
mmcwilliams 96eb24ac6d Add messaging to the device connection process. 2018-01-31 21:46:37 -05:00
mmcwilliams 66d9af42b6 Define spinner with a cfg object only once, then hide and show as needed.
Add a 'msg' parameter to the spinner function which adds a message to the spinner on show and a spinnerMsg() function which allows it to be changed while the spinner is showing.
2018-01-31 21:45:19 -05:00
mmcwilliams 43770b539f Intval connect feature, for accessing an intval3 over the web 2018-01-31 10:42:11 -05:00
M McWilliams 6613558221 named profiles in cfg 2018-01-30 09:33:34 -05:00
M McWilliams 0a28c84ef9 Merge branch 'master' of https://github.com/sixteenmillimeter/mcopy 2018-01-30 04:10:23 -05:00
M McWilliams 63e081afe4 Add COM3 for windows tests 2018-01-30 04:07:52 -05:00
mmcwilliams 7a33d3f5b1 Corrected serialport usage after update 2018-01-23 11:41:42 -05:00
mmcwilliams d311ac4727 Readline in serialport is a class, needs to be constructed. 2018-01-23 11:35:39 -05:00
mmcwilliams dba64d5bd7 Settings, database and main.js 2018-01-21 18:53:15 -05:00