Aby rozpocząć programować w NETMF nie trzeba kupować od razu żadnej elektroniki, procesorów itp. Nie trzeba również umieć lutować (na razie). Po prostu ze strony NETMF ściągamy aktualny SDK, instalujemy i możemy napisać pierwszy program!. Na przykład coś takiego:
using System;
using System.IO.Ports;
using System.Text;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
namespace MFConsoleApplication1
{
public class Program
{
private const int Delay = 500;
public static void Main()
{
Debug.Print("start");
var led1 = new OutputPort((Cpu.Pin)3, false);
using (var serial = new SerialPort("COM1"))
{
Debug.Print("open serial port");
serial.Open();
WriteHello(serial);
while (true)
{
ChangePort(led1, serial);
}
}
}
private static void WriteHello(SerialPort serial)
{
var sb = new StringBuilder("Hello ");
sb.Append(SystemInfo.OEMString);
sb.Append(" Version: ");
sb.Append(SystemInfo.Version);
sb.Append(" Model: ");
sb.Append(SystemInfo.SystemID.Model);
if (SystemInfo.IsEmulator)
sb.Append(" running on emulator");
sb.AppendLine(String.Empty);
string msg = sb.ToString();
Debug.Print(msg);
byte[] msgBuff = Convert(msg);
serial.Write(msgBuff, 0, msg.Length);
}
private static void ChangePort(OutputPort port, SerialPort serial)
{
bool nextState = !port.Read();
port.Write(nextState);
var sb = new StringBuilder("Port ");
sb.Append(port.Id);
sb.AppendLine(nextState ? " on" : " off");
string msg = sb.ToString();
Debug.Print(msg);
byte[] msgBuff = Convert(msg);
serial.Write(msgBuff, 0, msgBuff.Length);
Thread.Sleep(Delay);
}
private static byte[] Convert(string message)
{
byte[] result = Encoding.UTF8.GetBytes(message);
return result;
}
}
}
Program najpierw przedstawia się na porcie COM, a następnie w nieskończoność mruga (powiedzmy diodą) na porcie 3 procesora jednocześnie wysyłając informację na port szeregowy:
Hello Microsoft Copyright (C) Microsoft Corporation. All rig Version: 4.2.0.0 Model: 2 running on emulator Port 3 on Port 3 off
Brak komentarzy:
Prześlij komentarz