Controller Area Network (CAN) SDK for Go.

🔌 CAN Go

PkgGoDev GoReportCard Codecov

CAN toolkit for Go programmers.

can-go makes use of the Linux SocketCAN abstraction for CAN communication. (See the SocketCAN documentation for more details).

Examples

Receiving CAN frames

Receiving CAN frames from a socketcan interface.

func main() {
    // Error handling omitted to keep example simple
    conn, _ := socketcan.DialContext(context.Background(), "can", "can0")

    recv := socketcan.NewReceiver(conn)
    for recv.Receive() {
        frame := recv.Frame()
        fmt.Println(frame.String())
    }
}

Sending CAN frames/messages

Sending CAN frames to a socketcan interface.

func main() {
	// Error handling omitted to keep example simple

	conn, _ := socketcan.DialContext(context.Background(), "can", "can0")

	frame := can.Frame{}
	tx := socketcan.NewTransmitter(conn)
    _ = tx.TransmitFrame(context.Background(), frame)
}

Generating Go code from a DBC file

It is possible to generate Go code from a .dbc file.

$ go run go.einride.tech/can/cmd/cantool generate <dbc file root folder> <output folder>

In order to generate Go code that makes sense, we currently perform some validations when parsing the DBC file so there may need to be some changes on the DBC file to make it work

After generating Go code we can marshal a message to a frame:

// import etruckcan "github.com/myproject/myrepo/gen"

auxMsg := etruckcan.NewAuxiliary().SetHeadLights(etruckcan.Auxiliary_HeadLights_LowBeam)
frame := auxMsg.Frame()

Or unmarshal a frame to a message:

// import etruckcan "github.com/myproject/myrepo/gen"

// Error handling omitted for simplicity
_ := recv.Receive()
frame := recv.Frame()

