Skip to content

Commit

Permalink
first working implementation sa818
Browse files Browse the repository at this point in the history
  • Loading branch information
talkkonnect committed Jan 28, 2022
1 parent bb926e9 commit eb5107d
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 67 deletions.
84 changes: 26 additions & 58 deletions radio.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,34 +37,20 @@ import (
)

func radioSetup() {
DMOSetup.PortName = Config.Global.Hardware.Radio.Sa818.Serial.Port
DMOSetup.BaudRate = Config.Global.Hardware.Radio.Sa818.Serial.Baud
DMOSetup.DataBits = Config.Global.Hardware.Radio.Sa818.Serial.Databits
DMOSetup.StopBits = Config.Global.Hardware.Radio.Sa818.Serial.Stopbits
moduleResponding, message := RadioModuleSA818InitComm(DMOSetup)
if !moduleResponding {
log.Println("error: ", message)
} else {
radioChannelID := "01"
found, name := findChannelByID(radioChannelID)
if found {
log.Printf("info: Found Channel ID %v Name %v\n", radioChannelID, name)
//RadioModuleSA818InitCheckVersion()
//RadioModuleSA818InitCheckRSSI()
RadioModuleSA818SetDMOGroup()
RadioModuleSA818SetDMOFilter()
RadioModuleSA818SetVolume()
}
}

DMOSetup.SerialOptions.PortName = Config.Global.Hardware.Radio.Sa818.Serial.Port
DMOSetup.SerialOptions.BaudRate = Config.Global.Hardware.Radio.Sa818.Serial.Baud
DMOSetup.SerialOptions.DataBits = Config.Global.Hardware.Radio.Sa818.Serial.Databits
DMOSetup.SerialOptions.StopBits = Config.Global.Hardware.Radio.Sa818.Serial.Stopbits
DMOSetup.SerialOptions.MinimumReadSize = 2
DMOSetup.SerialOptions.InterCharacterTimeout = 200
RadioModuleSA818Channel(Config.Global.Hardware.Radio.ConnectChannelID)
}

