Skip to content

Commit 3d051b1

Browse files
committed
Update the roadmap to release.
1 parent 678be02 commit 3d051b1

File tree

1 file changed

+90
-85
lines changed

1 file changed

+90
-85
lines changed

TODO.otl

+90-85
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,90 @@
1-
[_] 0% CPAN Release
2-
[_] 0% Name the distribution
3-
[_] 0% Rearrange modules into proper lib directory
4-
[_] 0% Examples
5-
[_] 0% Tests
6-
[_] 0% Documentation
7-
[_] 31% Firmata Protocol
8-
[_] 58% SysEx (\xF0...\xF7)
9-
[X] 100% String response (\xF0\x71...\xF7).
10-
[X] 100% Build 14-bit characters properly.
11-
Currently just stripping \0 octets.
12-
Cheap solution for ASCII, but the world's bigger.
13-
[X] 100% Protocol Version (\xF9)
14-
[X] 100% Parse it.
15-
[X] 100% Save it in the object.
16-
[X] 100% Accessor to query it.
17-
[_] 0% Capabilities query (\xF0\x79...\xF7).
18-
[_] 0% Define API to query capabilities.
19-
Currently just sending the raw octets fromt test.pl.
20-
[_] 0% Autosend request
21-
Unless asked not to, ask the device for its capabilities.
22-
[_] 33% Capabilities response (\xF0\x6C...\xF7)
23-
[X] 100% Parse it.
24-
[_] 0% Represent each pin in an introspectable way.
25-
[_] 0% Store pin capabilities in the object.
26-
[_] 0% Define input/output methods based on capabilities.
27-
[_] 0% How interesting might it be for device capabilities to define object APIs?
28-
Moose::Meta can do this for us.
29-
But... are the results elegant enough for us to care?
30-
[_] 0% Define API for output methods.
31-
[_] 0% Define API to query last input values.
32-
[_] 0% Define callbacks (role/emit) for Firmata data.
33-
[_] 0% Each port should have options for edge and level detection.
34-
[_] 0% Should these options drive the Firmata firmware?
35-
[_] 20% Analog I/O Message (\xE#..)
36-
[X] 100% Parse them.
37-
[_] 0% Store last values in the object.
38-
[_] 0% Trigger edge events, if requested.
39-
[_] 0% Trigger level events, if requested.
40-
[_] 0% Enhance Firmata firmware to handle edge vs. level detection?
41-
This has potential to reduce Firmata wire traffic.
42-
[_] 0% Make a proposal.
43-
[_] 20% Digital I/O Message (\x9#..)
44-
[X] 100% Parse them.
45-
[_] 0% Store last values in the object.
46-
[_] 0% Trigger edge events, if requested.
47-
[_] 0% Trigger level events, if requested.
48-
[_] 0% Add support to UNO Firmata firmware?
49-
Needs to be supported for us to receive it.
50-
[_] 0% Currently unsupported within UNO Firmata 2.2 firmware?
51-
[_] 0% Make a proposal?
52-
[_] 50% Report analog pin (\xC#..)
53-
[X] 100% Parse them.
54-
Unnecessary however since this is an outbound command.
55-
[X] 100% Create a strawman API to send the analog report command.
56-
$device->analog_report(PORT, BOOL);
57-
[_] 0% Settle upon a final API for this.
58-
[_] 0% Validate port can perform the reqested action.
59-
[_] 50% Report digital (\xD#..)
60-
UNO Firmata 2.2 doesn't do anything with this.
61-
[X] 100% Parse them.
62-
Unnecessary however since this is an outbound command.
63-
[X] 100% Create a strawman API to send the digital report command.
64-
$device->digital_report(PORT, BOOL);
65-
[_] 0% Settle upon a final API for this.
66-
[_] 0% Validate port can perform the reqested action.
67-
[_] 25% Set Pin Mode (\xF4..)
68-
[X] 100% Strawman method to send these commands.
69-
[X] 100% $device->digital_in(PORT);
70-
[X] 100% $device->digital_out(PORT);
71-
[X] 100% $device->analog_in(PORT);
72-
[X] 100% $device->pwm_out(PORT);
73-
[X] 100% $device->servo_out(PORT);
74-
[_] 0% Settle on final APIs for this.
75-
[_] 0% Store last values in the object.
76-
[_] 0% Validate port can perform the reqested action.
77-
[_] 0% Additional API
78-
[_] 0% Generic requirements
79-
[_] 0% Pin commands must be validated against capabilities.
80-
[_] 0% Pin naming
81-
$device->pin_name( 13, "onboard_led" );
82-
$device->pin_name( 13, undef );
83-
[_] 0% Pin Status
84-
[_] 0% $device->pin_get(13);
85-
[_] 0% $device->pin_stream(13);
1+
[_] 11% CPAN Release
2+
[_] 0% Packaging
3+
[_] 0% Name the distribution
4+
[_] 0% Rearrange modules into proper lib directory
5+
[_] 0% Examples
6+
[_] 0% Tests
7+
[_] 0% Documentation
8+
[_] 33% Firmata Protocol
9+
[_] 58% SysEx (\xF0...\xF7)
10+
[X] 100% String response (\xF0\x71...\xF7).
11+
[X] 100% Build 14-bit characters properly.
12+
Currently just stripping \0 octets.
13+
Cheap solution for ASCII, but the world's bigger.
14+
[X] 100% Protocol Version (\xF9)
15+
[X] 100% Parse it.
16+
[X] 100% Save it in the object.
17+
[X] 100% Accessor to query it.
18+
[_] 0% Capabilities query (\xF0\x79...\xF7).
19+
[_] 0% Define API to query capabilities.
20+
Currently just sending the raw octets fromt test.pl.
21+
[_] 0% Autosend request
22+
Unless asked not to, ask the device for its capabilities.
23+
[_] 33% Capabilities response (\xF0\x6C...\xF7)
24+
[X] 100% Parse it.
25+
[_] 0% Represent each pin in an introspectable way.
26+
[_] 0% Store pin capabilities in the object.
27+
[_] 0% Define input/output methods based on capabilities.
28+
[_] 0% How interesting might it be for device capabilities to define object APIs?
29+
Moose::Meta can do this for us.
30+
But... are the results elegant enough for us to care?
31+
[_] 0% Define API for output methods.
32+
[_] 0% Define API to query last input values.
33+
[_] 0% Define callbacks (role/emit) for Firmata data.
34+
[_] 0% Each port should have options for edge and level detection.
35+
[_] 0% Should these options drive the Firmata firmware?
36+
[_] 20% Analog I/O Message (\xE#..)
37+
[X] 100% Parse them.
38+
[_] 0% Store last values in the object.
39+
[_] 0% Trigger edge events, if requested.
40+
[_] 0% Trigger level events, if requested.
41+
[_] 0% Enhance Firmata firmware to handle edge vs. level detection?
42+
This has potential to reduce Firmata wire traffic.
43+
[_] 0% Make a proposal.
44+
[_] 33% Digital I/O Message (\x9#..)
45+
These are edge-detected events out of the Arduino.
46+
[X] 100% Parse them.
47+
[_] 0% Store last values in the object.
48+
[_] 0% Allow code to query the last values.
49+
This can simulate repeated values given a latch pin.
50+
[_] 50% Report analog pin (\xC#..)
51+
[X] 100% Parse them.
52+
Unnecessary however since this is an outbound command.
53+
[X] 100% Create a strawman API to send the analog report command.
54+
$device->analog_report(PORT, BOOL);
55+
[_] 0% Settle upon a final API for this.
56+
[_] 0% Validate port can perform the reqested action.
57+
[_] 50% Report digital (\xD#..)
58+
[X] 100% Parse them.
59+
[X] 100% Create a strawman API to send the digital report command.
60+
$device->digital_report(PORT, MASK);
61+
[_] 0% Settle upon a final API for this.
62+
[_] 0% For reading bytes...
63+
$device->digital_report(PORT, MASK);
64+
[_] 0% For reading bits/switches...
65+
$device->digital_report(PIN);
66+
[_] 0% Define semantics for mixed-mode reading.
67+
[_] 0% Validate port can perform the reqested action.
68+
[_] 25% Set Pin Mode (\xF4..)
69+
[X] 100% Strawman method to send these commands.
70+
[X] 100% $device->digital_in(PORT);
71+
[X] 100% $device->digital_out(PORT);
72+
[X] 100% $device->analog_in(PORT);
73+
[X] 100% $device->pwm_out(PORT);
74+
[X] 100% $device->servo_out(PORT);
75+
[_] 0% Settle on final APIs for this.
76+
[_] 0% Store last values in the object.
77+
[_] 0% Validate port can perform the reqested action.
78+
[_] 0% Additional API
79+
[_] 0% Generic requirements
80+
[_] 0% Pin commands must be validated against capabilities.
81+
[_] 0% Pin naming
82+
[_] 0% Strawman API
83+
$device->pin_name( 13, "onboard_led" );
84+
$device->pin_name( 13, undef );
85+
[_] 0% Decide upon a final API
86+
[_] 0% Pin Status
87+
[_] 0% Strawman API
88+
[_] 0% $device->pin_get(13);
89+
[_] 0% $device->pin_stream(13);
90+
[_] 0% Decide upon a final API.

0 commit comments

Comments
 (0)