Skip to content

Commit

Permalink
added volume and filters for sa818
Browse files Browse the repository at this point in the history
  • Loading branch information
talkkonnect committed Jan 30, 2022
1 parent 37c3162 commit fcc86a8
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 18 deletions.
2 changes: 1 addition & 1 deletion client.go
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@ func (b *Talkkonnect) ClientStart() {
log.Println("error: Radio Module Not Configured Properly")
} else {
createEnabledRadioChannels()
go radioSetup()
go radioSetChannel(Config.Global.Hardware.Radio.ConnectChannelID)
}
}

Expand Down
4 changes: 2 additions & 2 deletions commandkeys.go
Original file line number Diff line number Diff line change
Expand Up @@ -555,10 +555,10 @@ func (b *Talkkonnect) cmdRadioChannelMove(command string) {
log.Println("error: Radio Module Not Configured Properly")
} else {
if command == "Up" {
go radioChannelChange("up")
go radioChannelIncrement("up")
}
if command == "Down" {
go radioChannelChange("down")
go radioChannelIncrement("down")
}
}
}
Expand Down
27 changes: 18 additions & 9 deletions radio.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ package talkkonnect

import (
"log"
"time"

"github.com/talkkonnect/sa818"
)
Expand All @@ -40,17 +41,17 @@ var CurrentChannelIndex = 0
var MoveChannelIndex = 0
var EnabledChannelCounter = 0

func radioSetup() {
func radioSetChannel(channelID string) {
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)
RadioModuleSA818Channel(channelID, true, true)
}

func radioChannelChange(command string) {
func radioChannelIncrement(command string) {
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
Expand All @@ -63,14 +64,14 @@ func radioChannelChange(command string) {
MoveChannelIndex = 0
CurrentChannelIndex = 0
log.Printf("info: Moving %v To Channel ID %v Name %v\n", command, radioChannels[MoveChannelIndex].ID, radioChannels[MoveChannelIndex].Name)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID, true, true)
return
}
if len(radioChannels)-1 >= CurrentChannelIndex+1 {
MoveChannelIndex = CurrentChannelIndex + 1
CurrentChannelIndex++
log.Printf("info: Moving %v To Channel ID %v Name %v\n", command, radioChannels[MoveChannelIndex].ID, radioChannels[MoveChannelIndex].Name)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID, true, true)
return
}
}
Expand All @@ -80,14 +81,14 @@ func radioChannelChange(command string) {
MoveChannelIndex = len(radioChannels) - 1
CurrentChannelIndex = len(radioChannels) - 1
log.Printf("info: Moving %v To Channel ID %v Name %v\n", command, radioChannels[MoveChannelIndex].ID, radioChannels[MoveChannelIndex].Name)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID, true, true)
return
}
if CurrentChannelIndex-1 >= 0 {
MoveChannelIndex = CurrentChannelIndex - 1
CurrentChannelIndex--
log.Printf("info: Moving %v To Channel ID %v Name %v\n", command, radioChannels[MoveChannelIndex].ID, radioChannels[MoveChannelIndex].Name)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID)
RadioModuleSA818Channel(radioChannels[MoveChannelIndex].ID, true, true)
return
}
}
Expand All @@ -105,11 +106,19 @@ func createEnabledRadioChannels() {
}
}

func RadioModuleSA818Channel(useChannelID string) {
func RadioModuleSA818Channel(useChannelID string, setVolumeToo bool, setFilterToo bool) {
found, name := findChannelNameByID(useChannelID)
if found {
log.Printf("info: Found Channel ID %v Name %v\n", useChannelID, name)
setFrequency()
if setVolumeToo {
time.Sleep(500 * time.Millisecond)
setVolume()
}
if setFilterToo {
time.Sleep(700 * time.Millisecond)
setFilter()
}
} else {
log.Printf("error: Not Found Channel ID %v\n", useChannelID)
}
Expand Down Expand Up @@ -151,7 +160,7 @@ func checkRSSI() {

func setFrequency() {
err := sa818.Callsa818("DMOSetupGroup", DMOSetup)
log.Printf("debug: actual data sent to module %#v", DMOSetup)
//log.Printf("debug: actual data sent to module %#v", DMOSetup)
if err != nil {
log.Println("info: SAModule Set Frequecy Error ", err)
} else {
Expand Down
8 changes: 5 additions & 3 deletions version.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,12 @@
package talkkonnect

const (
talkkonnectVersion string = "2.09.05"
talkkonnectReleased string = "Jan 29 2022"
talkkonnectVersion string = "2.09.06"
talkkonnectReleased string = "Jan 30 2022"
)

/* Release Notes
1. Added Channel Up and Down to SA818 from talkkonnect
1. Renamed the functions in radio.go to make it more readable
2. Got Volume and Filter Commands Working
3. Added Future Provision for PD and TXPower for SA818 Module
*/
9 changes: 6 additions & 3 deletions xmlparser.go
Original file line number Diff line number Diff line change
Expand Up @@ -467,8 +467,9 @@ type ConfigStruct struct {
Enabled bool `xml:"enabled,attr"`
ConnectChannelID string `xml:"connectchannelid"`
Sa818 struct {
Enabled bool `xml:"enabled,attr"`
Serial struct {
Enabled bool `xml:"enabled,attr"`
PDEnabled bool `xml:"enabled"`
Serial struct {
Enabled bool `xml:"enabled,attr"`
Port string `xml:"port"`
Baud uint `xml:"baud"`
Expand All @@ -491,6 +492,7 @@ type ConfigStruct struct {
Highpass int `xml:"highpass"`
Lowpass int `xml:"lowpass"`
Volume int `xml:"volume"`
TXPower string `xml:"txpower"`
} `xml:"channel"`
} `xml:"channels"`
} `xml:"sa818"`
Expand Down Expand Up @@ -1323,6 +1325,7 @@ func printxmlconfig() {
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: SA818 PD Enabled " + fmt.Sprintf("%v", Config.Global.Hardware.Radio.Sa818.PDEnabled))
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))
Expand All @@ -1336,7 +1339,7 @@ func printxmlconfig() {
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)
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 TXPower %v\n", ChannelIsCurrent, counter, channel.Bandwidth, channel.Rxfreq, channel.Txfreq, channel.Squelch, channel.Ctcsstone, channel.Dcstone, channel.Predeemph, channel.Highpass, channel.Lowpass, channel.Volume, channel.TXPower)
counter++
}
}
Expand Down

0 comments on commit fcc86a8

Please sign in to comment.