Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • card10/firmware
  • annejan/firmware
  • astro/firmware
  • fpletz/firmware
  • gerd/firmware
  • fleur/firmware
  • swym/firmware
  • l/firmware
  • uberardy/firmware
  • wink/firmware
  • madonius/firmware
  • mot/firmware
  • filid/firmware
  • q3k/firmware
  • hauke/firmware
  • Woazboat/firmware
  • pink/firmware
  • mossmann/firmware
  • omniskop/firmware
  • zenox/firmware
  • trilader/firmware
  • Danukeru/firmware
  • shoragan/firmware
  • zlatko/firmware
  • sistason/firmware
  • datenwolf/firmware
  • bene/firmware
  • amedee/firmware
  • martinling/firmware
  • griffon/firmware
  • chris007/firmware
  • adisbladis/firmware
  • dbrgn/firmware
  • jelly/firmware
  • rnestler/firmware
  • mh/firmware
  • ln/firmware
  • penguineer/firmware
  • monkeydom/firmware
  • jens/firmware
  • jnaulty/firmware
  • jeffmakes/firmware
  • marekventur/firmware
  • pete/firmware
  • h2obrain/firmware
  • DooMMasteR/firmware
  • jackie/firmware
  • prof_r/firmware
  • Draradech/firmware
  • Kartoffel/firmware
  • hinerk/firmware
  • abbradar/firmware
  • JustTB/firmware
  • LuKaRo/firmware
  • iggy/firmware
  • ente/firmware
  • flgr/firmware
  • Lorphos/firmware
  • matejo/firmware
  • ceddral7/firmware
  • danb/firmware
  • joshi/firmware
  • melle/firmware
  • fitch/firmware
  • deurknop/firmware
  • sargon/firmware
  • markus/firmware
  • kloenk/firmware
  • lucaswerkmeister/firmware
  • derf/firmware
  • meh/firmware
  • dx/card10-firmware
  • torben/firmware
  • yuvadm/firmware
  • AndyBS/firmware
  • klausdieter1/firmware
  • katzenparadoxon/firmware
  • xiretza/firmware
  • ole/firmware
  • techy/firmware
  • thor77/firmware
  • TilCreator/firmware
  • fuchsi/firmware
  • dos/firmware
  • yrlf/firmware
  • PetePriority/firmware
  • SuperVirus/firmware
  • sur5r/firmware
  • tazz/firmware
  • Alienmaster/firmware
  • flo_h/firmware
  • baldo/firmware
  • mmu_man/firmware
  • Foaly/firmware
  • sodoku/firmware
  • Guinness/firmware
  • ssp/firmware
  • led02/firmware
  • Stormwind/firmware
  • arist/firmware
  • coon/firmware
  • mdik/firmware
  • pippin/firmware
  • royrobotiks/firmware
  • zigot83/firmware
  • mo_k/firmware
