classes

package
v0.0.0-...-5811b38 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 4, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProgramWarningName = "Warning"
	ProgramTestName    = "Test"
)

Variables

View Source
var (
	// Monitor - write preudo LEDs on monitor
	Monitor bool
	// EnableLEDs - Trigger real LEDs connected
	EnableLEDs bool
)
View Source
var ProgramNormal1 = &Program{
	Name: "Normal1",
	Phases: []Phase{
		Phase{green, 3},
		Phase{yellow, 1},
		Phase{red, 1},
		Phase{red, 1},
		Phase{red, 3},

		Phase{red, 3},
		Phase{red, 1},
		Phase{red, 1},
		Phase{redyellow, 1},
		Phase{green, 3},
	},
	ClockSpeed: time.Second * 1,
}
View Source
var ProgramNormal2 = &Program{
	Name: "Normal2",
	Phases: []Phase{
		Phase{green, 3},
		Phase{yellow, 1},
		Phase{red, 1},
		Phase{red, 3},

		Phase{red, 3},
		Phase{red, 1},
		Phase{redyellow, 1},
		Phase{green, 3},
	},
	ClockSpeed: time.Second * 1,
}

ProgramNormal2 - Just the common traffic light

View Source
var ProgramNormal3 = &Program{
	Name: "Normal3",
	Phases: []Phase{
		Phase{green, 3},
		Phase{yellow, 1},
		Phase{yellow, 1},

		Phase{red, 3},
		Phase{red, 1},
		Phase{redyellow, 1},
	},
	ClockSpeed: time.Second * 1,
}

ProgramNormal3 - Just the common traffic light

View Source
var ProgramTest = &Program{
	Name: ProgramTestName,
	Phases: []Phase{
		Phase{red, 1},
		Phase{yellow, 1},

		Phase{green, 1},
		Phase{yellow, 1},
	},
	ClockSpeed: time.Millisecond * 50,
}

ProgramTest - Turn every lamp on

View Source
var ProgramWarning = &Program{
	Name: ProgramWarningName,
	Phases: []Phase{
		Phase{yellow, 1},
		Phase{off, 1},
	},
	ClockSpeed: time.Millisecond * 500,
}

ProgramWarning - Traffic light is not working, just blink

Functions

func SaveJSON

func SaveJSON(object interface{}, f string) error

SaveJSON -

Types

type LEDController

type LEDController struct {
	// contains filtered or unexported fields
}

LEDController -

func NewLEDController

func NewLEDController() *LEDController

NewLEDController -

func (*LEDController) ClearAll

func (lc *LEDController) ClearAll()

ClearAll -

func (*LEDController) Close

func (lc *LEDController) Close()

Close -

func (*LEDController) FlashLEDs

func (lc *LEDController) FlashLEDs(t *TrafficLight)

FlashLEDs -

func (*LEDController) Off

func (lc *LEDController) Off(gpio int)

Off -

func (*LEDController) On

func (lc *LEDController) On(gpio int)

On -

func (*LEDController) Open

func (lc *LEDController) Open()

Open -

func (*LEDController) ReadGPIOConfig

func (lc *LEDController) ReadGPIOConfig() (*[8]int, error)

ReadGPIOConfig -

func (*LEDController) Save

func (lc *LEDController) Save() error

Save -

type LEDs

type LEDs struct {
	Pin [3]int // red, yellow, green
}

LEDs - LED GPIO numbers for lights of one traffic light

type Phase

type Phase struct {
	Lights int `json:"lights"`
	Ticks  int `json:"ticks"`
}

Phase consists of light and number of ticks to flash the lights

type Program

type Program struct {
	Name   string  `json:"name"`
	Phases []Phase `json:"phases"`

	ClockSpeed time.Duration `json:"clock_speed"`
	// contains filtered or unexported fields
}

Program - Has phases and a state (active phase)

type ProgramRepository

type ProgramRepository map[string]*Program

ProgramRepository -

func NewProgramRepository

func NewProgramRepository() ProgramRepository

func (*ProgramRepository) Load

Load -

func (*ProgramRepository) Save

func (pr *ProgramRepository) Save() error

Save -

type TrafficLight

type TrafficLight struct {
	// contains filtered or unexported fields
}

TrafficLight -

func NewTrafficLight

func NewTrafficLight(number int, leds LEDs) (t *TrafficLight)

NewTrafficLight -- Create a new trafficlight

func (*TrafficLight) Advance

func (t *TrafficLight) Advance()

Advance -- Advances a trafficlight to next phase

func (*TrafficLight) Load

func (t *TrafficLight) Load(startPhase int, program Program)

Load - Load new program

func (*TrafficLight) Off

func (t *TrafficLight) Off()

Off - Turn trafficlight off

func (*TrafficLight) On

func (t *TrafficLight) On(callBack chan int, lc *LEDController)

On - Turn trafficlight on

func (*TrafficLight) String

func (t *TrafficLight) String() string

Implement Stringer interface to display a readable form of the traffic light

type TrafficManager

type TrafficManager struct {
	// contains filtered or unexported fields
}

TrafficManager -

func NewTrafficManager

func NewTrafficManager(ledController *LEDController, trafficLights []*TrafficLight) *TrafficManager

NewTrafficManager -

func (*TrafficManager) LoadProgram

func (tm *TrafficManager) LoadProgram(program *Program)

LoadProgram - load new program in trafficlights

func (*TrafficManager) Start

func (tm *TrafficManager) Start()

Start - Start trafficmanager and manage trafficlights

func (*TrafficManager) Stop

func (tm *TrafficManager) Stop()

Stop - Stop trafficmanager and trafficlights

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL