Skip to content

Swift library for SMBus access through the i2c /dev interface on Linux

License

Notifications You must be signed in to change notification settings

Sephiroth87/SMBus-swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#SMBus-swift Join the chat at https://gitter.im/Sephiroth87/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

  • Add missing functions
  • Add documentation
  • Support Package Manager

About

Swift library for SMBus access through the i2c /dev interface on Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published