mirror of https://github.com/periph/devices
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package firmata
|
|
|
|
type (
|
|
MessageType uint8
|
|
)
|
|
|
|
const (
|
|
AnalogIOMessage MessageType = 0xE0 // pin # LSB(bits 0-6) MSB(bits 7-13)
|
|
DigitalIOMessage MessageType = 0x90 // port LSB(bits 0-6) MSB(bits 7-13)
|
|
ReportAnalogPin MessageType = 0xC0 // pin # disable/enable(0/1) - n/a -
|
|
ReportDigitalPort MessageType = 0xD0 // port disable/enable(0/1) - n/a -
|
|
StartSysEx MessageType = 0xF0 //
|
|
SetPinMode MessageType = 0xF4 // pin # (0-127) pin mode
|
|
SetDigitalPinValue MessageType = 0xF5 // pin # (0-127) pin value(0/1)
|
|
EndSysEx MessageType = 0xF7 //
|
|
ProtocolVersion MessageType = 0xF9 // major version minor version
|
|
SystemReset MessageType = 0xFF //
|
|
)
|
|
|
|
var messageTypeToStringMap = map[MessageType]string{
|
|
AnalogIOMessage: "AnalogIOMessage",
|
|
DigitalIOMessage: "DigitalIOMessage",
|
|
ReportAnalogPin: "ReportAnalogPin",
|
|
ReportDigitalPort: "ReportDigitalPort",
|
|
StartSysEx: "StartSysEx",
|
|
SetPinMode: "SetPinMode",
|
|
SetDigitalPinValue: "SetDigitalPinValue",
|
|
EndSysEx: "EndSysEx",
|
|
ProtocolVersion: "ProtocolVersion",
|
|
SystemReset: "SystemReset",
|
|
}
|
|
|
|
func (m MessageType) String() string {
|
|
switch {
|
|
case AnalogIOMessage <= m && m <= (AnalogIOMessage+0xF):
|
|
return messageTypeToStringMap[AnalogIOMessage]
|
|
case DigitalIOMessage <= m && m <= (DigitalIOMessage+0xF):
|
|
return messageTypeToStringMap[DigitalIOMessage]
|
|
case ReportAnalogPin <= m && m <= (ReportAnalogPin+0xF):
|
|
return messageTypeToStringMap[ReportAnalogPin]
|
|
case ReportDigitalPort <= m && m <= (ReportDigitalPort+0xF):
|
|
return messageTypeToStringMap[ReportDigitalPort]
|
|
}
|
|
|
|
if v, ok := messageTypeToStringMap[m]; ok {
|
|
return v
|
|
}
|
|
|
|
return "Unknown"
|
|
}
|