pico-scale
hx711_scale_adaptor.c
Go to the documentation of this file.
1 // MIT License
2 //
3 // Copyright (c) 2022 Daniel Robertson
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #include <assert.h>
24 #include <stdbool.h>
25 #include <stddef.h>
26 #include <stdint.h>
27 #include "../extern/hx711-pico-c/include/common.h"
28 #include "../include/hx711_scale_adaptor.h"
29 
31  hx711_scale_adaptor_t* const hxa,
32  hx711_t* const hx) {
33 
34  assert(hxa != NULL);
35  assert(hx != NULL);
36 
37  hxa->_hx = hx;
38 
39  scale_adaptor_init(&hxa->_sa, hxa);
42 
43  return true;
44 
45 }
46 
48  hx711_scale_adaptor_t* const hxa) {
49  assert(hxa != NULL);
50  return &hxa->_sa;
51 }
52 
54  scale_adaptor_t* const sa,
55  int32_t* const value,
56  const uint timeout) {
57 
58  assert(sa != NULL);
59  assert(value != NULL);
60 
62  return hx711_get_value_timeout(hxa->_hx, value, timeout);
63 
64 }
65 
67  scale_adaptor_t* const sa,
68  int32_t* const value) {
69 
70  assert(sa != NULL);
71  assert(value != NULL);
72 
74  *value = hx711_get_value(hxa->_hx);
75 
76  return true;
77 
78 }
bool hx711_scale_adaptor_get_value(scale_adaptor_t *const sa, int32_t *const value)
bool hx711_scale_adaptor_get_value_timeout(scale_adaptor_t *const sa, int32_t *const value, const uint timeout)
scale_adaptor_t * hx711_scale_adaptor_get_base(hx711_scale_adaptor_t *const hxa)
bool hx711_scale_adaptor_init(hx711_scale_adaptor_t *const hxa, hx711_t *const hx)
void * scale_adaptor_get_data(scale_adaptor_t *const sa)
Definition: scale_adaptor.c:35
bool scale_adaptor_init(scale_adaptor_t *const sa, void *data)
Definition: scale_adaptor.c:27
bool(* get_value)(struct scale_adaptor *const sa, int32_t *const value)
Function pointer to function.
Definition: scale_adaptor.h:46
bool(* get_value_timeout)(struct scale_adaptor *const sa, int32_t *const value, const uint timeout)
Function pointer to function.
Definition: scale_adaptor.h:56