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: |
cd go-satel
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: |
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
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
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/)
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)
The library is based on https://github.com/probakowski/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)
## Installation
go-satel is compatible with modern Go releases in module mode, with Go installed:
```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.
@ -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:
```go
import "git.sr.ht/~michalr/go-satel"
import "github.com/probakowski/go-satel"
```
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 {
ev *NameEvent
ev *NameEvent
err error
}

View File

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