-
Notifications
You must be signed in to change notification settings - Fork 34
Waratah Local Setup & Dev Loop
Matthew Williams edited this page Feb 5, 2025
·
3 revisions
Below shows sample running of Waratah from cmdline with source (-s) file simpleKeyboard.wara and destination (-d) file descriptor.txt.
Note: The destination file (-d) does not have an extension (.txt/.h). The extension is calculated during compilation from the requested output type (plain-text or C++).
C:\>waratahcmd.exe -s simpleKeyboard.wara -d descriptor
Reading from file 'C:\simpleKeyboard.wara'
Creating output file 'C:\descriptor.txt'
Successfully created output file 'C:\descriptor.txt'
Successfully generated descriptor file 'C:\descriptor.txt'
Descriptor size 53 (bytes)
+-----------+--------+--------------------+
| Report Id | Kind | Report Size (bits) |
+-----------+--------+--------------------+
| 1 | Input | 64 |
+-----------+--------+--------------------+
| 1 | Output | 8 |
+-----------+--------+--------------------+
[[settings]]
outputformat = 'PlainText'
[[applicationCollection]]
usage = ['Generic Desktop', 'Keyboard']
[[applicationCollection.inputReport]]
# Special buttons
#
# N.B. Windows applies special buttons only to subsequent keys, so
# must appear in report beforehand.
[[applicationCollection.inputReport.variableItem]]
usageRange = ['Keyboard/Keypad', 'Keyboard LeftControl', 'Keyboard Right GUI']
logicalValueRange = [0, 1]
# Regular Buttons
[[applicationCollection.inputReport.arrayItem]]
usageRange = ['Keyboard/Keypad', 'ErrorRollOver', 'Keyboard Application']
count = 8
# LEDS
[[applicationCollection.outputReport]]
[[applicationCollection.outputReport.variableItem]]
usageRange = ['LED', 'Num Lock', 'Kana']
logicalValueRange = [0, 1]05-01....UsagePage(Generic Desktop[1])
09-06....UsageId(Keyboard[6])
A1-01....Collection(Application)
85-01........ReportId(1)
05-07........UsagePage(Keyboard/Keypad[7])
19-E0........UsageIdMin(Keyboard LeftControl[224])
29-E7........UsageIdMax(Keyboard Right GUI[231])
15-00........LogicalMinimum(0)
25-01........LogicalMaximum(1)
95-08........ReportCount(8)
75-01........ReportSize(1)
81-02........Input(Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, BitField)
19-01........UsageIdMin(ErrorRollOver[1])
29-65........UsageIdMax(Keyboard Application[101])
15-01........LogicalMinimum(1)
25-65........LogicalMaximum(101)
75-07........ReportSize(7)
81-00........Input(Data, Array, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, BitField)
05-08........UsagePage(LED[8])
19-01........UsageIdMin(Num Lock[1])
29-05........UsageIdMax(Kana[5])
15-00........LogicalMinimum(0)
25-01........LogicalMaximum(1)
95-05........ReportCount(5)
75-01........ReportSize(1)
91-02........Output(Data, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField)
95-01........ReportCount(1)
75-03........ReportSize(3)
91-03........Output(Constant, Variable, Absolute, NoWrap, Linear, PreferredState, NoNullPosition, NonVolatile, BitField)
C0.......EndCollection()
Current recommended editor is Sublime Text, which has a TOML syntax highlighting plugin, and a comprehensive 3P build-system facility.
Future developments of Waratah may include a VSCode plugin.
{
"cmd": ["C:\\WaratahCmd.exe", "-s $file", "-d C:\\descriptor"],
"selector": "source.wara",
"file_regex": "^\\s*File \"(...*?)\", line ([0-9]*)"
}