func RadioModuleSA818Channel(useChannelID string) {

found, name := findChannelByID(useChannelID)
if found {
log.Printf("info: Found Channel ID %v Name %v\n", useChannelID, name)

setFrequency()
} else {
log.Printf("error: Not Found Channel ID %v\n", useChannelID)
}
Expand All @@ -89,57 +75,39 @@ func findChannelByID(findChannelID string) (bool, string) {
return false, "not found channel"
}

func RadioModuleSA818InitComm(DMOSetup sa818.DMOSetupStruct) (bool, string) {
message, err := sa818.Callsa818("InitComm", "(DMOCONNECT:0)", DMOSetup)
if err != nil {
return false, "sa818 communication error"
} else {
return true, message
}
}

func RadioModuleSA818InitCheckVersion() {
message, err := sa818.Callsa818("CheckVersion", "(VERSION:)", DMOSetup)
if err != nil {
log.Println("error: From Module ", err)
} else {
log.Println("info: sa818 says ", message)
}
func checkVersion() {
err := sa818.Callsa818("CheckVersion", DMOSetup)
log.Println("info: CheckVersion ", err)
}

func RadioModuleSA818InitCheckRSSI() {
message, err := sa818.Callsa818("CheckRSSI", "(RSSI)", DMOSetup)
if err != nil {
log.Println("error: From Module ", err)
} else {
log.Println("info: sa818 says ", message)
}
func checkRSSI() {
err := sa818.Callsa818("CheckRSSI", DMOSetup)
log.Println("info: Check RSSI ", err)
}

func RadioModuleSA818SetVolume() {
message, err := sa818.Callsa818("SetVolume", "(DMOSETVOLUME:0)", DMOSetup)
func setFrequency() {
err := sa818.Callsa818("DMOSetupGroup", DMOSetup)
if err != nil {
log.Println("error: From Module ", err)
log.Println("info: SAModule Set Frequecy Error ", err)
} else {
log.Println("info: sa818 says ", message)
log.Println("info: SAModule Set Frequecy OK ")
}
}

func RadioModuleSA818SetDMOFilter() {
message, err := sa818.Callsa818("DMOSetupFilter", "(DMOSETFILTER:0)", DMOSetup)
func setFilter() {
err := sa818.Callsa818("DMOSetupFilter", DMOSetup)
if err != nil {
log.Println("error: From Module ", err)
log.Println("info: SAModule Setup Filter Error ", err)
} else {
log.Println("info: sa818 says ", message)
log.Println("info: SAModule Setup Filter OK ")
}
}

func RadioModuleSA818SetDMOGroup() {
message, err := sa818.Callsa818("DMOSetupGroup", "(DMOSETGROUP:0)", DMOSetup)
func setVolume() {
err := sa818.Callsa818("SetVolume", DMOSetup)
if err != nil {
log.Println("error: From Module ", err)
log.Println("info: SAModule Set Volume Error ", err)
} else {
log.Println("info: sa818 says ", message)
log.Println("info: SAModule Set Volume OK ")
}

}
6 changes: 3 additions & 3 deletions version.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@
package talkkonnect

const (
talkkonnectVersion string = "2.09.03"
talkkonnectReleased string = "Jan 26 2022"
talkkonnectVersion string = "2.09.04"
talkkonnectReleased string = "Jan 28 2022"
)

/* Release Notes
1. Fixed Radio muodules bugs
1. Fixed Broken Implementation of SA818 Causing talkkonnect not to compile
*/
18 changes: 12 additions & 6 deletions xmlparser.go
Original file line number Diff line number Diff line change
Expand Up @@ -463,9 +463,10 @@ type ConfigStruct struct {
} `xml:"command"`
} `xml:"keyboard"`
Radio struct {
XMLName xml.Name `xml:"radio"`
Enabled bool `xml:"enabled,attr"`
Sa818 struct {
XMLName xml.Name `xml:"radio"`
Enabled bool `xml:"enabled,attr"`
ConnectChannelID string `xml:"connectchannelid"`
Sa818 struct {
Enabled bool `xml:"enabled,attr"`
Serial struct {
Enabled bool `xml:"enabled,attr"`
Expand Down Expand Up @@ -1302,8 +1303,9 @@ func printxmlconfig() {

if Config.Global.Software.PrintVariables.PrintRadioModule {
log.Println("info: ------------ RadioModule Function -------------- ")
log.Println("info: Radio Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Enabled))
log.Println("info: SA818 Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.Enabled))
log.Println("info: Radio Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Enabled))
log.Println("info: SA818 Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.Enabled))
log.Println("info: Connect Channel ID " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.ConnectChannelID))
log.Println("info: Serial Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.Serial.Enabled))
log.Println("info: Serial Port " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.Serial.Port))
log.Println("info: Serial Baud " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.Serial.Baud))
Expand All @@ -1312,7 +1314,11 @@ func printxmlconfig() {
counter := 1
for _, channel := range Config.Global.Hardware.Radio.Sa818.Channels.Channel {
if channel.Enabled {
log.Printf("info: counter %v Bandwidth %v RXFreq %vMhz, TXFreq %vMhz Squelch %v CTSS Tone %v DCS Tone %v Pre/DeEmph %v Highpass %v Lowpass %v Volume %v\n", counter, channel.Bandwidth, channel.Rxfreq, channel.Txfreq, channel.Squelch, channel.Ctcsstone, channel.Dcstone, channel.Predeemph, channel.Highpass, channel.Lowpass, channel.Volume)
var ChannelIsCurrent string = "x"
if channel.ID == Config.Global.Hardware.Radio.ConnectChannelID {
ChannelIsCurrent = "✓"
}
log.Printf("info: %v %v. Bandwidth %v RXFreq %vMhz, TXFreq %vMhz Squelch %v CTSS Tone %v DCS Tone %v Pre/DeEmph %v Highpass %v Lowpass %v Volume %v\n", ChannelIsCurrent, counter, channel.Bandwidth, channel.Rxfreq, channel.Txfreq, channel.Squelch, channel.Ctcsstone, channel.Dcstone, channel.Predeemph, channel.Highpass, channel.Lowpass, channel.Volume)
counter++
}
}
Expand Down

0 comments on commit eb5107d

Please sign in to comment.