Пример #1
0
 public bool Read(string pin)
 {
     using (
         var reader =
             new StreamReader(new FileStream(GpioPath.ValuePath(pin), FileMode.Open, FileAccess.Read,
                                             FileShare.ReadWrite)))
     {
         var rawValue = reader.ReadToEnd();
         return(rawValue.StartsWith("1"));
     }
 }
Пример #2
0
        public int SetupInterrupt(string pin)
        {
            var pollFd  = Syscall.epoll_create(1);
            var valueFd = Syscall.open(GpioPath.ValuePath(pin), OpenFlags.O_NONBLOCK | OpenFlags.O_RDONLY);

            if (
                Syscall.epoll_ctl(pollFd, EpollOp.EPOLL_CTL_ADD, valueFd,
                                  EpollEvents.EPOLLIN | EpollEvents.EPOLLET | EpollEvents.EPOLLPRI) != 0)
            {
                throw new Exception("Error creating interupt");
            }

            return(pollFd);
        }
Пример #3
0
 public void Write(string pin, bool value)
 {
     using (var writer = new StreamWriter(GpioPath.ValuePath(pin), false))
         writer.Write(value ? "1" : "0");
 }
Пример #4
0
 public async Task WriteAsync(string pin, bool value)
 {
     using (var writer = new StreamWriter(GpioPath.ValuePath(pin), false))
         await writer.WriteAsync(value? "1" : "0");
 }