libwebsockets
Lightweight C library for HTML5 websockets
Toggle main menu visibility
Loading...
Searching...
No Matches
lws-ssd1306-i2c.h
Go to the documentation of this file.
1
/*
2
* lws abstract display implementation for ssd1306 on i2c
3
*
4
* Copyright (C) 2019 - 2022 Andy Green <andy@warmcat.com>
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
* IN THE SOFTWARE.
23
*/
24
25
#if !defined(__LWS_DISPLAY_SSD1306_I2C_H__)
26
#define __LWS_DISPLAY_SSD1306_I2C_H__
27
28
/*
29
* D/C# pin on SSD1306 sets the I2C device ads
30
* from these two options (7-bit address)
31
*/
32
33
#define SSD1306_I2C7_ADS1 0x3c
34
#define SSD1306_I2C7_ADS2 0x3d
35
36
typedef
struct
lws_display_ssd1306
{
37
38
lws_display_t
disp
;
/* use lws_display_ssd1306_ops to set ops */
39
const
lws_i2c_ops_t
*
i2c
;
/* i2c ops */
40
41
lws_display_completion_t
cb
;
42
const
lws_gpio_ops_t
*
gpio
;
/* NULL or gpio ops */
43
_lws_plat_gpio_t
reset_gpio
;
/* if gpio ops, nReset gpio # */
44
45
uint8_t
i2c7_address
;
/* one of SSD1306_I2C7_ADS... */
46
47
}
lws_display_ssd1306_t
;
48
49
int
50
lws_display_ssd1306_i2c_init
(
lws_display_state_t
*lds);
51
int
52
lws_display_ssd1306_i2c_contrast
(
lws_display_state_t
*lds,
uint8_t
b);
53
int
54
lws_display_ssd1306_i2c_blit
(
lws_display_state_t
*lds,
const
uint8_t
*src,
55
lws_box_t
*box,
lws_dll2_owner_t
*ids);
56
int
57
lws_display_ssd1306_i2c_power
(
lws_display_state_t
*lds,
int
state);
58
59
#define lws_display_ssd1306_ops \
60
.init = lws_display_ssd1306_i2c_init, \
61
.contrast = lws_display_ssd1306_i2c_contrast, \
62
.blit = lws_display_ssd1306_i2c_blit, \
63
.power = lws_display_ssd1306_i2c_power
64
#endif
lws_dll2_owner_t
struct lws_dll2_owner lws_dll2_owner_t
uint8_t
unsigned char uint8_t
Definition
libwebsockets.h:699
lws_display_completion_t
int(* lws_display_completion_t)(lws_display_state_t *lds, int a)
Definition
lws-display.h:165
lws_display_state_t
struct lws_display_state lws_display_state_t
lws_display_t
struct lws_display lws_display_t
lws_box_t
struct lws_box lws_box_t
lws_gpio_ops_t
struct lws_gpio_ops lws_gpio_ops_t
_lws_plat_gpio_t
int _lws_plat_gpio_t
Definition
lws-gpio.h:31
lws_i2c_ops_t
struct lws_i2c_ops lws_i2c_ops_t
lws_display_ssd1306::cb
lws_display_completion_t cb
Definition
lws-ssd1306-i2c.h:41
lws_display_ssd1306::reset_gpio
_lws_plat_gpio_t reset_gpio
Definition
lws-ssd1306-i2c.h:43
lws_display_ssd1306::i2c
const lws_i2c_ops_t * i2c
Definition
lws-ssd1306-i2c.h:39
lws_display_ssd1306::i2c7_address
uint8_t i2c7_address
Definition
lws-ssd1306-i2c.h:45
lws_display_ssd1306_i2c_power
int lws_display_ssd1306_i2c_power(lws_display_state_t *lds, int state)
lws_display_ssd1306_i2c_contrast
int lws_display_ssd1306_i2c_contrast(lws_display_state_t *lds, uint8_t b)
lws_display_ssd1306::gpio
const lws_gpio_ops_t * gpio
Definition
lws-ssd1306-i2c.h:42
lws_display_ssd1306_t
struct lws_display_ssd1306 lws_display_ssd1306_t
lws_display_ssd1306_i2c_blit
int lws_display_ssd1306_i2c_blit(lws_display_state_t *lds, const uint8_t *src, lws_box_t *box, lws_dll2_owner_t *ids)
lws_display_ssd1306::disp
lws_display_t disp
Definition
lws-ssd1306-i2c.h:38
lws_display_ssd1306_i2c_init
int lws_display_ssd1306_i2c_init(lws_display_state_t *lds)
lws_display_ssd1306
Definition
lws-ssd1306-i2c.h:36
include
libwebsockets
lws-ssd1306-i2c.h
Generated on
for libwebsockets by
1.18.0