static void ProcessNavGraphicsMessage(Message m)
{
var ae = ScreenCleared;
if (ae != null && m.Data.Compare(MessageClearScreen.Data))
{
ae();
m.ReceiverDescription = "Clear screen";
return;
}
ae = ScreenRefreshed;
if (ae != null && m.Data.Compare(MessageRefreshScreen.Data))
{
ae();
m.ReceiverDescription = "Refresh screen";
OnScreenUpdated();
return;
}
var e = TextReceived;
if (e != null || ReplyToScreenUpdates)
{
if (m.Data.StartsWith(0xA5, 0x62, 0x00) || m.Data.StartsWith(0x21, 0x60, 0x00))
{
var a = new BordmonitorText(BordmonitorFields.Item, m.Data);
if (e != null)
{
e(a);
}
#if NETMF
m.ReceiverDescription = "BM fill items";
#else
var s = "BM fill items";
var items = a.ParseItems();
foreach (var i in items)
{
s += " | " + i.Index.ToHex() + "." + i.Text;
}
m.ReceiverDescription = s;
#endif
OnScreenUpdated(true);
}
else if (m.Data.StartsWith(DataUpdateScreen))
{
if (m.Data.StartsWith(DataShowStatus))
{
var a = new BordmonitorText(BordmonitorFields.Status, m.Data);
if (e != null)
{
e(a);
}
#if NETMF
m.ReceiverDescription = "BM show status";
#else
m.ReceiverDescription = "BM show status: " + a.Text;
#endif
}
OnScreenUpdated(false);
}
else if (m.Data.StartsWith(DataShowTitle))
{
var a = new BordmonitorText(BordmonitorFields.Title, m.Data);
if (e != null)
{
e(a);
}
#if NETMF
m.ReceiverDescription = "BM show title";
#else
m.ReceiverDescription = "BM show title: " + a.Text;
#endif
OnScreenUpdated();
}
}
}