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")); } }
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); }
public void Write(string pin, bool value) { using (var writer = new StreamWriter(GpioPath.ValuePath(pin), false)) writer.Write(value ? "1" : "0"); }
public async Task WriteAsync(string pin, bool value) { using (var writer = new StreamWriter(GpioPath.ValuePath(pin), false)) await writer.WriteAsync(value? "1" : "0"); }