package m31 import "time" const ( // HostModel has eight inputs and eight relay outputs and occupies slot // zero. HostModel = "m31-axax8080g-u" // MixedModel adds eight digital inputs and eight digital outputs. MixedModel = "m31-gaxax8080-u" // InputModel adds sixteen digital inputs. InputModel = "m31-gaxxxa000-u" // OutputModel adds sixteen digital outputs. OutputModel = "m31-gxxax00a0-u" // AnalogModel adds eight voltage outputs from zero through ten volts. AnalogModel = "m31-gxxxb0008-u" ) // Module occupies its slice index in Settings.Modules. PulseWidths maps digital // output channels to hardware pulse widths. Widths must be whole milliseconds // from 50 through 65535 milliseconds. Other digital outputs use level mode. // The constructor copies the topology and does not retain these maps. type Module struct { Model string PulseWidths map[int]time.Duration }