
MQTT를 통해 창을 원격으로 제어하는 간단한 배경 서비스.
목차
├── .github
├── .gitignore
├── README.md
├── go.mod
├── go.sum
├── main.go
├── docs
│ └── README.md
├── control
│ ├── power
│ │ └── power.go
│ ├── app
│ │ └── app.go
│ └── sound
│ └── sound.go
├── tools
│ ├── configurator
│ │ └── configurator.go
│ └── logger
│ └── logger.go
├── tray
│ ├── tray.go
│ │
│ └── icon.go
├── mosquitto
│ ├── mosquitto.go
│ │
│ └── sensors.go
└── configs
└── config.yaml
레이아웃에 대한 간단한 설명 :
README.md 프로젝트에 대한 자세한 설명입니다.go.mod 는이 프로젝트에서 모듈 시스템에 대한 자세한 참조 설명서입니다.go.sum 모듈에 필요한 직접 및 간접 종속성의 체크섬의 상세한 파일입니다.main.go 는 프로그램의 기본 파일입니다.docs 에는 프로젝트 문서가 포함되어 있습니다.control 에는 Win 10 API와의 상호 작용을위한 기본 패키지가 포함되어 있으며, 각 control 하위 디렉토리는 기본 패키지입니다.mosquitto 에는 MQTT 로직 패키지가 포함되어 있습니다.tray 에는 시스템 트레이 앱 로직 패키지가 포함되어 있습니다.tools 에는 YAML configurator 및 logger 패키지가 포함되어 있습니다.configs 에는 config.yaml 파일의 예제가 포함되어 있습니다. 이진 파일을 사용하는 경우 :
Windows 10소스 코드를 사용하는 경우 :
Windows 10Go 1.18 or greater 릴리스 페이지에서 exe 또는 go 파일을 다운로드하고 실행합니다.
warden.exe
go run main.go (if you wanna start it from source files)
구성 매개 변수는 소장을 시작하는 위치에서 작업 디렉토리의 구성 파일에 배치해야합니다.
| 재산 | 설명 | 예 | 필수적인 |
|---|---|---|---|
| 브로커 | MQTT 브로커의 URL | 127.0.0.1 | 예 |
| 사용자 이름 | MQTT 브로커에 대한 사용자 이름 | 관리자 | 예 |
| 비밀번호 | MQTT 브로커에 대한 비밀번호 | 비밀번호 | 예 |
| 앱 | 전원 끄기위한 앱 목록 | app.exe | 아니요 |
Warden은 현재 작업 디렉토리 (Warden을 시작한 디렉토리) 에서이 파일을 찾습니다. conf 파일이없는 경우 Warnen은 기본 파일을 생성합니다. 이 파일을 변경하거나 config.yaml 파일을 작성하고 원하는 매개 변수를 넣습니다. 또는 Repo의 구성 폴더 에서이 파일의 예를 복사하기 만하면됩니다.
예제 파일 :
broker: 127.0.0.1
username: admin
password: password
apps:
- game.exe
- app.exe
그건 그렇고, Warden은 시작하기 전에 구성을 검증하고 무언가를 잊어 버리는지 확인합니다!
CLI는 구성 파일과 하나의 추가 매개 변수를 추가하고 하나를 추가하고 Params Warden 중 하나를 잊어 버린 경우 기본값을 사용합니다.
| 재산 | 설명 | 깃발 | 기본 |
|---|---|---|---|
| 디버그가 없습니다 | 디버그 모드를 끕니다 | -N / -NodeBug | 없음 |
| 구성 | CLI 구성으로 config.yaml 데이터를 무시합니다 | -c / -코피그 | 없음 |
| 브로커 | MQTT 브로커의 URL | -B / -브로커 | 로컬 호스트 |
| 사용자 이름 | MQTT 브로커에 대한 사용자 이름 | -u / --user | 관리자 |
| 비밀번호 | MQTT 브로커에 대한 비밀번호 | -p / -통과 | 관리자 |
(!!!) config.yaml (!!!)을 재정의하려면 구성 플래그를 사용해야합니다.
예:
warden.exe -n
warden.exe -c -n -b 192.168.1.1 -u sasha -p password
warden.exe --cli --nodebug --broker 192.168.1.1 --user sasha --pass 12345678
warden.exe -c -n --broker 192.168.1.1 --user sasha -p 12345678
소장은 출시 직후 로그 로깅을 시작합니다. 현재 작업 디렉토리에 Warden.log 파일을 만들고 7 일마다 파일을 덮어 씁니다. 
모든 메시지의 페이로드는 원시 문자열 또는 유효한 JSON 요소 (단일 정수와 같은 원시적)입니다.
예제 유효한 메시지 페이로드 :
0100truetest stringPC_HOSTNAME 은 Windows PC의 시스템 이름입니다. 주제 : Warden/PC_HostName/Status/Online
페이로드 : bool
지속성 : 예
진실 - 살아 있고, 거짓 - 죽음.
주제 : Warden/PC_HostName/상태/볼륨
페이로드 : 범위 0-100의 int
끈기있는 : 아니요
3 초마다 현재 마스터 볼륨 상태를 보냅니다.
주제 : Warden/PC_HostName/Status/Muted
페이로드 : bool
끈기있는 : 아니요
5 초마다 현재 음소거 상태를 보냅니다.
PC_HOSTNAME 은 Windows PC의 시스템 이름입니다. 주제 : Warden/PC_HostName/명령/종료
페이로드 : -
즉각적인 시스템 종료를 트리거합니다.
주제 : Warden/PC_HostName/명령/재부팅
페이로드 : -
즉시 시스템 재부팅을 트리거합니다.
주제 : Warden/PC_HostName/명령/수면
페이로드 : -
즉각적인 시스템 수면을 유발하십시오.
주제 : Warden/PC_HostName/명령/볼륨
페이로드 : 범위 0-100의 int
트리거 시스템의 마스터 볼륨을 변경합니다.
주제 : Warden/PC_HostName/명령/음소거
페이로드 : 부울
"True" - Mutes 시스템 볼륨을 트리거합니다. "False" - Unmutes 시스템 볼륨을 트리거합니다.
주제 : Warden/PC_HostName/명령/앱
페이로드 : 문자열
"config" - 구성 파일에서 모든 앱을 끄고 "app.exe" - 지정된 모든 앱을 끕니다.
당신은 혼자서 그것을 만들 수 있습니다.
go build -o bin/warden.exe -ldflags "-H windowsgui"
누군가가 요청한다면 기꺼이 새로운 것을 추가 할 것입니다!
changelog
Copyright 2022 Alexandra chichko <[email protected]>
Apache 라이센스, 버전 2.0 ( "라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 것 외에는이 소프트웨어를 사용할 수 없습니다. 라이센스 사본을 얻을 수 있습니다
http://www.apache.org/licenses/license-2.0
해당 법률에 의해 요구되거나 서면에 동의하지 않는 한, 라이센스에 따라 배포 된 소프트웨어는 명시 적 또는 묵시적 보증 또는 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오.