Добрый день.
Извиняюсь если не в тот топик поместил, но вроде показался этот подходящим, да и кармы для других не хватает.
Давненько приобрел для себя Fez Panda 2, побаловался и забросил. Вчера вечером попался сей девайс на глаза, а рядом ключи с «таблеткой» от домофона. Вот и решил попробовать считать данные из него. Работает он по интерфейсу 1-Wire (который согласно описанию панды «available on any IO»)
Расписывать его работу не буду, кому интересно можно прочесть здесь
Для работы нам понадобится спаять/скрутить вот такую схемку:
Код приложения выглядит так:
using System;
using System.Threading;using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;using GHIElectronics.NETMF.FEZ;
using GHIElectronics.NETMF.Hardware;namespace iButton
{
public class Program
{
static OneWire ow = new OneWire((Cpu.Pin)FEZ_Pin.Digital.Di4);
static OutputPort led = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, false);public static void Main()
{
bool ledState = false;while (true)
{
byte[] readall = new byte[8];if (ow.Search_GetNextDevice(readall))
{
string hex = ByteArrayToString(readall);
Debug.Print("========================");
if (readall[0] != 0x01)
{
Debug.Print("Device is not a DS1990A family device.");
}
Debug.Print(hex);for (int i = 0; i < 6; i++)
{
Thread.Sleep(200);
ledState = !ledState;
led.Write(ledState);
}
}
}
}public static string ByteArrayToString(byte[] ba)
{
string hex = string.Empty;
for (int i = ba.Length - 1; i >= 0; i--)
{
hex += " " + ByteToHex(ba[i]);
}return hex;
}public static string ByteToHex(byte b)
{
const string hex = "0123456789ABCDEF";
int lowNibble = b & 0x0F;
int highNibble = (b & 0x0F0) >> 4;
string s = new string(new char[] { hex[highNibble], hex[lowNibble] });return s;
}
}
}* This source code was highlighted with Source Code Highlighter.
Если в ближайшее время куплю пустой ключ то попробую его запрограммировать имеющимися данными.
Автор: Zanoza