feat: add tokio runtime and make adync gpio interups on seperate thread

This commit is contained in:
Jet Pham 2025-06-08 00:13:13 -07:00
parent 19862ecf70
commit 716153b1b6
No known key found for this signature in database
4 changed files with 19 additions and 12 deletions

View file

@ -5,10 +5,10 @@ edition = "2021"
[dependencies] [dependencies]
anyhow = "1.0" anyhow = "1.0"
tokio = { version = "1.36", features = ["full"] } tokio = { version = "1.45.1", features = ["full"] }
tracing = "0.1" tracing = "0.1.41"
tracing-subscriber = "0.3" tracing-subscriber = "0.3.19"
rppal = "0.22" rppal = "0.22.1"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0.219", features = ["derive"] }
tracing-appender = "0.2" tracing-appender = "0.2.3"
serenity = { version = "0.12", features = ["standard_framework"] } serenity = { version = "0.12.4", features = ["standard_framework"] }

View file

@ -38,13 +38,17 @@ WantedBy=multi-user.target
EOL EOL
echo "Copying to Raspberry Pi..." echo "Copying to Raspberry Pi..."
# Copy files # Debug remote directory status
scp target/aarch64-unknown-linux-gnu/release/noisebell noisebridge@noisebell.local:~/ ssh noisebridge@noisebell.local "pwd && ls -la ~/ && echo 'Directory permissions:' && stat -c '%A %a %n' ~/"
scp noisebell.service noisebridge@noisebell.local:~/ # Remove existing files
ssh noisebridge@noisebell.local "rm -f /home/noisebridge/noisebell /home/noisebridge/noisebell.service"
# Copy files with absolute paths
scp -v target/aarch64-unknown-linux-gnu/release/noisebell noisebridge@noisebell.local:/home/noisebridge/noisebell
scp -v noisebell.service noisebridge@noisebell.local:/home/noisebridge/noisebell.service
echo "Setting up service..." echo "Setting up service..."
# Deploy service # Deploy service
ssh noisebridge@noisebell.local "sudo cp ~/noisebell.service /etc/systemd/system/ && \ ssh noisebridge@noisebell.local "sudo cp /home/noisebridge/noisebell.service /etc/systemd/system/ && \
sudo systemctl daemon-reload && \ sudo systemctl daemon-reload && \
sudo systemctl enable noisebell && \ sudo systemctl enable noisebell && \
sudo systemctl restart noisebell" sudo systemctl restart noisebell"

View file

View file

@ -27,11 +27,14 @@ async fn main() -> Result<()> {
Duration::from_secs(DEFAULT_DEBOUNCE_DELAY_SECS) Duration::from_secs(DEFAULT_DEBOUNCE_DELAY_SECS)
)?; )?;
// Get a handle to the current runtime
let runtime = tokio::runtime::Handle::current();
// Set up the callback for state changes // Set up the callback for state changes
let callback = move |event: gpio::CircuitEvent| { let callback = move |event: gpio::CircuitEvent| {
info!("Circuit state changed to: {:?}", event); info!("Circuit state changed to: {:?}", event);
let discord_client = discord_client.clone(); let discord_client = discord_client.clone();
tokio::spawn(async move { runtime.spawn(async move {
let space_event = match event { let space_event = match event {
gpio::CircuitEvent::Open => discord::SpaceEvent::Open, gpio::CircuitEvent::Open => discord::SpaceEvent::Open,
gpio::CircuitEvent::Closed => discord::SpaceEvent::Closed, gpio::CircuitEvent::Closed => discord::SpaceEvent::Closed,