Dawn Framework 1.0
Universal data acquisition framework for embedded systems
rgbled.cxx
1// dawn/src/porting/nuttx/rgbled.cxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#include "dawn/porting/rgbled.hxx"
7
8#include <errno.h>
9#include <fcntl.h>
10#include <unistd.h>
11
12#include "dawn/debug.hxx"
13
14//***************************************************************************
15// Public Functions
16//***************************************************************************
17
18//***************************************************************************
19// Name: rgbled_open
20//***************************************************************************
21
22int rgbled_open(const char *path)
23{
24 int fd;
25
26 fd = open(path, O_RDWR);
27 DAWNINFO("RGBLED: open %s %d\n", path, fd);
28 if (fd < 0)
29 {
30 DAWNERR("Failed to open RGBLED file %s (error %d)\n", path, fd);
31 return -EIO;
32 }
33
34 return fd;
35}
36
37//***************************************************************************
38// Name: rgbled_close
39//***************************************************************************
40
41void rgbled_close(int fd)
42{
43 if (fd >= 0)
44 {
45 close(fd);
46 }
47}
48
49//***************************************************************************
50// Name: rgbled_write
51//***************************************************************************
52
53int rgbled_write(int fd, const char *rgb, size_t len)
54{
55 ssize_t ret;
56
57 ret = write(fd, rgb, len);
58 if (ret < 0)
59 {
60 return -errno;
61 }
62
63 if (static_cast<size_t>(ret) != len)
64 {
65 return -EIO;
66 }
67
68 return OK;
69}