generated from gowhale/golang-repo-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
112 lines (93 loc) · 2.92 KB
/
main.go
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Package main runs the shopping list
package main
import (
"log"
"github.com/gowhale/go-circuit-diagram/pkg/canvas"
"github.com/gowhale/go-circuit-diagram/pkg/common"
"github.com/gowhale/go-circuit-diagram/pkg/components"
)
func main() {
realOS := &common.OSReal{}
err := components.DrawLED(realOS)
if err != nil {
log.Fatalln(err)
}
board := canvas.NewBoard("test", 100, 100, 10)
// Adding some LEDS
led1, err := components.NewLED(common.NewCord(5, 5), components.North)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led1)
led2, err := components.NewLED(common.NewCord(25, 5), components.North)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led2)
led3, err := components.NewLED(common.NewCord(65, 50), components.North)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led3)
led4, err := components.NewLED(common.NewCord(5, 75), components.North)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led4)
led5, err := components.NewLED(common.NewCord(83, 5), components.South)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led5)
led6, err := components.NewLED(common.NewCord(45, 25), components.East)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led6)
led7, err := components.NewLED(common.NewCord(45, 75), components.West)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led7)
led8, err := components.NewLED(common.NewCord(40, 50), components.North)
if err != nil {
log.Fatal(err)
}
board.AddElement(&led8)
// Add some wires
wire := components.NewWire(common.NewCord(30, 20), common.NewCord(30, 50))
board.AddElement(&wire)
wire2 := components.NewWire(common.NewCord(10, 50), common.NewCord(70, 50))
board.AddElement(&wire2)
wire3 := components.NewWire(common.NewCord(10, 20), common.NewCord(10, 50))
board.AddElement(&wire3)
wire4 := components.NewWire(common.NewCord(10, 65), common.NewCord(70, 65))
board.AddElement(&wire4)
wire5 := components.NewWire(common.NewCord(10, 65), common.NewCord(10, 75))
board.AddElement(&wire5)
wire6 := components.NewWire(common.NewCord(led3.GetCathode().X, led5.GetAnode().Y), led3.GetCathode())
board.AddElement(&wire6)
wire7 := components.NewWire(led5.GetAnode(), common.NewCord(led3.GetCathode().X, led5.GetAnode().Y))
board.AddElement(&wire7)
// Add some GPIOS
gpio1 := components.NewGPIO(common.NewCord(30, 3))
board.AddElement(&gpio1)
gpio2 := components.NewGPIO(common.NewCord(10, 3))
board.AddElement(&gpio2)
gpio3 := components.NewGPIO(common.NewCord(10, 92))
board.AddElement(&gpio3)
gpio4 := components.NewGPIO(led5.GetCathode())
board.AddElement(&gpio4)
gpio5 := components.NewGPIO(led7.GetCathode())
board.AddElement(&gpio5)
gpio6 := components.NewGPIO(led7.GetAnode())
board.AddElement(&gpio6)
gpio7 := components.NewGPIO(led6.GetCathode())
board.AddElement(&gpio7)
gpio8 := components.NewGPIO(led6.GetAnode())
board.AddElement(&gpio8)
err = board.Draw(realOS)
if err != nil {
log.Fatalln(err)
}
}