mirror of
https://github.com/jixishi/SerialTerminalForWindowsTerminal.git
synced 2026-06-15 16:42:46 +00:00
31dd9da490
Move Config struct to internal/config with exported fields. Replace global var config with package-level cfg pointer. Add OpenLogFile to config package. Add type alias Config = appconfig.Config in main package for backward compatibility. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
43 lines
900 B
Go
43 lines
900 B
Go
// Package config holds the application configuration.
|
|
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
// Config holds all application settings.
|
|
type Config struct {
|
|
PortName string
|
|
BaudRate int
|
|
DataBits int
|
|
StopBits int
|
|
ParityBit int
|
|
OutputCode string
|
|
InputCode string
|
|
EndStr string
|
|
EnableLog bool
|
|
LogFilePath string
|
|
ForWard []int
|
|
FrameSize int
|
|
TimesTamp bool
|
|
TimesFmt string
|
|
Address []string
|
|
EnableGUI bool
|
|
HotkeyMod string
|
|
}
|
|
|
|
// OpenLogFile opens the configured log file for writing, or returns nil if logging is disabled.
|
|
func OpenLogFile(cfg *Config) (*os.File, error) {
|
|
if cfg.EnableLog {
|
|
path := fmt.Sprintf(cfg.LogFilePath, cfg.PortName, time.Now().Format("2006_01_02T150405"))
|
|
f, err := os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return f, nil
|
|
}
|
|
return nil, nil
|
|
}
|