1
0
Fork 0

Compare commits

..

No commits in common. "053187c5d1a0839648fd1eacd952793ed1c54bc1" and "c93d9db530fead50f44b3ae1e7b5f95c20683575" have entirely different histories.

6 changed files with 30 additions and 42 deletions

View File

@ -5,13 +5,6 @@ tasks:
- go-get: | - go-get: |
cd go-satel cd go-satel
go get -t go get -t
- precommit: |
cd go-satel
python3 -m venv .venv
source .venv/bin/activate
pip3 install pre-commit
pre-commit install
pre-commit run -a
- test: | - test: |
cd go-satel cd go-satel
go test go test

View File

@ -1,16 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
- repo: https://github.com/TekWizely/pre-commit-golang
rev: v0.8.3
hooks:
- id: go-fmt
args: [ -w, -s ]
- id: go-vet-mod
- id: go-test-repo-mod

View File

@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.

View File

@ -4,15 +4,14 @@ go-satel is a Go library to integrate
with [Satel ETHM-1/ETHM-1 Plus](https://www.satel.pl/produkty/sswin/komunikacja-i-powiadamianie/komunikacja-tcp-ip/ethm-1-plus/) with [Satel ETHM-1/ETHM-1 Plus](https://www.satel.pl/produkty/sswin/komunikacja-i-powiadamianie/komunikacja-tcp-ip/ethm-1-plus/)
module module
[![builds.sr.ht status](https://builds.sr.ht/~michalr/go-satel.svg)](https://builds.sr.ht/~michalr/go-satel?) [![Go Report Card](https://goreportcard.com/badge/git.sr.ht/~michalr/go-satel)](https://goreportcard.com/report/git.sr.ht/~michalr/go-satel) [![Build](https://github.com/probakowski/go-satel/actions/workflows/build.yml/badge.svg)](https://github.com/probakowski/go-satel/actions/workflows/build.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/probakowski/go-satel)](https://goreportcard.com/report/github.com/probakowski/go-satel)
The library is based on https://github.com/probakowski/go-satel .
## Installation ## Installation
go-satel is compatible with modern Go releases in module mode, with Go installed: go-satel is compatible with modern Go releases in module mode, with Go installed:
```bash ```bash
go get git.sr.ht/~michalr/go-satel go get github.com/probakowski/go-satel
``` ```
will resolve and add the package to the current development module, along with its dependencies. will resolve and add the package to the current development module, along with its dependencies.
@ -20,11 +19,29 @@ will resolve and add the package to the current development module, along with i
Alternatively the same can be achieved if you use import in a package: Alternatively the same can be achieved if you use import in a package:
```go ```go
import "git.sr.ht/~michalr/go-satel" import "github.com/probakowski/go-satel"
``` ```
and run `go get` without parameters. and run `go get` without parameters.
## Usage Finally, to use the top-of-trunk version of this repo, use the following command:
**TODO** ```bash
go get github.com/probakowski/go-satel@master
```
## Usage
```go
s := satel.NewConfig("<ip:port>", satel.Config{EventsQueueSize: 1000})
go func() {
value := true
for {
s.SetOutput("<user code>", <port number>, value)
time.Sleep(5 * time.Second)
value = !value
}
}()
for e, ok := <-s.Events; ok; e, ok = <-s.Events {
logger.Print("change from satel", "type", e.Type, "index", e.Index, "value", e.Value)
}
```

View File

@ -51,7 +51,7 @@ func makeNameEvent(bytes []byte) (*NameEvent, error) {
} }
type getNameResult struct { type getNameResult struct {
ev *NameEvent ev *NameEvent
err error err error
} }

View File

@ -8,16 +8,12 @@ import (
"time" "time"
) )
type BasicEventElement struct { type Event struct {
Type ChangeType Type ChangeType
Index int Index int
Value bool Value bool
} }
type Event struct {
BasicEvents []BasicEventElement
}
type Config struct { type Config struct {
EventsQueueSize int EventsQueueSize int
LongCommands bool LongCommands bool
@ -129,18 +125,16 @@ func (s *Satel) readRawEvents() {
if cmd == 0xEF { if cmd == 0xEF {
return return
} }
basicElements := make([]BasicEventElement, 0)
for i, bb := range bytes { for i, bb := range bytes {
for j := 0; j < 8; j++ { for j := 0; j < 8; j++ {
index := byte(1 << j) index := byte(1 << j)
basicElements = append(basicElements, BasicEventElement{ s.Events <- Event{
Type: ChangeType(cmd), Type: ChangeType(cmd),
Index: i*8 + j, Index: i*8 + j,
Value: bb&index != 0, Value: bb&index != 0,
}) }
} }
} }
s.Events <- Event{basicElements}
} }
func (s *Satel) read() { func (s *Satel) read() {