package serial

  1. Overview
  2. Docs

Module SerialSource

Sourcemodule Make (T : sig ... end) : sig ... end

You'll probably want to use make below.

Sourcemodule type T = sig ... end
Sourceval make : Serial__.Connection.t -> (module T)

Create a module using Connection.t

	let module DaytimeSerial = (val Serial.make connection)
Sourceval baud_rate : Serial__.Connection.t -> int
Sourceval connect : port:string -> baud_rate:int -> (Serial__.Connection.t, exn) Lwt_result.t

Create a connection. Returns a connection Lwt_result.t.

	Serial.connect ~port ~baud_rate >>= function
	| Ok connection ->
		Lwt_io.printl "Awaiting input. Enter 'quit' when done..." >>= fun () ->
		Serial.io_loop connection (Some "quit")
	| Error _ -> Lwt.return () (* TODO: handle exception *)
Sourceval connect_exn : port:string -> baud_rate:int -> Serial__.Connection.t Lwt.t

Create a connection. May raise an exception (e.g. port not found).

	Serial.connect_exn ~port ~baud_rate >>= fun connection ->
	Lwt_io.printl "Awaiting input. Enter 'quit' when done..." >>= fun () ->
	Serial.io_loop connection (Some "quit")
Sourceval io_loop : Serial__.Connection.t -> string option -> unit Lwt.t

Enters a loop reading from serial -> stdout, stdin -> serial. Optionally exit loop when $TERMINATOR is entered.

 io_loop connection (Some "done!")
Sourceval read_line : Serial__.Connection.t -> string Lwt.t
Sourceval write_line : Serial__.Connection.t -> string -> unit Lwt.t
Sourceval write : Serial__.Connection.t -> string -> unit Lwt.t

Unlike write_line, write does not terminate the string with a newline

Sourceval port : Serial__.Connection.t -> string
Sourceval wait_for_line : Serial__.Connection.t -> string -> timeout_s:float option -> Serial__.Wait_for.t Lwt.t

Waits for a keyword with optional timeout.

	wait_for_line connection "wait for me!" ~timeout_s:(Some 8.)
	wait_for_line connection "wait for me!" ~timeout_s:None

Returns either Received or TimedOut.

	wait_for_line connection "ok" ~timeout_s:(Some  5.) >>= function
	| Received -> Lwt_io.printlf "ok received for %S" c
	| TimedOut -> Lwt_io.printlf "didn't hear back in time for %S" c