summaryrefslogtreecommitdiff
path: root/servo/lx/lx.go
blob: 773cd97d792906c35d8cf30cbba8815dff247aad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package lx

import (
	"io"

	"git.jettsang.com/drivers/lobot/protocal"
	"git.jettsang.com/drivers/lobot/servo"
)

var Instructions servo.InstructionMap

func init() {
	Instructions = servo.InstructionMap{
		servo.MoveTimeWrite:            {1, 4, servo.RW},
		servo.MoveTimeRead:             {2, 0, servo.RO},
		servo.MoveTimeWaitWrite:        {7, 4, servo.RW},
		servo.MoveTimeWaitRead:         {8, 0, servo.RO},
		servo.MoveStart:                {11, 0, servo.RW},
		servo.MoveStop:                 {12, 0, servo.RW},
		servo.IDWrite:                  {13, 1, servo.RW},
		servo.IDRead:                   {14, 0, servo.RO},
		servo.AngleOffsetAdjust:        {17, 1, servo.RW},
		servo.AngleOffsetWrite:         {18, 0, servo.RW},
		servo.AngleOffsetRead:          {19, 0, servo.RO},
		servo.AngleLimitWrite:          {20, 4, servo.RW},
		servo.AngleLimitRead:           {21, 0, servo.RO},
		servo.VoltageLimitWrite:        {22, 4, servo.RW},
		servo.VoltageLimitRead:         {23, 0, servo.RO},
		servo.TemperatureMaxLimitWrite: {24, 1, servo.RW},
		servo.TemperatureMaxLimitRead:  {25, 0, servo.RO},
		servo.TemperatureRead:          {26, 0, servo.RO},
		servo.VoltageRead:              {27, 0, servo.RO},
		servo.PositionRead:             {28, 0, servo.RO},
		servo.MotorModeWrite:           {29, 4, servo.RW},
		servo.MotorModeRead:            {30, 0, servo.RO},
		servo.LoadOrUnloadWrite:        {31, 1, servo.RW},
		servo.LoadOrUnloadRead:         {32, 0, servo.RO},
		servo.LEDControlWrite:          {33, 1, servo.RW},
		servo.LEDControlRead:           {34, 0, servo.RO},
		servo.LEDErrorWrite:            {35, 1, servo.RW},
		servo.LEDErrorRead:             {36, 0, servo.RO},
	}
}

// New returns a new LX servo with the given ID.
func New(network io.ReadWriter, ID int) (*servo.Servo, error) {
	return servo.New(protocal.New(network), Instructions, ID), nil
}