Langaton laiteohjaus TellStick:in avulla

Viime kerralla testasin Infrapuna laitteidenohjausta tietokoneella USB-UIRT:in avulla. Nyt laajensin tietokoneohjauksen mukaan radio-ohjattavat laitteet kuten langattomat pistorasiat.

TellStick -tikku on Telldus -valmistajan tuote. Tikun mukana tulevalla ohjelmistolla voi ohjata mm. Waveman, Proove, Elro valmistajien järjestelmiä kuten langattomia pistorasioita tai valon himmentimiä. Tällä kertaa vehjettä ei tarvinnut tilata Amerikasta vaan löytyi kilometrin päästä Class Ohlsonilta. Sieltä löytyy myös erilaisia vastaanottimia.

Tälläkin kertaa aloin selvittelemään miten tikkua voi ohjata omasta koodista. Valmistan sivuilta voi hakea esimerkki vb6-projektin, josta dll-rajapinnat oli helppo ottaa c# koodiin hieman muokkaamalla. Rajapinta oli myös todella yksinkertainen. Tässä c# -versio koodista:

using System.Runtime.InteropServices;

namespace uirtcontrol
{
	public class TellStickBL
	{
		[DllImport("TelldusCore.dll")]
		public static extern bool tdTurnOn(int lngDeviceId);

		[DllImport("TelldusCore.dll")]
		public static extern bool tdTurnOff(int lngDeviceId);

		[DllImport("TelldusCore.dll")]
		public static extern bool tdBell(int lngDeviceId);

		[DllImport("TelldusCore.dll")]
		public static extern bool tdDim(int lngDeviceId, 
			byte level);

		[DllImport("TelldusCore.dll")]
		public static extern int tdMethods(int lngDeviceId, 
			int methodsSupported);

		[DllImport("TelldusCore.dll")]
		public static extern int tdGetDeviceId(int lngDeviceId);

		[DllImport("TelldusCore.dll")]
		public static extern string tdGetName(int i);

		[DllImport("TelldusCore.dll")]
		public static extern int tdGetNumberOfDevices();

		public const int TELLSTICK_TURNON = 1;
		public const int TELLSTICK_TURNOFF = 2;
		public const int TELLSTICK_BELL = 4;
		public const int TELLSTICK_TOGGLE = 8;
		public const int TELLSTICK_DIM = 16;
	}
}

Koodissa voi tarkistaa laitteiden käytössä olevat tilat seuraavasti.

int intMethods = TellStickBL.tdMethods(lngDevId,
	TellStickBL.TELLSTICK_TURNON | 
	TellStickBL.TELLSTICK_TURNOFF | 
	TellStickBL.TELLSTICK_BELL);

bool turnonEnabled = (intMethods & TellStickBL.TELLSTICK_TURNON) > 0;
bool turnoffEnabled = (intMethods & TellStickBL.TELLSTICK_TURNOFF) > 0;
bool dimEnabled = (intMethods & TellStickBL.TELLSTICK_DIM) > 0;
bool bellEnabled = (intMethods & TellStickBL.TELLSTICK_BELL) > 0;

Seuraavaksi liitin ohjelman osaksi aiemmin tekemääni ohjelmaa ir-laitteille.


Tämän kertainen versio ohjelmasta.

Tutustu

QPlayer (Beta)

Yksinkertaistettu mediasoitin.
Avaa esittely / muutoshistoria