protomolecule/main.go

104 lines
2.3 KiB
Go
Raw Normal View History

2021-05-09 20:52:05 +00:00
)package main
import (
"flag"
"os"
"protomolecule/src/dust"
2021-05-08 21:40:50 +00:00
"protomolecule/src/eros"
"protomolecule/src/scanStuff"
"time"
2021-04-14 18:11:32 +00:00
projVars "protomolecule/src/vars"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"tinygo.org/x/bluetooth"
)
2021-05-08 21:40:50 +00:00
func init() {
// initialize database engine
2021-05-08 21:40:50 +00:00
eros.Awaken()
2021-05-09 00:10:08 +00:00
// TODO: make this a commandline argument
// assure the log directory exists
2021-05-09 00:10:08 +00:00
var logDir string = "./.logs/"
2021-05-09 00:10:59 +00:00
err := os.MkdirAll(logDir, 0755)
if err != nil {
panic(err.Error())
}
// define log file itself using the current date and time
Now := time.Now()
date := Now.Format(time.RFC3339)
2021-05-08 23:52:47 +00:00
logFileName := date + ".log"
lf, err := os.OpenFile(logDir+logFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err.Error())
}
2021-05-09 00:10:08 +00:00
// define pretty printer
consoleWriter := zerolog.ConsoleWriter{Out: os.Stderr}
// initialize simultaneous pretty printing and json logging
multi := zerolog.MultiLevelWriter(consoleWriter, lf)
log.Logger = zerolog.New(multi).With().Timestamp().Logger()
2021-05-09 06:28:50 +00:00
2021-05-09 06:32:36 +00:00
// suppress debug messages unless -d is called
2021-05-09 06:28:50 +00:00
zerolog.SetGlobalLevel(zerolog.InfoLevel)
2021-05-09 06:32:36 +00:00
for _, arg := range os.Args {
if arg == "-d" {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
2021-05-09 06:28:50 +00:00
}
log.Debug().Msg("Logging initialized")
2021-05-08 21:40:50 +00:00
}
func main() {
values := flag.Args()
scanStuff.Scanners()
2021-05-08 23:52:47 +00:00
log.Info().Strs("target", values).Msg("Searching")
/*
err := adapter.Enable()
if err != nil {
2021-05-08 23:52:47 +00:00
log.Fatal().Err(err).Msg("BLE stack unstable, could not enable")
return
}
*/
2021-05-08 23:52:47 +00:00
//var foundDevice bluetooth.ScanResult
//turn the stuff on
2021-04-15 00:30:52 +00:00
dust.Must("BLE stack", projVars.ScanAdapter.Enable())
2021-05-08 23:52:47 +00:00
log.Info().Msg("Scanning")
2021-04-15 00:30:52 +00:00
err := projVars.ScanAdapter.Scan(func(adapter *bluetooth.Adapter, result bluetooth.ScanResult) {
2021-04-14 18:11:32 +00:00
if result.Address.String() == *projVars.Target {
2021-05-08 23:52:47 +00:00
log.Info().Str("address", result.Address.String()).
2021-05-09 00:10:08 +00:00
Int16("RSSI", result.RSSI).Str("LocalName", result.LocalName())
}
/*
if err != nil {
2021-05-08 23:52:47 +00:00
log.Error().Err(err).Msg("could not enable the stack", err.Error())
return
}
*/
})
2021-05-08 23:52:47 +00:00
2021-05-09 20:52:05 +00:00
dust.Must("Scan", err)
/*
connectToStuff := func(addr bluetooth.Addresser, device *bluetooth.Device) {
d, _ := adapter.Connect(addr, bluetooth.ConnectionParams{}, err ==
*device == d)
color.Red("Trying a connection", addr)
}
*/
}