예제 #1
0
파일: rpi.go 프로젝트: gavincabbage/embd
func init() {
	embd.Register(embd.HostRPi, func(rev int) *embd.Descriptor {
		// Refer to http://elinux.org/RPi_HardwareHistory#Board_Revision_History
		// for details.
		pins := rev3Pins
		if rev < 16 {
			pins = rev2Pins
		}
		if rev < 4 {
			pins = rev1Pins
		}

		return &embd.Descriptor{
			GPIODriver: func() embd.GPIODriver {
				return embd.NewGPIODriver(pins, generic.NewDigitalPin, nil, nil)
			},
			I2CDriver: func() embd.I2CDriver {
				return embd.NewI2CDriver(generic.NewI2CBus)
			},
			LEDDriver: func() embd.LEDDriver {
				return embd.NewLEDDriver(ledMap, generic.NewLED)
			},
			SPIDriver: func() embd.SPIDriver {
				return embd.NewSPIDriver(spiDeviceMinor, generic.NewSPIBus, nil)
			},
		}
	})
}
예제 #2
0
func TestAnalogPinClose(t *testing.T) {
	pinMap := embd.PinMap{
		&embd.PinDesc{ID: "P1_1", Aliases: []string{"1"}, Caps: embd.CapAnalog},
	}
	driver := embd.NewGPIODriver(pinMap, nil, newAnalogPin, nil)
	pin, err := driver.AnalogPin(1)
	if err != nil {
		t.Fatalf("Looking up analog pin 1: got %v", err)
	}
	pin.Close()
	pin2, err := driver.AnalogPin(1)
	if err != nil {
		t.Fatalf("Looking up analog pin 1: got %v", err)
	}
	if pin == pin2 {
		t.Fatal("Looking up closed analog pin 1: but got the old instance")
	}
}
예제 #3
0
파일: bbb.go 프로젝트: gavincabbage/embd
func init() {
	embd.Register(embd.HostBBB, func(rev int) *embd.Descriptor {
		return &embd.Descriptor{
			GPIODriver: func() embd.GPIODriver {
				return embd.NewGPIODriver(pins, generic.NewDigitalPin, newAnalogPin, newPWMPin)
			},
			I2CDriver: func() embd.I2CDriver {
				return embd.NewI2CDriver(generic.NewI2CBus)
			},
			LEDDriver: func() embd.LEDDriver {
				return embd.NewLEDDriver(ledMap, generic.NewLED)
			},
			SPIDriver: func() embd.SPIDriver {
				return embd.NewSPIDriver(spiDeviceMinor, generic.NewSPIBus, spiInitializer)
			},
		}
	})
}