106 results
Select Git revision
Show changes
Commits on Source (4)
...@@ -28,7 +28,7 @@ The current draft uses following service specification: ...@@ -28,7 +28,7 @@ The current draft uses following service specification:
- Rockets characteristic: - Rockets characteristic:
UUID: ``42230210-2342-2342-2342-234223422342`` UUID: ``42230210-2342-2342-2342-234223422342``
write no response read and write no response
- Background LED Bottom Left characteristic: - Background LED Bottom Left characteristic:
...@@ -104,6 +104,9 @@ Rockets characteristic ...@@ -104,6 +104,9 @@ Rockets characteristic
The Rockets characteristic makes it possible to address every three rockets. The Rockets characteristic makes it possible to address every three rockets.
Just write there three byte array, one for evey rocket. Just write there three byte array, one for evey rocket.
On read you get the current value of all three rockets.
Range is between 0 and 31 (``0x1f`) if send higher value it will set to max of 31.
Dataformat: Dataformat:
...@@ -113,8 +116,8 @@ Dataformat: ...@@ -113,8 +116,8 @@ Dataformat:
Rocket0 Rocket1 Rocket2 Rocket0 Rocket1 Rocket2
======= ======= ======= ======= ======= =======
- Enable only Rocket0: ``0xff0000`` - Enable only Rocket0: ``0x1f0000``
- Enable all rockets with 50% brightness: ``0x7f7f7f`` - Enable all rockets with 50% brightness: ``0x0f0f0f``
Background LED <Position> characteristic Background LED <Position> characteristic
---------------------------------------- ----------------------------------------
......
...@@ -114,7 +114,7 @@ static const uint8_t UUID_attChar_vibra[] = { ...@@ -114,7 +114,7 @@ static const uint8_t UUID_attChar_vibra[] = {
/* BLE UUID for card10 char rockets */ /* BLE UUID for card10 char rockets */
static const uint8_t UUID_char_rockets[] = { static const uint8_t UUID_char_rockets[] = {
ATT_PROP_WRITE_NO_RSP, ATT_PROP_READ | ATT_PROP_WRITE_NO_RSP,
UINT16_TO_BYTES(CARD10_ROCKETS_VAL_HDL), UINT16_TO_BYTES(CARD10_ROCKETS_VAL_HDL),
CARD10_UUID_SUFFIX, 0x10, CARD10_UUID_PREFIX CARD10_UUID_SUFFIX, 0x10, CARD10_UUID_PREFIX
}; };
...@@ -123,6 +123,9 @@ static const uint8_t UUID_attChar_rockets[] = { ...@@ -123,6 +123,9 @@ static const uint8_t UUID_attChar_rockets[] = {
CARD10_UUID_SUFFIX, 0x10, CARD10_UUID_PREFIX CARD10_UUID_SUFFIX, 0x10, CARD10_UUID_PREFIX
}; };
static uint8_t rocketsValue[] = { 0, 0, 0 };
static uint16_t rocketsLen = sizeof(rocketsValue);
/* BLE UUID for card10 led background bottom left */ /* BLE UUID for card10 led background bottom left */
static const uint8_t UUID_char_led_bg_bottom_left[] = { static const uint8_t UUID_char_led_bg_bottom_left[] = {
ATT_PROP_WRITE_NO_RSP, ATT_PROP_WRITE_NO_RSP,
...@@ -302,12 +305,14 @@ static const attsAttr_t card10SvcAttrList[] = { ...@@ -302,12 +305,14 @@ static const attsAttr_t card10SvcAttrList[] = {
.maxLen = sizeof(UUID_char_rockets), .maxLen = sizeof(UUID_char_rockets),
.permissions = ATTS_PERMIT_READ }, .permissions = ATTS_PERMIT_READ },
{ .pUuid = UUID_attChar_rockets, { .pUuid = UUID_attChar_rockets,
.pValue = NULL, .pValue = rocketsValue,
.pLen = &rocketsLen,
.maxLen = 3 * sizeof(uint8_t), .maxLen = 3 * sizeof(uint8_t),
.settings = ATTS_SET_WRITE_CBACK, .settings = (ATTS_SET_WRITE_CBACK | ATTS_SET_READ_CBACK),
.permissions = .permissions =
(ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH) }, ATTS_PERMIT_WRITE_AUTH | ATTS_PERMIT_READ |
ATTS_PERMIT_READ_ENC | ATTS_PERMIT_READ_AUTH) },
// BG LED Bottom left // BG LED Bottom left
...@@ -736,6 +741,17 @@ static uint8_t readCard10CB( ...@@ -736,6 +741,17 @@ static uint8_t readCard10CB(
APP_TRACE_INFO0("ble-card10: read time\n"); APP_TRACE_INFO0("ble-card10: read time\n");
return ATT_SUCCESS; return ATT_SUCCESS;
case CARD10_ROCKETS_VAL_HDL:
pAttr->pValue[0] = epic_leds_get_rocket(0);
pAttr->pValue[1] = epic_leds_get_rocket(1);
pAttr->pValue[2] = epic_leds_get_rocket(2);
APP_TRACE_INFO3(
"ble-card10: get rockets 0:%d, 1:%d, 2:%d\n",
pAttr->pValue[0],
pAttr->pValue[1],
pAttr->pValue[2]
);
return ATT_SUCCESS;
case CARD10_PERSONAL_STATE_VAL_HDL: case CARD10_PERSONAL_STATE_VAL_HDL:
ui16 = epic_personal_state_get(); ui16 = epic_personal_state_get();
*pAttr->pValue = ui16; *pAttr->pValue = ui16;
......
...@@ -95,6 +95,7 @@ typedef _Bool bool; ...@@ -95,6 +95,7 @@ typedef _Bool bool;
#define API_LEDS_SET_ALL_HSV 0x6b #define API_LEDS_SET_ALL_HSV 0x6b
#define API_LEDS_SET_GAMMA_TABLE 0x6c #define API_LEDS_SET_GAMMA_TABLE 0x6c
#define API_LEDS_CLEAR_ALL 0x6d #define API_LEDS_CLEAR_ALL 0x6d
#define API_LEDS_GET_ROCKET 0x6e
#define API_VIBRA_SET 0x70 #define API_VIBRA_SET 0x70
#define API_VIBRA_VIBRATE 0x71 #define API_VIBRA_VIBRATE 0x71
...@@ -706,6 +707,24 @@ API(API_LEDS_UPDATE, void epic_leds_update(void)); ...@@ -706,6 +707,24 @@ API(API_LEDS_UPDATE, void epic_leds_update(void));
*/ */
API(API_LEDS_SET_ROCKET, void epic_leds_set_rocket(int led, uint8_t value)); API(API_LEDS_SET_ROCKET, void epic_leds_set_rocket(int led, uint8_t value));
/**
* Get the brightness of one of the rocket LEDs.
*
* :param int led: Which LED to get.
*
* +-------+--------+----------+
* | ID | Color | Location |
* +=======+========+==========+
* | ``0`` | Blue | Left |
* +-------+--------+----------+
* | ``1`` | Yellow | Top |
* +-------+--------+----------+
* | ``2`` | Green | Right |
* +-------+--------+----------+
* :return uint8_t value: Brightness of LED (value between 0 and 31).
*/
API(API_LEDS_GET_ROCKET, uint8_t epic_leds_get_rocket(int led));
/** /**
* Turn on the bright side LED which can serve as a flashlight if worn on the left wrist or as a rad tattoo illuminator if worn on the right wrist. * Turn on the bright side LED which can serve as a flashlight if worn on the left wrist or as a rad tattoo illuminator if worn on the right wrist.
* *
......
...@@ -100,6 +100,17 @@ void epic_leds_set_rocket(int led, uint8_t value) ...@@ -100,6 +100,17 @@ void epic_leds_set_rocket(int led, uint8_t value)
value = value > 31 ? 31 : value; value = value > 31 ? 31 : value;
pmic_set_led(led, value); pmic_set_led(led, value);
} }
uint8_t epic_leds_get_rocket(int led)
{
uint8_t ret = 0;
while (hwlock_acquire(HWLOCK_I2C, pdMS_TO_TICKS(1)) < 0) {
vTaskDelay(pdMS_TO_TICKS(1));
}
ret = pmic_get_led(led);
hwlock_release(HWLOCK_I2C);
return ret;
}
void epic_set_flashlight(bool power) void epic_set_flashlight(bool power)
{ {
......
...@@ -122,7 +122,18 @@ void pmic_set_button_callback(pmic_button_callback_fn cb) ...@@ -122,7 +122,18 @@ void pmic_set_button_callback(pmic_button_callback_fn cb)
{ {
pmic_button_callback = cb; pmic_button_callback = cb;
} }
uint8_t pmic_get_led(uint8_t led)
{
if (led == 0) {
return MAX77650_getBRT_LED0();
}
if (led == 1) {
return MAX77650_getBRT_LED1();
}
if (led == 2) {
return MAX77650_getBRT_LED2();
}
}
void pmic_set_led(uint8_t led, uint8_t val) void pmic_set_led(uint8_t led, uint8_t val)
{ {
if (led == 0) { if (led == 0) {
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
void pmic_init(void); void pmic_init(void);
void pmic_set_led(uint8_t led, uint8_t val); void pmic_set_led(uint8_t led, uint8_t val);
uint8_t pmic_get_led(uint8_t led);
void pmic_poll(void); void pmic_poll(void);
/* weak, so it can be overwritten by applications */ /* weak, so it can be overwritten by applications */
......
...@@ -72,6 +72,27 @@ def set_rocket(led, value): ...@@ -72,6 +72,27 @@ def set_rocket(led, value):
sys_leds.set_rocket(led, value) sys_leds.set_rocket(led, value)
def get_rocket(led):
"""
Get brightness of one of the rocket LEDs.
:param int led: Choose your rocket!
+-------+--------+----------+
| ID | Color | Location |
+=======+========+==========+
| ``0`` | Blue | Left |
+-------+--------+----------+
| ``1`` | Yellow | Top |
+-------+--------+----------+
| ``2`` | Green | Right |
+-------+--------+----------+
:rtype: int
:returns: Brightness of LED (value between 0 and 31).
"""
return sys_leds.get_rocket(led)
def dim_top(value): def dim_top(value):
""" """
Set global brightness for top RGB LEDs. Set global brightness for top RGB LEDs.
......
...@@ -15,6 +15,7 @@ Q(set_all) ...@@ -15,6 +15,7 @@ Q(set_all)
Q(set_all_hsv) Q(set_all_hsv)
Q(set_flashlight) Q(set_flashlight)
Q(set_rocket) Q(set_rocket)
Q(get_rocket)
Q(set_powersave) Q(set_powersave)
Q(set_gamma) Q(set_gamma)
Q(dim_top) Q(dim_top)
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#include <stdio.h> #include <stdio.h>
static mp_obj_t mp_leds_set(mp_obj_t led_in, mp_obj_t color_in) static mp_obj_t mp_leds_set(mp_obj_t led_in, mp_obj_t color_in)
{ {
int led = mp_obj_get_int(led_in); int led = mp_obj_get_int(led_in);
...@@ -174,6 +173,14 @@ static mp_obj_t mp_leds_set_rocket(mp_obj_t led_in, mp_obj_t value_in) ...@@ -174,6 +173,14 @@ static mp_obj_t mp_leds_set_rocket(mp_obj_t led_in, mp_obj_t value_in)
} }
static MP_DEFINE_CONST_FUN_OBJ_2(leds_set_rocket_obj, mp_leds_set_rocket); static MP_DEFINE_CONST_FUN_OBJ_2(leds_set_rocket_obj, mp_leds_set_rocket);
static mp_obj_t mp_leds_get_rocket(mp_obj_t led_in)
{
int led = mp_obj_get_int(led_in);
uint8_t ret = epic_leds_get_rocket(led);
return MP_OBJ_NEW_SMALL_INT(ret);
}
static MP_DEFINE_CONST_FUN_OBJ_1(leds_get_rocket_obj, mp_leds_get_rocket);
static mp_obj_t mp_leds_dim_top(mp_obj_t dim_in) static mp_obj_t mp_leds_dim_top(mp_obj_t dim_in)
{ {
int dim = mp_obj_get_int(dim_in); int dim = mp_obj_get_int(dim_in);
...@@ -242,6 +249,7 @@ static const mp_rom_map_elem_t leds_module_globals_table[] = { ...@@ -242,6 +249,7 @@ static const mp_rom_map_elem_t leds_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_set_all), MP_ROM_PTR(&leds_set_all_obj) }, { MP_ROM_QSTR(MP_QSTR_set_all), MP_ROM_PTR(&leds_set_all_obj) },
{ MP_ROM_QSTR(MP_QSTR_set_all_hsv), MP_ROM_PTR(&leds_set_all_hsv_obj) }, { MP_ROM_QSTR(MP_QSTR_set_all_hsv), MP_ROM_PTR(&leds_set_all_hsv_obj) },
{ MP_ROM_QSTR(MP_QSTR_set_rocket), MP_ROM_PTR(&leds_set_rocket_obj) }, { MP_ROM_QSTR(MP_QSTR_set_rocket), MP_ROM_PTR(&leds_set_rocket_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_rocket), MP_ROM_PTR(&leds_get_rocket_obj) },
{ MP_ROM_QSTR(MP_QSTR_set_flashlight), { MP_ROM_QSTR(MP_QSTR_set_flashlight),
MP_ROM_PTR(&leds_set_flashlight_obj) }, MP_ROM_PTR(&leds_set_flashlight_obj) },
{ MP_ROM_QSTR(MP_QSTR_update), MP_ROM_PTR(&leds_update_obj) }, { MP_ROM_QSTR(MP_QSTR_update), MP_ROM_PTR(&leds_update_obj) },
......