var auxMsg *etruckcan.Auxiliary
_ = auxMsg.UnmarshalFrame(frame)
Owner
Einride
Intelligent movement
Einride
Comments
  • chore(deps): bump go.einride.tech/sage from 0.191.0 to 0.192.0 in /.sage

    chore(deps): bump go.einride.tech/sage from 0.191.0 to 0.192.0 in /.sage

    Bumps go.einride.tech/sage from 0.191.0 to 0.192.0.

    Release notes

    Sourced from go.einride.tech/sage's releases.

    v0.192.0

    0.192.0 (2022-12-16)

    Feature

    • sgcloudspanner: pin Cloud Spanner emulator version (b7a2874e)

    v0.191.1

    0.191.1 (2022-12-16)

    Bug Fixes

    • spantest: cloudbuild host address (e24a690d)
    Commits
    • b7a2874 feat(sgcloudspanner): pin Cloud Spanner emulator version
    • e24a690 fix(spantest): cloudbuild host address
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump golang.org/x/net from 0.2.0 to 0.4.0

    chore(deps): bump golang.org/x/net from 0.2.0 to 0.4.0

    Bumps golang.org/x/net from 0.2.0 to 0.4.0.

    Commits
    • 1e63c2f http2: limit canonical header cache by bytes, not entries
    • 3247b5b go.mod: update golang.org/x dependencies
    • ecf7fda http2: deflake TestTransportMaxFrameReadSize
    • 0833b63 publicsuffix: embed table data
    • ecf091a publicsuffix: update table to latest list from publicsuffix.org
    • 2f8c3d1 http2: add Transport.MaxReadFrameSize configuration setting
    • 0e478a2 http2: add SETTINGS_HEADER_TABLE_SIZE support
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump go.einride.tech/sage from 0.184.1 to 0.186.0 in /.sage

    chore(deps): bump go.einride.tech/sage from 0.184.1 to 0.186.0 in /.sage

    Bumps go.einride.tech/sage from 0.184.1 to 0.186.0.

    Release notes

    Sourced from go.einride.tech/sage's releases.

    v0.186.0

    0.186.0 (2022-11-09)

    Feature

    • update api-linter to v1.37.0 (c8b17067)

    v0.185.0

    0.185.0 (2022-11-09)

    Feature

    • sqlc: bump to v1.16.0 (014c4d61)

    Chores

    • deps: bump go-semantic-release/action from 1.18 to 1.19 (c06616d5)
    Commits
    • c8b1706 feat: update api-linter to v1.37.0
    • 014c4d6 feat(sqlc): bump to v1.16.0
    • c06616d chore(deps): bump go-semantic-release/action from 1.18 to 1.19
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump go.einride.tech/sage from 0.184.1 to 0.185.0 in /.sage

    chore(deps): bump go.einride.tech/sage from 0.184.1 to 0.185.0 in /.sage

    Bumps go.einride.tech/sage from 0.184.1 to 0.185.0.

    Release notes

    Sourced from go.einride.tech/sage's releases.

    v0.185.0

    0.185.0 (2022-11-09)

    Feature

    • sqlc: bump to v1.16.0 (014c4d61)

    Chores

    • deps: bump go-semantic-release/action from 1.18 to 1.19 (c06616d5)
    Commits
    • 014c4d6 feat(sqlc): bump to v1.16.0
    • c06616d chore(deps): bump go-semantic-release/action from 1.18 to 1.19
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump golang.org/x/tools from 0.1.10 to 0.2.0

    chore(deps): bump golang.org/x/tools from 0.1.10 to 0.2.0

    Bumps golang.org/x/tools from 0.1.10 to 0.2.0.

    Release notes

    Sourced from golang.org/x/tools's releases.

    gopls/v0.2.0

    • Many improvements to autocompletion. In particular, support for completions of array, slice, map, and function literals (@​muirdm).
    • A new diff algorithm (github.com/sergi/go-diff) that improves handling of line endings on different operating systems (@​ianthehat).
    • Improved caching and memory usage (@​stamblerre).
    • Command-line support for links, suggested fixes, and imports (@​kalmanb).
    • Command-line support for references, signature, and symbols (@​rentziass).
    • Command-line support for rename (@​hartzell).

    Opt-in:

    • Get diagnostics from staticcheck by configuring "staticcheck": true in your gopls settings (@​ianthehat).
    • Get autocompletion of unimported packages and symbols by configuring "completeUnimported": true in your gopls settings (@​heschik).
    Commits
    • f112c43 go.mod: update golang.org/x dependencies
    • 207f456 go/internal/gcimporter: bump version number in skew check
    • 65196ca gopls/README.md: fix wording around supported Go versions
    • 6128030 gopls/internal: support renaming packages with int. test variants
    • 649df2e go.mod: mark as requiring -compat 1.16
    • 91311ab gopls/internal/lsp/cache: better import path hygiene
    • 9eda97b go/analysis: enable a test that applies after go list behavior change
    • b50d7ba gopls: minor cleanup of standalone package support
    • 502b93c gopls/internal/lsp: tolerate missing end position in RelatedInformation
    • d67c3ad internal/imports: repair warnings from default analyzers
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump actions/setup-node from 2.5.1 to 3.0.0

    chore(deps): bump actions/setup-node from 2.5.1 to 3.0.0

    Bumps actions/setup-node from 2.5.1 to 3.0.0.

    Release notes

    Sourced from actions/setup-node's releases.

    v3.0.0

    In scope of this release we changed version of the runtime Node.js for the setup-node action and updated package-lock.json file to v2.

    Breaking Changes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump actions/setup-node from 2.1.5 to 2.2.0

    chore(deps): bump actions/setup-node from 2.1.5 to 2.2.0

    Bumps actions/setup-node from 2.1.5 to 2.2.0.

    Release notes

    Sourced from actions/setup-node's releases.

    Support caching dependencies and LTS aliases

    This release brings two major features:

    Supported version syntax

    The node-version input supports the following syntax:

    major versions: 12, 14, 16
    more specific versions: 10.15, 14.2.0, 16.3.0
    nvm LTS syntax: lts/erbium, lts/fermium, lts/*

    Caching dependencies

    The action has a built-in functionality for caching and restoring npm/yarn dependencies. Supported package managers are npm, yarn. The cache input is optional, and caching is turned off by default.

    Caching npm dependencies:

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: '14'
        cache: 'npm'
    - run: npm install
    - run: npm test
    

    Caching yarn dependencies:

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: '14'
        cache: 'yarn'
    - run: yarn install
    - run: yarn test
    

    Yarn caching handles both yarn versions: 1 or 2.

    At the moment, only lock files in the project root are supported.

    Commits
    • 38d90ce Merge pull request #277 from actions/malob/update-readme
    • e1e1d4c Update README.md
    • 40f85c8 update readme
    • e215578 Merge pull request #272 from akv-platform/add-caching-for-node-dependencies
    • 9af8973 Merge pull request #274 from actions/v-mazhuk/automate-releasing-new-versions
    • cfe70f9 update dependencies
    • b259ba4 rebuild project
    • 55e1049 Merge branch 'main' into add-caching-for-node-dependencies
    • bcb4cec Merge pull request #270 from gordey4doronin/gordey/support-lts-syntax
    • 7292279 fix for documentation
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • discussions and searchability

    discussions and searchability

    Please

    • consider enabling discussions so questions could be asked without creating issue
    • consider adding "canbus" etc topic to library description (Edit repository details). I was searching go library for canbus and remembered seeing couple of months ago https://youtu.be/IbggJHJUv0U but could not find it from github when searching with "canbus". Newbies like me probably are more likely to search "canbus" than "can" from "go golang can autonomous-vehicles dbc socketcan"
  • Marshall DBC frame for sending

    Marshall DBC frame for sending

    Hi,

    Is there possibility with this library to create something similar like in python cantools:

    db = cantools.database.load_file(my.dbc)
    msg = db.get_message_by_name('My_SuperMessage')
    data = msg.encode({'Sig1': int(1), 'Sig2': int(2)})
    message = can.Message(is_extended_id=False, arbitration_id=msg.frame_id, data=data)
    can_bus.send(message)
    

    I found parsing method only for dbc but not encode or similar. Thanks.

  • chore(deps): bump golang.org/x/tools from 0.3.0 to 0.4.0

    chore(deps): bump golang.org/x/tools from 0.3.0 to 0.4.0

    Bumps golang.org/x/tools from 0.3.0 to 0.4.0.

    Release notes

    Sourced from golang.org/x/tools's releases.

    gopls/v0.4.0

    • Improved support for working with modules (@​ridersofrohan). A detailed walk-through of the new features can be found here. A quick summary:
      • Use the -modfile flag to suggest which modules should be added/removed from the go.mod file, rather than editing it automatically.
      • Suggest dependency upgrades in-editor and provide additional language features, such as formatting, for the go.mod file.
    • Inverse implementations (@​muirdm). "Go to implementations" on a concrete type will show the interfaces it implements.
    • Completion improvements (@​muirdm). Specifically, improved completion for keywords. Also, offer if err != nil { return err } as a completion item.
    • Jumping to definition on an import statement returns all files as definition locations (@​danishprakash).
    • Support for running go generate through the editor, via a code lens (@​marwan-at-work).
    • Command-line support for workspace symbols (@​daisuzu).

    Opt-in:

    • Code actions suggesting gofmt -s-style simplifications (@​ridersofrohan). To get these on-save, add the following setting:
    "[go]": {
    	"editor.codeActionsOnSave": {
    		"source.fixAll": true,
    	}
    }
    
    • Code actions suggesting fixes for type errors, such as missing return values (goreturns-style), undeclared names, unused parameters, and assignment statements that should be converted from := to = (@​ridersofrohan). Add the following to your gopls settings to opt-in to these analyzers. In the future, they will be on by default and high-confidence suggested fixes may be applied on save. See additional documentation on analyzers here.
    "gopls": {
    	"analyses": {
    		"fillreturns": true,
                    "undeclaredname": true,
                    "unusedparams": true,
                    "nonewvars": true,
    	}
    }
    
    • Further improvements in the support for multiple concurrent clients (@​findleyr). See #34111 for all details.

    For a complete list of the issues resolved, see the gopls/v0.4.0 milestone.

    gopls/v0.3.4

    gopls/v0.3.3

    • Support for workspace symbols. (@​daisuzu)
    • Various completion improvements, including fixes for completion in code that doesn't parse. (@​muirdm)
    • Limit diagnostic concurrency, preventing huge spikes in memory usage that some users encountered. (@​heschik)
    • Improved handling for URIs containing escaped characters. (@​heschik)
    • Module versions from "go list" in pkg.go.dev links. (@​ridersofrohan)

    ... (truncated)

    Commits
    • aee3994 gopls/internal/lsp/fake: in (*Workdir).RenameFile, fall back to read + write
    • fe60148 go.mod: update golang.org/x dependencies
    • c9ea9a7 gopls/internal/regtest: add a test for the case when the renaming package's p...
    • bf5db81 gopls/internal/lsp/cache: improve ad-hoc warning for nested modules
    • aa9f4b2 go/analysis: document that facts are gob encoded in one gulp
    • bdcd082 internal/gcimporter: skip tests earlier when 'go build' is not available
    • 2ad6325 gopls/internal/lsp/cache: expand ImportPath!=PackagePath comment
    • 52c7b88 gopls/internal/robustio: only define ERROR_SHARING_VIOLATION on Windows
    • 4f69bf3 gopls/internal/lsp/cache: narrow reloadOrphanedFiles to open files
    • 6002d6e gopls/internal/regtest/misc: test Implementations + vendor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump github.com/mdlayher/netlink from 1.7.0 to 1.7.1

    chore(deps): bump github.com/mdlayher/netlink from 1.7.0 to 1.7.1

    Bumps github.com/mdlayher/netlink from 1.7.0 to 1.7.1.

    Release notes

    Sourced from github.com/mdlayher/netlink's releases.

    v1.7.1

    See https://github.com/mdlayher/netlink/blob/main/CHANGELOG.md#v171.

    Changelog

    Sourced from github.com/mdlayher/netlink's changelog.

    v1.7.1

    • [Bug Fix]: test only changes to avoid failures on big endian machines.
    Commits
    • 0de3483 netlink: tag v1.7.1
    • 879e725 nltest: skip TestError on big endian machine
    • fc4cbcd netlink: fix strict option check for s390x
    • ca0202e README: note new stability policy
    • a390d76 internal/integration: use netlink v1.7.0 and replace to root
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • chore(deps): bump go.einride.tech/sage from 0.191.0 to 0.192.1 in /.sage

    chore(deps): bump go.einride.tech/sage from 0.191.0 to 0.192.1 in /.sage

    Bumps go.einride.tech/sage from 0.191.0 to 0.192.1.

    Release notes

    Sourced from go.einride.tech/sage's releases.

    v0.192.1

    0.192.1 (2022-12-22)

    Bug Fixes

    • sgnpmlicense: output summary instead of csv (80530047)

    v0.192.0

    0.192.0 (2022-12-16)

    Feature

    • sgcloudspanner: pin Cloud Spanner emulator version (b7a2874e)

    v0.191.1

    0.191.1 (2022-12-16)

    Bug Fixes

    • spantest: cloudbuild host address (e24a690d)
    Commits
    • 8053004 fix(sgnpmlicense): output summary instead of csv
    • b7a2874 feat(sgcloudspanner): pin Cloud Spanner emulator version
    • e24a690 fix(spantest): cloudbuild host address
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • TransmitFrame hanging sometimes

    TransmitFrame hanging sometimes

    This is probably a problem with Linux Socketcan (running on a Pi 4), but I thought I would note it in case anyone knew an easy answer. It's not a huge problem, but one I've found in testing. Essentially, on occasion, TransmitFrame doesn't return UNTIL I receive a frame on the bus. It's hard to replicate. But, in any case, when bus traffic is empty, then the TransmitFrame will, only sometimes, fail to return. When incoming traffic returns to the bus, TransmitFrame will finally complete.

  • Not understanding the SetBit operations for Big Endian

    Not understanding the SetBit operations for Big Endian

    Hi,

    I'm looking to create a Frame with uint16 values converted to big endian, e.g., the value of 256 represented in the CAN data as (hex): 01 00.

    I've looked at doing this via:

    tx := socketcan.NewTransmitter(canCon)
    a_uint16_var := 256
    frame2.ID = 0xd0
    frame2.Length = 2
    frame2.Data.SetUnsignedBitsBigEndian(0, 16, uint64(a_uint16_var))
    _ = tx.TransmitFrame(context.Background(), frame2)
    

    Incorrect Result: vcan0 0D0 [2] 00 02

    The documentation for Data looks like this is the correct format, and it's working when using SetUnsignedBitsLittleEndian (with byte order properly reversed).

    However, the results I get passing the uint16 value come back with strange values in frame.Data.

    Right now I can work around this by creating my own byte array, converting, then copying into frame.Data:

    a_uint16_var := 256
    tx := socketcan.NewTransmitter(canCon)
    frame2.ID = 0xd0
    frame2.Length = 2
    buf := make([]byte, 2)
    binary.BigEndian.PutUint16(buf, speed)
    copy(frame2.Data[:], buf)
    _ = tx.TransmitFrame(context.Background(), frame2)
    

    Correct Result: vcan0 0D0 [2] 01 00

    This works for some straight forward applications, but I saw all the error checking you've included in the Data type functions I'd to take advantage of. I looked for some more expanded examples, but didn't find anything to help me better understand the content of creating and sending frames from data in a big endian way.

  • generating dbc file for obd2 fails

    generating dbc file for obd2 fails

    I'm trying to generate code for this dbc file: https://canlogger1000.csselectronics.com/files/guides/mdf-intro/OBD2-DBC-MDF4.zip (CSS-Electronics-OBD2-Extended-v1.4.dbc) but if fails first with:

    go run go.einride.tech/can/cmd/cantool generate `pwd` `pwd` > out.txt
    cantool: error: failed to parse DBC source file: /home/marek/CSS-Electronics-OBD2-Extended-v1.4.dbc:190:28: invalid multiplexer value (parse), try --help
    exit status 1
    

    which point to the line:

    SG_ ParameterID_Service01 m1M : 23|8@0+ (1,0) [0|255] "" Vector__XXX
    

    by replacing m1M to m1 only it seems to generate code but generation fails with go generated output and at the end:

    : 4:12: expected ';', found '-', try --help
    exit status 1
    

    I really have no clue what is going on there ;). Any ideas? Thanks.

  • cantool/generate: handle mux bool types correctly + skip overflow values

    cantool/generate: handle mux bool types correctly + skip overflow values

    This PR does two things:

    1. Handles mux bool types correctly (true/false instead of 0)
    2. Skips values that will overflow the type of the constant to still allow generating code with bad dbc files

    Fixes #39.

network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.
network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.

Network Node Manager network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of ku

Dec 18, 2022
GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the CyberSecurity area can make an optimized list of ports
GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the CyberSecurity area can make an optimized list of ports

?? GoScan GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the C

Jul 19, 2022
A CLI tool that can be used to disrupt wireless connectivity in your area by jamming all the wireless devices connected to multiple access points.

sig-716i A CLI tool written in Go that can be used to disrupt wireless connectivity in the area accessible to your wireless interface. This tool scans

Oct 14, 2022
Build a layer-three local area network on the WAN

What is Zetamesh Zetamesh /zeta'meʃ/ is used to build a layer-three local area network on the WAN. Quick Start This section will give you some instruc

Jun 7, 2022
Share plain text, images and files in Local area network.

LAN-Share Share plain text, images and files in Local area network. Usage $ lan-share -h Usage of lan-share: -addr string Listen on address

Jan 25, 2022
Image clone controller is a kubernetes controller to safe guard against the risk of container images disappearing

Image clone controller image clone controller is a kubernetes controller to safe guard against the risk of container images disappearing from public r

Oct 10, 2021
A Controller written in kubernetes sample-controller style which watches a custom resource named Bookstore

bookstore-sample-controller A Controller written in kubernetes sample-controller style which watches a custom resource named Bookstore. A resource cre

Jan 20, 2022
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

May 16, 2022
The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the operator-sdk or controller-runtime.

k8s-generic-webhook The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the opera

Nov 24, 2022
a cross platfrom Go library to place an icon and menu in the notification area

systray is a cross-platform Go library to place an icon and menu in the notification area. Features Supported on Windows, macOS, and Linux Menu items

Dec 27, 2022
Script to check open slot for 18+ age group in particular district and pin code area

Running instruction install go: 1.14 (might work with other versions as well) install following library for sending notifications go get -u github.com

Mar 22, 2022
This is a cloud-native application that focuses on the DevOps area.

Get started Install KubeSphere via kk (or other ways). This is an optional step, basically we need a Kubernetes Cluster and the front-end of DevOps. I

Jan 5, 2023
This is a cloud-native application that focuses on the DevOps area.

KubeSphere DevOps integrates popular CI/CD tools, provides CI/CD Pipelines based on Jenkins, offers automation toolkits including Binary-to-Image (B2I

Jan 5, 2023
Automatically map wacom tablets area to your primary X output.

xsetwacom-auto Simple CLI tool that uses xsetwacom and xrandr to: map the to one monitor set the tablet area to match the aspect ratio of the monitor

Dec 7, 2021
Start of a project that would let people stay informed about safe running spaces in their area.

SafeRun Start of a project that would let people stay informed about safe running spaces in their area. Too many people I'm friends with feel unsafe w

Feb 11, 2022
A go sdk for baidu netdisk open platform 百度网盘开放平台 Go SDK

Pan Go Sdk 该代码库为百度网盘开放平台Go语言的SDK

Nov 22, 2022
Nextengine-sdk-go: the NextEngine SDK for the Go programming language

NextEngine SDK for Go nextengine-sdk-go is the NextEngine SDK for the Go programming language. Getting Started Install go get github.com/takaaki-s/nex

Dec 7, 2021
Commercetools-go-sdk is fork of original commercetools-go-sdk

commercetools-go-sdk The Commercetools Go SDK is automatically generated based on the official API specifications of Commercetools. It should therefor

Dec 13, 2021
Sdk-go - Go version of the Synapse SDK

synapsesdk-go Synapse Protocol's Go SDK. Currently in super duper alpha, do not

Jan 7, 2022
Redash-go-sdk - An SDK for the programmatic management of Redash, in Go
Redash-go-sdk - An SDK for the programmatic management of Redash, in Go

Redash Go SDK An SDK for the programmatic management of Redash. The main compone

Dec 13, 2022