Windows 10のIoTではC#を使用してX10コードをデコードするのが好きですが、RFデコードの経験はありませんので、これは私の新しい領域です。C#デコードX10コード
私はthisポストを見つけました。これをC#コードに変換しようとしましたが、成功しませんでした。誰もがこのX10コードをC#で正しくデコードする方法を知っていますか、誰かが私に正しいプロトコル仕様を指し示すことができますか?
ここには現在使用しているコードがありますが、ValueChanged
イベントは呼び出されません。ここで
public static void Sniff(uint gpioPinNumb)
{
Task.Run(() => {
using (GpioPin pin = GpioController.GetDefault().OpenPin((int)gpioPinNumb, GpioSharingMode.Exclusive))
{
pin.SetDriveMode(GpioPinDriveMode.Input);
Stopwatch sw = Stopwatch.StartNew();
long elapsedMicrons = 0;
int[] states = new int[67];
int[] durations = new int[67];
uint changeCount = 0;
bool lockPassed = false;
bool isLock = false;
pin.ValueChanged += (GpioPin sender, GpioPinValueChangedEventArgs args) =>
{
elapsedMicrons = sw.ElapsedTicks/10;
sw.Restart();
//Debug.WriteLine(elapsedMicrons);
if (elapsedMicrons > 25000 && !lockPassed && !isLock)
{
//X10 lock started
changeCount = 0;
durations[changeCount++] = (int)elapsedMicrons;
isLock = true;
Debug.WriteLine("Lock Started");
Debug.WriteLine("");
}
else if (isLock)
{
if (changeCount >= durations.Length)
{
isLock = false;
changeCount = 0;
Debug.WriteLine("===============================");
for (int i = 0; i < durations.Length; i++)
{
Debug.Write(durations[i++]);
Debug.Write(" ");
}
Debug.WriteLine("");
}
else
{
durations[changeCount++] = (int)elapsedMicrons;
}
}
};
}
});
}
?私はどんなパターンも見つけることができません。 –
[this C#library](https://github.com/genielabs/x10-lib-dotnet)を参照できます。 –