Popularity
0.9
Declining
Activity
0.0
Stable
30
2
6

Code Quality Rank: L5
Programming language: Swift
Tags: Embedded Systems    

SMBus-swift alternatives and similar libraries

Based on the "Embedded Systems" category

Do you think we are missing an alternative of SMBus-swift or a related project?

Add another 'Embedded Systems' Library

README

SMBus-swift

SMBus-swift is a linux library to communicate with SMBus/I2C devices through /dev/i2c.

Requirements

Before beign able to use SMBus in your Swift code, you should install some Linux C libraries.

On a Debian-like distro:

sudo apt-get install i2c-tools libi2c-dev

Then you have to make sure the i2c module is active. So check or add i2c-dev to /etc/modules. Like:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with  "#" are ignored.

i2c-dev

Installation

The library is being written for/on a Raspberry Pi where the Package Manager is not functional yet, so I couldn't really figure out a way to make it work with that, and you'll have to do it manually for now. After cloning, compile your program adding the 2 system dependencies and the main file, like

swiftc -o MyProgram -I ./SMBus-swift/Packages/Ci2c -I ./SMBus-swift/Packages/CioctlHelper ./SMBus-swift/Sources/SMBus.swift main.swift

You can look here for some examples on how to include the library in your program.

Usage

No need to import anything since the library is built together with your other sources. To open the connection create an SMBus object:

try bus = SMBus(busNumber: 1) // opens /dev/i2c-1

and then send your commands:

try bus.writeI2CBlockData(0x60, command: UInt8(0x01), values: [UInt8(2)])

TODO

  • [x] Add missing functions
  • [ ] Add documentation
  • [ ] Support Package Manager