Skip to content

Commit ebb7ab3

Browse files
committed
rudimentary serverdown/servertickle sub-loop feature support for todbot/blink1#335
1 parent 4018fa1 commit ebb7ab3

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

README.md

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
Command-line Tools and C library for blink(1)
2-
============================================
1+
# Command-line Tools and C library for blink(1) USB RGB LED
32

43
This code lives at the repository: https://github.com/todbot/blink1-tool
54
It originally lived as a directory https://github.com/todbot/blink1 but now has its own repository.
65

76
For pre-built binaries, see the Releases page: https://github.com/todbot/blink1-tool/releases
7+
88
To build, see the Makefile.
99

10-
The current tools are are:
10+
The current tools are:
1111

1212
- `blink1-lib` -- C library for controlling blink(1)
1313
- `blink1-tool` -- command-line tool for controlling blink(1)
@@ -21,6 +21,8 @@ Type `make help` for a full list.
2121
Also see in this directory:
2222
- `scripts` -- examples shell scripts using blink1-tool
2323

24+
## Supported platforms
25+
2426
Supported platforms for `blink1-tool` and `blink1-lib`:
2527

2628
- Mac OS X 10.6.8, 10.7+
@@ -37,9 +39,13 @@ eliminating the need for shared library dependencies on the target.
3739
However, static builds can be problematic for some systems with "different"
3840
libusb implementations, so doing `make EXEFLAGS=` will generally build a non-static version.
3941

42+
## Using blink1-lib in your C/C++ project
43+
[tbd, but basically look at the makefile for blink1-tool]
44+
45+
46+
## Docker and blink(1)
47+
[this may be out of date after the repo move]
4048

41-
Docker and blink(1)
42-
==========
4349
To build the image from the `Dockerfile`
4450

4551
- `docker build -t robtec/blink1 .`

blink1-lib.c

+6-5
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,14 @@ int blink1_readRGB(blink1_device *dev, uint16_t* fadeMillis,
349349
// - on == 1 or 0, enable or disable
350350
// - millis == milliseconds to wait until triggering
351351
// - st == 1 or 0, stay lit or set off() (mk2 firmware only)
352-
// FIXME: bug in firmware?
352+
// FIXME: bug in firmware? yes in v204 devices, max time is 62 secs
353353
// - millis = 100000 => dms = 10000, dms_hi = 39, dms_lo = 16 :: real time = 34 secs
354354
// - millis = 50000 => dms = 5000, dms_hi = 19, dms_lo = 136 :: real time = 50 secs
355355
// - millis = 652800 => dms = 65280, dms_hi = 255, dms_lo = 0 :: real time = 62 secs
356356
// - millis = 62000 => dms = 6200, dms_hi = 24, dms_lo = 56 :: real time = 62 secs
357357
//
358-
int blink1_serverdown(blink1_device *dev, uint8_t on, uint32_t millis, uint8_t st)
358+
int blink1_serverdown(blink1_device *dev, uint8_t on, uint32_t millis, uint8_t st,
359+
uint8_t startpos, uint8_t endpos)
359360
{
360361
uint16_t dms = millis / 10; // millis_divided_by_10
361362

@@ -367,8 +368,8 @@ int blink1_serverdown(blink1_device *dev, uint8_t on, uint32_t millis, uint8_t s
367368
buf[3] = (dms>>8);
368369
buf[4] = (dms % 0xff);
369370
buf[5] = st; // mk2 only
370-
buf[6] = 0;
371-
buf[7] = 0;
371+
buf[6] = startpos;
372+
buf[7] = endpos;
372373

373374
int rc = blink1_write(dev, buf, sizeof(buf) );
374375
return rc;
@@ -478,7 +479,7 @@ int blink1_savePattern( blink1_device *dev )
478479
return rc;
479480
}
480481

481-
// only for unreleased mk2a devices
482+
// only for mk2a devices (fw val '204')
482483
int blink1_setLEDN( blink1_device* dev, uint8_t ledn)
483484
{
484485
uint8_t buf[blink1_buf_size];

blink1-lib.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,11 @@ int blink1_serialnumwrite(blink1_device *dev, uint8_t* serialnumstr);
233233
* @param on enable or disable: enable=1, disable=0
234234
* @param millis milliseconds to wait until triggering (up to 65,355 millis)
235235
* @param stay lit (st=1) or set off() (st=0)
236+
* @param startpos pattern start position (fw 205+)
237+
* @param endpos pattern end pos (fw 205+)
236238
*/
237239
int blink1_serverdown(blink1_device *dev, uint8_t on, uint32_t millis,
238-
uint8_t st);
240+
uint8_t st, uint8_t startpos, uint8_t endpos);
239241

240242
/**
241243
* Play color pattern stored in blink1.

blink1-tool.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -755,8 +755,10 @@ int main(int argc, char** argv)
755755
//int on = arg;
756756
int on = cmdbuf[0];
757757
int st = cmdbuf[1];
758+
int startpos = cmdbuf[2];
759+
int endpos = cmdbuf[3];
758760
msg("setting servertickle %s (@ %ld millis)\n",((on)?"ON":"OFF"),delayMillis);
759-
blink1_serverdown( dev, on, delayMillis, st );
761+
blink1_serverdown( dev, on, delayMillis, st, startpos,endpos );
760762
}
761763
else if( cmd == CMD_PLAYPATTERN ) {
762764
blink1_close(dev);

0 commit comments

Comments
 (0)