Crate seedlink [] [src]

SeedLink Client

More information and SeedLink Documentation at:

https://www.seiscomp3.org/wiki/doc/applications/seedlink

Be careful when using this code, it's not being tested!
extern crate seedlink;

use seedlink::SeedLinkClient;

fn read() {

   let addr = "rtserve.iris.washington.edu";
   let port = 18000;
   let mut slc = SeedLinkClient::new(addr, port);

   // Say Hello
   slc.hello().expect("bad hello");

   // Read Response
   let mut data = vec![0u8;2048];
   let n = slc.read(&mut data).expect("bad read");
   let v = data[..n].to_vec();
   let s = String::from_utf8(v).expect("Found invalid UTF-8");
   println!("data: {:?}", s);

   // Initiate Data Stream
   slc.start().expect("bad start");

   let mut buf = vec![];
   // Read Response
   loop {
       println!("Waiting on read ...");
       let n = slc.read(&mut data).expect("bad read");
       buf.extend(data[..n].iter().cloned());

       // 520 bytes = 8 for header + 512 for data
       if buf.len() >= 520 {
           // Parse data
           let (num, rec) = seedlink::parse(&mut buf).unwrap();
           println!("{}: {}", num, rec);
           break;
       }
   }
   // Say Good bye
   slc.bye().expect("bad bye");
}

Structs

SeedLinkClient

SeedLink Client

Seedlink

SeedLink Metadata

Station

SeedLink Station Metadata

Stream

SeedLink Stream Metadata

StreamID

Stream Identifier representing the network, station, location and channel

Enums

SLError

SeedLink Error

Functions

parse

Parse a SeedLink Packet

parse_header

Parse a SeedLink Packet Header