private void WriteValue(MmsValue m, string dos, ReasonForInclusion reason) { try { switch (m.GetType()) { case MmsType.MMS_ARRAY: case MmsType.MMS_STRUCTURE: var size = m.Size(); foreach (MmsValue e in m) { WriteValue(e, dos, reason); } break; case MmsType.MMS_BOOLEAN: _handler?.Invoke(dos, m.GetBoolean() ? 1 : 0, reason); break; case MmsType.MMS_INTEGER: _handler?.Invoke(dos, m.ToInt64(), reason); break; case MmsType.MMS_FLOAT: _handler?.Invoke(dos, m.ToDouble(), reason); break; case MmsType.MMS_UNSIGNED: _handler?.Invoke(dos, m.ToUint32(), reason); break; case MmsType.MMS_UTC_TIME: //Console.WriteLine(dos + " : " + new DateTime(1970, 1, 1).AddMilliseconds(m.GetUtcTimeInMs()).ToString()); break; case MmsType.MMS_BIT_STRING: //Console.WriteLine(dos + " : " + m + " (Bit)"); break; case MmsType.MMS_STRING: case MmsType.MMS_OCTET_STRING: case MmsType.MMS_VISIBLE_STRING: case MmsType.MMS_GENERALIZED_TIME: case MmsType.MMS_BINARY_TIME: case MmsType.MMS_BCD: case MmsType.MMS_OBJ_ID: case MmsType.MMS_DATA_ACCESS_ERROR: default: Console.WriteLine(dos + " : " + m + " - " + m.GetType()); break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
static void ValueHandler(string address, double value, ReasonForInclusion reason) { Console.WriteLine(address + " : " + value + " - Reason:" + reason.ToString()); }