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