public CMensaje montarMensaje2() { int tam = (listaEB.Count - 1) * 7; byte[] datos = new byte[tam]; int cont = 0; byte[] aux = new byte[8]; int numPaquetes = (int)listaEB[0].Byte_3; int numDatos = (int)listaEB[0].Byte_1; for (int i = 1; i < listaEB.Count && i <= numPaquetes; i++) { for (int j = 1; j < 8 && cont < tam && cont < numDatos; j++) { aux = listaEB[i].getDatos(); datos[cont] = aux[j]; cont++; } } byte[] auxiliarBytes = new byte[numDatos]; for (int i = 0; i < numDatos; i++) { auxiliarBytes[i] = datos[i]; } CMensaje mensajeRetorno = new CMensaje(); mensajeRetorno.setDatos(auxiliarBytes); string id1 = pasaByteToString(listaEB[0].Byte_6); string id2 = pasaByteToString(listaEB[0].Byte_5); mensajeRetorno.setId(listaEB[0].Id_0 + id1 + id2 + listaEB[0].Id_3); mensajeRetorno.Tipo = listaEB[0].Tipo; return(mensajeRetorno); }
public void exportar() { List <string> mensajesExportar = new List <string>(); String id = txPF.Text + " " + txPS.Text; if (Program.gFrmPpal.listBox2.Items.Count > 0) { for (int i = 0; i < Program.gFrmPpal.listBox2.Items.Count; i++) { string aux = (string)Program.gFrmPpal.listBox2.Items[i]; if (aux.Contains(id)) { mensajesExportar.Add(aux); } } } else { for (int i = 0; i < Program.gFrmPpal.listBox1.Items.Count; i++) { string aux = (string)Program.gFrmPpal.listBox1.Items[i]; if (aux.Contains(id)) { mensajesExportar.Add(aux); } } } List <CMensaje> listaCMensajes = new List <CMensaje>(); for (int i = 0; i < mensajesExportar.Count; i++) { string idMensajes_0 = mensajesExportar[i].Substring(10, 2); string idMensajes_1 = mensajesExportar[i].Substring(13, 2); string idMensajes_2 = mensajesExportar[i].Substring(16, 2); string idMensajes_3 = mensajesExportar[i].Substring(19, 2); string datos = mensajesExportar[i].Substring(23, 23); string tiempo = mensajesExportar[i].Substring(0, 7); CMensaje m = new CMensaje(); m.Id = idMensajes_0 + idMensajes_1 + idMensajes_2 + idMensajes_3; byte[] b = stringDatosTobyte(datos); m.setDatos(b); m.Tiempo = tiempo; listaCMensajes.Add(m); } //Desglosar Mensajes para sacar SPN foreach (CMensaje m in listaCMensajes) { CIdenti identi = new CIdenti(); identi.datos = pasaBytesToString(m.getDatos()); identi.PF = txPF.Text; identi.PS = txPS.Text; identi.SAhex = txSA.Text; identi.tiempo = m.Tiempo; parametrosAuxiliar(identi.PF + identi.PS, identi); } //--------------------------// this.saveFileDialog1.ShowDialog(); string name = this.saveFileDialog1.FileName; if (!name.Trim().Equals("") && this.saveFileDialog1.CheckPathExists) { ListViewItem it; List <ListViewItem> lista = new List <ListViewItem>(); ListViewItem.ListViewSubItemCollection itc; for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Checked) { it = listView1.Items[i]; lista.Add(it); } } //Cargar en lista resto de mensajes if (lista.Count <= 0) { //No hay ningun elemento seleccionado } else { List <string> listaAuxiliar = new List <string>(); foreach (ListViewItem item in lista) { itc = item.SubItems; listaAuxiliar.Add(itc[1].Text); //dsMensajes1.MensajesExport2.Columns.Add(itc[1].Text + " - " + itc[0].Text); //dsMensajes1.MensajesExport2.SPNColumn.ColumnName = itc[1].Text + " - " + itc[0].Text; //dsMensajes1.MensajesExport.AddMensajesExportRow(itc[0].Text, itc[1].Text, itc[2].Text, itc[3].Text, itc[4].Text, ""); dsMensajes1.MensajesExport2.AddMensajesExport2Row(itc[2].Text + " - " + itc[5].Text); } foreach (ListViewItem item2 in general) { itc = item2.SubItems; if (listaAuxiliar.Contains(itc[1].Text)) { dsMensajes1.MensajesExport2.Columns.Add(itc[1].Text + " - " + itc[0].Text); dsMensajes1.MensajesExport2.AddMensajesExport2Row(itc[2].Text + " - " + itc[5].Text); //dsMensajes1.MensajesExport2.SPNColumn.ColumnName = itc[1].Text + " - " + itc[0].Text; } //dsMensajes1.MensajesExport.AddMensajesExportRow(itc[0].Text, itc[1].Text, itc[2].Text, itc[3].Text, itc[4].Text, ""); } dsMensajes1.MensajesExport2.WriteXml(name); } } }
//Cuando se haga click en la lista Extendido private void listBox2_Click(object sender, EventArgs e) { try { if (hiloActivo == false) { string fila = (string)listBox2.SelectedItem; string tiempo = fila.Substring(0, 10); tiempo = tiempo.Trim(); string id = fila.Substring(10, 11); string datos = fila.Substring(23, 23); string mensajeString = id + " " + datos; if (id.Substring(3, 2).Equals("EC")) { //Montar multipaquete CMensaje mensajeEC = new CMensaje(); mensajeEC.Tipo = "01"; id = id.Replace(" ", ""); mensajeEC.Id = id; mensajeEC.setDatos(pasaStringToBytes(datos)); listaEB.Add(mensajeEC); bool correcto = true; mensajeEC.Tiempo = tiempo; //buscar X EB siempre que no encuentre 1 EC for (int i = listBox2.SelectedIndex + 1; i < this.listBox2.Items.Count && correcto; i++) { fila = listBox2.Items[i].ToString(); id = fila.Substring(10, 11); datos = fila.Substring(23, 23); mensajeString = id + " " + datos; if (id.Substring(3, 2).Equals("EB")) { CMensaje mensajeEB = new CMensaje(); mensajeEB.Tipo = "01"; id = id.Replace(" ", ""); mensajeEB.Id = id; mensajeEB.setDatos(pasaStringToBytes(datos)); if (!listaEB.Contains(mensajeEB)) { listaEB.Add(mensajeEB); } } else if (id.Substring(3, 2).Equals("EC")) { correcto = false; } } //var lista = from string s in this.listBox2.Items where s.Contains("EC") select s; //MontarMultiPaquete if (compruebaLista2()) { //dsMensajes.mensajesRow filaAux = this.dsMensajes.mensajes.NewmensajesRow(); CMensaje mensajeAuxiliar = montarMensaje2(); identi.identificador = mensajeAuxiliar.Id; identi.SAhex = string.Format(mensajeAuxiliar.Id_3); identi.PF = string.Format(mensajeAuxiliar.Id_1); identi.PS = string.Format(mensajeAuxiliar.Id_2); identi.PGNhex = identi.PF + identi.PS; string datosAuxiliar2 = pasaBytesToString(mensajeAuxiliar.getDatos()); identi.datos = datosAuxiliar2.Substring(0, 2) + datosAuxiliar2.Substring(2, 2) + datosAuxiliar2.Substring(4, 2) + datosAuxiliar2.Substring(6, 2) + datosAuxiliar2.Substring(8, 2) + datosAuxiliar2.Substring(10, 2) + datosAuxiliar2.Substring(12, 2) + datosAuxiliar2.Substring(14, 2) + datosAuxiliar2.Substring(16, 2) + datosAuxiliar2.Substring(18, 2); prioridad(identi.identificador); identi.PFint = int.Parse(identi.PF, System.Globalization.NumberStyles.HexNumber); Form2 form = new Form2(this.identi); form.ShowDialog(); listaEB.Clear(); } //Form2 form = new Form2(this.identi); //form.ShowDialog(); } else if (id.Substring(3, 2).Equals("EB")) { //Ignorar } else { //Mensaje Normal identi.identificador = mensajeString; identi.SAhex = id.Substring(9, 2); identi.PF = id.Substring(3, 2); identi.PS = id.Substring(6, 2); identi.PGNhex = identi.PF + identi.PS; identi.datos = datos.Substring(0, 2) + datos.Substring(3, 2) + datos.Substring(6, 2) + datos.Substring(9, 2) + datos.Substring(12, 2) + datos.Substring(15, 2) + datos.Substring(18, 2) + datos.Substring(21, 2); prioridad(identi.identificador); identi.PFint = int.Parse(identi.PF, System.Globalization.NumberStyles.HexNumber); identi.tiempo = tiempo; Form2 form = new Form2(this.identi); form.ShowDialog(); } } } catch (Exception exce) { MessageBox.Show("No hay mensajes"); } }