| |
using System;
using Microsoft.SPOT;
using Microsoft.SPOT.Input;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Hardware;
using SPL.Script.Engine;
namespace SPLMFConsoleWindow1
{
public class Program : Microsoft.SPOT.Application
{
public static void Main()
{
Program myApplication = new Program();
Window mainWindow = myApplication.CreateWindow();
GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
myApplication.Run(mainWindow);
}
private Window mainWindow;
//########################## Sample Code #################################
private ConsoleWindow _consoleWindow;
private I2CDevice _device = null;
private InterruptPort _port5 = null;
private InterruptPort _port6 = null;
//##########################################################################
public Window CreateWindow()
{
mainWindow = new Window();
mainWindow.Height = SystemMetrics.ScreenHeight;
mainWindow.Width = SystemMetrics.ScreenWidth;
//########################## Sample Code #################################
Font font = Resources.GetFont(Resources.FontResources.small);
_consoleWindow = new ConsoleWindow(font);
mainWindow.Child = _consoleWindow;
//##########################################################################
mainWindow.AddHandler(Buttons.ButtonUpEvent, new ButtonEventHandler(OnButtonUp), false);
mainWindow.Visibility = Visibility.Visible;
Buttons.Focus(mainWindow);
//########################## Sample Code #################################
_consoleWindow.WriteLine("Push Select-Button to start demo!.");
//##########################################################################
//########################## Sample Code #################################
I2CDevice.Configuration config = new I2CDevice.Configuration(
58,
100
);
_device = new I2CDevice(config);
_port5 = new InterruptPort(Cpu.Pin.GPIO_Pin5, false, Port.ResistorMode.PullDown, Port.InterruptMode.InterruptEdgeBoth);
_port5.OnInterrupt += new NativeEventHandler(_port5_OnInterrupt);
_port6 = new InterruptPort(Cpu.Pin.GPIO_Pin6, false, Port.ResistorMode.PullDown, Port.InterruptMode.InterruptEdgeBoth);
_port6.OnInterrupt += new NativeEventHandler(_port6_OnInterrupt);
//##########################################################################
return mainWindow;
}
private void OnButtonUp(object sender, ButtonEventArgs e)
{
//########################## Sample Code #################################
if (e.Button == Microsoft.SPOT.Hardware.Button.VK_SELECT)
{
byte[] wBuff = new byte[3];
wBuff[0] = 4;
wBuff[1] = 120; //120-100
wBuff[2] = 120;
I2CDevice.I2CWriteTransaction wTr = _device.CreateWriteTransaction(wBuff);
I2CDevice.I2CTransaction[] wTrArr = new I2CDevice.I2CTransaction[] { wTr };
//Go Forwards
int count = _device.Execute(wTrArr, 1000);
_consoleWindow.WriteLine("Go forwards");
}
//##########################################################################
}
//########################## Sample Code #################################
void _port5_OnInterrupt(uint data1, uint data2, DateTime time)
{
bool state = _port5.Read();
this.Dispatcher.BeginInvoke(
new DispatcherOperationCallback(
delegate(object report)
{
_consoleWindow.WriteLine("[Front Bumer] Curruent state is " + state.ToString());
return null;
}
), null
);
}
void _port6_OnInterrupt(uint data1, uint data2, DateTime time)
{
bool state = _port6.Read();
this.Dispatcher.BeginInvoke(
new DispatcherOperationCallback(
delegate(object report)
{
_consoleWindow.WriteLine("[Rear Bumper] Curruent state is " + state.ToString());
return null;
}
), null
);
}
//##########################################################################
}
}
| |