MITA
The next code allow us to control a Roku tv with XDK.
/**
* Welcome to Eclipse Mita.
*
* Not sure what to do now?
* Check out the "Getting started" guide on https://mita.io.
*/
package main;
import platforms.xdk110;
var banlux: int32;
var ban: int32;
//First we need to initialize our variables.
every XDK110.startup {
ban = 0;
banlux = 0;
}
// Create a wireless connection named 'wireless', set up you password and ssid
setup wireless : WLAN {
ssid = "Totalplay-***";
ipConfiguration = Dhcp();
authentication = Personal(psk = "password");
}
// Get the ip direcction from you tv, read ROKU API, to get all the roku devices
// Define the Rest Method that you want to use.
setup roku : HttpRestClient {
transport = wireless;
endpointBase = "http://192.168.100.35:8060";
var up = resource('/keypress/Up');
var down = resource('/keypress/Down');
var left = resource('/keypress/Left');
var right = resource('/keypress/Right');
var volumeUp = resource('/keypress/VolumeUp');//Button1
var volumeDown = resource('/keypress/VolumeDown');//Button2
var volumeMute = resource('/keypress/VolumeMute');//Shake
var enter = resource('/keypress/Enter');//Tap
var poweroff = resource('/keypress/PowerOff');//Light
}
// Define the triggers
// Button 1 - allow us to volumeUp
every button_one.pressed {
roku.volumeUp.write('');
println('volumeUp');
}
// Button 1 - allow us to volumenDown
every button_two.pressed {
roku.volumeDown.write('');
println('volumeDown');
}
// We need to initialize the Gyroscope to read real data form this sensor.
setup Gyroscope_BMG160 {
range = Range_250s;
bandwidth = Bw_12Hz;
}
setup Gyroscope_BMI160 {
range = Range_250s;
bandwidth = BW_10_7Hz;
}
setup accelerometer{
}
//A single tap on the XDK allow us to Mute the TV
every accelerometer.single_tap{
roku.volumeMute.write('');
println('Mute');
}
//Problem XDK Logic
/*every accelerometer.double_tap{
roku.enter.write('');
}*/
// Every 100 milliseconds we need to verify the state of the sensor to determine when a clause was succesful accomplish
every 100 milliseconds {
var x = gyroscope.x_axis.read();
var y = gyroscope.y_axis.read();
if(light.intensity.read() < 100 && banlux!=1){
roku.poweroff.write('');
println('Off');
banlux=1;
}
if(x>200 && ban!=1){ //X
println('right');
ban=1;
roku.right.write('');
}
if(x<-200 && ban!=1){
println('left');
ban=1;
roku.left.write('');
}
if(y>200 && ban!=1){//Y
println('forward');
ban=1;
roku.up.write('');
}
if(y<-200 && ban!=1){
println('back');
ban=1;
roku.down.write('');
}
}
//every 10 an 5 we clear the variable used as flags
every 10 seconds{
banlux=0;
}
every 5 seconds{
ban=0;
}
Last updated
Was this helpful?