public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x1210 value = new JT808_0x1210(); value.MakerID = reader.ReadString(7); value.AlarmIdentification = new AlarmIdentificationProperty { TerminalID = reader.ReadString(7), Time = reader.ReadDateTime6(), SN = reader.ReadByte(), AttachCount = reader.ReadByte(), Retain = reader.ReadByte() }; value.AlarmId = reader.ReadString(32); value.InfoType = reader.ReadByte(); value.AttachCount = reader.ReadByte(); if (value.AttachCount > 0) { value.AttachInfos = new List <AttachProperty>(); for (int i = 0; i < value.AttachCount; i++) { AttachProperty attachProperty = new AttachProperty(); attachProperty.FileNameLength = reader.ReadByte(); attachProperty.FileName = reader.ReadString(attachProperty.FileNameLength); attachProperty.FileSize = reader.ReadUInt32(); value.AttachInfos.Add(attachProperty); } } return(value); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x1210 value = new JT808_0x1210(); string makerIdHex = reader.ReadVirtualArray(30).ToArray().ToHexString(); value.TerminalId = reader.ReadString(30); writer.WriteString($"[{makerIdHex}]终端ID", value.TerminalId); value.AlarmIdentification = new AlarmIdentificationProperty(); string terminalIdHex = reader.ReadVirtualArray(30).ToArray().ToHexString(); value.AlarmIdentification.TerminalId = reader.ReadString(30); value.AlarmIdentification.Time = reader.ReadDateTime_yyMMddHHmmss(); value.AlarmIdentification.SN = reader.ReadByte(); value.AlarmIdentification.AttachCount = reader.ReadByte(); value.AlarmIdentification.Retain1 = reader.ReadByte(); value.AlarmIdentification.Retain2 = reader.ReadByte(); writer.WriteString($"[{terminalIdHex}]终端ID", value.AlarmIdentification.TerminalId); writer.WriteString($"[{value.AlarmIdentification.Time.ToString("yyMMddHHmmss")}]日期时间", value.AlarmIdentification.Time.ToString("yyyy-MM-dd HH:mm:ss")); writer.WriteNumber($"[{value.AlarmIdentification.SN.ReadNumber()}]序号", value.AlarmIdentification.SN); writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount); writer.WriteNumber($"[{value.AlarmIdentification.Retain1.ReadNumber()}]预留1", value.AlarmIdentification.Retain1); writer.WriteNumber($"[{value.AlarmIdentification.Retain2.ReadNumber()}]预留2", value.AlarmIdentification.Retain2); string alarmIdHex = reader.ReadVirtualArray(32).ToArray().ToHexString(); value.AlarmId = reader.ReadString(32); writer.WriteString($"[{alarmIdHex}]平台给报警分配的唯一编号", value.AlarmId); value.InfoType = reader.ReadByte(); writer.WriteNumber($"[{value.InfoType.ReadNumber()}]信息类型", value.InfoType); value.AttachCount = reader.ReadByte(); writer.WriteNumber($"[{value.AttachCount.ReadNumber()}]附件数量", value.AttachCount); if (value.AttachCount > 0) { writer.WriteStartArray("附件信息列表"); for (int i = 0; i < value.AttachCount; i++) { writer.WriteStartObject(); AttachProperty attachProperty = new AttachProperty(); attachProperty.FileNameLength = reader.ReadByte(); writer.WriteNumber($"[{attachProperty.FileNameLength.ReadNumber()}]文件名称长度", attachProperty.FileNameLength); string fileNameHex = reader.ReadVirtualArray(attachProperty.FileNameLength).ToArray().ToHexString(); attachProperty.FileName = reader.ReadString(attachProperty.FileNameLength); writer.WriteString($"[{fileNameHex}]文件名称", attachProperty.FileName); attachProperty.FileSize = reader.ReadUInt32(); writer.WriteNumber($"[{ attachProperty.FileSize.ReadNumber()}]文件大小", attachProperty.FileSize); writer.WriteEndObject(); } writer.WriteEndArray(); } }
private void PasswordChanged(object sender, RoutedEventArgs e) { _model.ResetError(); if (!(sender is PasswordBox box)) { return; } var pwd = AttachProperty.GetPassword(box); if (pwd != box.Password) { AttachProperty.SetPassword(box, box.Password); } }
public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x1210 jT808_0X1210 = new JT808_0x1210(); jT808_0X1210.TerminalID = reader.ReadString(7); jT808_0X1210.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); jT808_0X1210.AlarmId = reader.ReadString(32); jT808_0X1210.InfoType = reader.ReadByte(); jT808_0X1210.AttachCount = reader.ReadByte(); if (jT808_0X1210.AttachCount > 0) { jT808_0X1210.AttachInfos = new List <AttachProperty>(); for (int i = 0; i < jT808_0X1210.AttachCount; i++) { AttachProperty attachProperty = new AttachProperty(); attachProperty.FileNameLength = reader.ReadByte(); attachProperty.FileName = reader.ReadString(attachProperty.FileNameLength); attachProperty.FileSize = reader.ReadUInt32(); jT808_0X1210.AttachInfos.Add(attachProperty); } } return(jT808_0X1210); }
/// <summary> /// Add an attachment /// </summary> /// <param name="sender">The sender of the event</param> /// <param name="e">The event arguments</param> private void btnAdd_Click(object sender, EventArgs e) { string desc; if (txtFilename.Text.Trim().Length == 0) { MessageBox.Show("A filename is required", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtFilename.Focus(); return; } if (txtFormat.Text.Trim().Length == 0 && chkInline.Checked) { MessageBox.Show("A format is required for inline attachments", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtFormat.Focus(); return; } try { this.Cursor = Cursors.WaitCursor; AttachProperty a = new AttachProperty { FormatType = (txtFormat.Text.Trim().Length == 0) ? null : txtFormat.Text }; // If not inline, store the filename. If inline, store the data from the file. if (!chkInline.Checked) { a.ValueLocation = ValLocValue.Uri; a.Value = txtFilename.Text; desc = String.Format("External - {0}, {1}", a.FormatType, a.Value); } else { using (var fs = new FileStream(txtFilename.Text, FileMode.Open, FileAccess.Read)) { byte[] byData = new byte[fs.Length]; fs.Read(byData, 0, byData.Length); a.ValueLocation = ValLocValue.Binary; a.SetAttachmentBytes(byData); } desc = String.Format("Inline - {0}", a.FormatType); } attach.Add(a); lbAttachments.Items.Add(desc); } catch (Exception ex) { string error = String.Format("Unable to add attachment:\n{0}", ex.Message); if (ex.InnerException != null) { error += ex.InnerException.Message + "\n"; if (ex.InnerException.InnerException != null) { error += ex.InnerException.InnerException.Message; } } System.Diagnostics.Debug.Write(ex); MessageBox.Show(error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.Cursor = Cursors.Default; } this.SetButtonStates(); }