NOP0 / rustmatic

PLC programming in Rust!
Apache License 2.0
35 stars 2 forks source link

Priorities #30

Open NOP0 opened 4 years ago

NOP0 commented 4 years ago

I'm currently working on the #19, #22, #29 PR's. Where to next? I guess there's some options

  1. Contributing more to the parsing, like #19, #22
  2. Contributing "well known" standard functions to the standard library.
  3. "Fixing" the dummy-input crate. Dummy-input is not the best name, and it should maybe be some generic stuff over possible input types? Ideally there could be like signal generators here that you could parametrize, like generating a sine wave or a bool pulse train. Maybe there could be some "devices" that take a closure, so you can supply the signal generator. In that way you can use the same signal generators in the user program also?
  4. Updating gpio crate according to the new ProcessImage, making a minimal example for RPi?

... and probably a lot of other stuff. It's no lack of tasks. πŸ˜„ Are there any of these tasks that should be prioritized? Are there other tasks?

I try to have at least of couple of different topics going at the same time for variety. But like for all of us, however much I enjoy it, I have a "set" amount of time each week for this kind of stuff. πŸ™‚

Thoughts?

Michael-F-Bryan commented 4 years ago

My first priority is to finish #27 and I should be ready to merge some time tonight. From there some future tasks are:


I think our overall goal should be to get a really simple example up and running as fast as possible, allowing us to put off things which won't directly get us closer to that goal.

It's really satisfying when you have a working thing in front of you and can interact with it, whereas adding extra library functions or API flexibility just doesn't have the same appeal.

In my mind, the simplest useful example would be a program written in structured text which is executed by the runtime and toggles the state of an output (e.g. the 0'th bit of output address 0) at a frequency dictated by an input (e.g. the byte at input address 5).

EDIT: as part of #27 I made an ugly blinky.rs program we can build on.

NOP0 commented 4 years ago

I think our overall goal should be to get a really simple example up and running as fast as possible, allowing us to put off things which won't directly get us closer to that goal.

100% ACK.

I guess some obvious things I can contribute towards this might be:

NOP0 commented 4 years ago

Figure out how users will interact with the runtime (GUI program, exposing a programmatic HTTP API, REPL, etc.)

I don't know if we could use something like vscode webview to i.e. display Ladder Logic? https://code.visualstudio.com/api/extension-guides/webview