mirror of
https://github.com/lucarin91/scratch-link4linux.git
synced 2025-07-21 09:31:22 +02:00
102 lines
2.1 KiB
Go
102 lines
2.1 KiB
Go
package scratchlink
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type Device struct {
|
|
PeripheralID string `json:"peripheralId"`
|
|
Name string `json:"name"`
|
|
RSSI int16 `json:"rssi"`
|
|
}
|
|
|
|
type DiscoverParams struct {
|
|
Filters []DiscoverFilter `json:"filters"`
|
|
}
|
|
|
|
func DiscoverParamsFromJSON(j json.RawMessage) (DiscoverParams, error) {
|
|
var params DiscoverParams
|
|
|
|
err := json.Unmarshal(j, ¶ms)
|
|
if err != nil {
|
|
return DiscoverParams{}, err
|
|
}
|
|
|
|
return params, nil
|
|
}
|
|
|
|
type DiscoverFilter struct {
|
|
Name string `json:"name"`
|
|
NamePrefix string `json:"namePrefix"`
|
|
Services []uuid.UUID `json:"services"`
|
|
}
|
|
|
|
type ConnectParams struct {
|
|
PeripheralID string `json:"peripheralId"`
|
|
}
|
|
|
|
func ConnectParamsFromJSON(j json.RawMessage) (ConnectParams, error) {
|
|
var params ConnectParams
|
|
|
|
err := json.Unmarshal(j, ¶ms)
|
|
if err != nil {
|
|
return ConnectParams{}, err
|
|
}
|
|
|
|
return params, nil
|
|
}
|
|
|
|
type NotificationsParams struct {
|
|
ServiceID uuid.UUID `json:"serviceId"`
|
|
CharacteristicID uuid.UUID `json:"characteristicId"`
|
|
}
|
|
|
|
func NotificationsParamsFromJSON(j json.RawMessage) (NotificationsParams, error) {
|
|
var params NotificationsParams
|
|
|
|
err := json.Unmarshal(j, ¶ms)
|
|
if err != nil {
|
|
return NotificationsParams{}, err
|
|
}
|
|
|
|
return params, nil
|
|
}
|
|
|
|
type UpdateParams struct {
|
|
ServiceID uuid.UUID `json:"serviceId"`
|
|
CharacteristicID uuid.UUID `json:"characteristicId"`
|
|
Message string `json:"message"`
|
|
Encoding string `json:"encoding,omitempty"`
|
|
WithResponse bool `json:"withResponse"`
|
|
}
|
|
|
|
func UpdateParamsFromJSON(j json.RawMessage) (UpdateParams, error) {
|
|
var params UpdateParams
|
|
|
|
err := json.Unmarshal(j, ¶ms)
|
|
if err != nil {
|
|
return UpdateParams{}, err
|
|
}
|
|
|
|
return params, nil
|
|
}
|
|
|
|
type ReadParams struct {
|
|
ServiceID uuid.UUID `json:"serviceId"`
|
|
CharacteristicID uuid.UUID `json:"characteristicId"`
|
|
StartNotifications bool `json:"startNotifications"`
|
|
}
|
|
|
|
func ReadParamsFromJSON(j json.RawMessage) (ReadParams, error) {
|
|
var params ReadParams
|
|
|
|
err := json.Unmarshal(j, ¶ms)
|
|
if err != nil {
|
|
return ReadParams{}, err
|
|
}
|
|
|
|
return params, nil
|
|
}
|