public static void Register(BluetoothWT32 wt32)
{
if (client != null)
{
throw new Exception("InternalCommunications already registered.");
}
client = wt32;
var wt32Parser = new MessageParser();
wt32Parser.MessageReceived += m =>
{
if (m is InternalMessage)
{
ProcessInternalMessage((InternalMessage)m);
}
else
{
Manager.EnqueueMessage(m);
}
};
wt32.BTCommandReceived += (s, l, c) =>
{
if (l == wt32.SPPLink)
{
try
{
wt32Parser.Parse(c);
}
catch (Exception ex)
{
Logger.Error(ex, "iBus from WT32", "BT <");
}
}
};
Manager.AfterMessageReceived += (m) =>
{
if (HasConnection)
{
try
{
wt32.SendCommand(m.Message.Packet, wt32.SPPLink, "iBus data");
}
catch (Exception ex)
{
Logger.Error(ex, "iBus to WT32", "> BT");
}
}
};
}