public DailyBroadcast.StopPorgram GetData() { try { if (DailyProgram == null) { DailyProgram = new DailyBroadcast.StopPorgram(); } DailyCmdProgramStop pro = new DailyCmdProgramStop(); DailyProgram.Program = pro; DailyProgram.NetID = Convert.ToInt16(textNetID.Text.Trim()); DailyProgram.TSID = Convert.ToInt16(textTSID.Text.Trim()); DailyProgram.ServiceID = Convert.ToInt16(textServiceID.Text.Trim()); DailyProgram.PCR_PID = Convert.ToInt16(textPCR_PID.Text.Trim()); DailyProgram.Program_PID = Convert.ToInt16(textProgram_PID.Text.Trim()); DailyProgram.B_Address_type = pnlAddressType.GetAddressType(); DailyProgram.Program.list_Terminal_Address = pnlTerminalAddress.GetData(); return(DailyProgram); } catch { return(null); } }
private void ChanngeProgramState(DataGridViewCellEventArgs e, ChangeProgram pro) { if ((MdiParent as EBMMain).IsStartStream) { if ((string)dgvChangeProgram[e.ColumnIndex, e.RowIndex].Value == "停止广播") { DailyBroadcastTable table = (MdiParent as EBMMain).EbMStream.Daily_Broadcast_Table; if (table == null) { GetDailyBroadcastTable(ref table); } List <DailyCmd> list = table.list_daily_cmd; foreach (var l in list) { if (l.B_Daily_cmd_tag == 1) { if ((short)((l.Br_Daily_cmd_char[8] << 8) + l.Br_Daily_cmd_char[9]) == pro.Program_PID) { list.Remove(l); break; } } } DailyCmdProgramStop stop = new DailyCmdProgramStop { B_Address_type = pro.B_Address_type, list_Terminal_Address = pro.Program.list_Terminal_Address, NetID = pro.NetID, PCR_PID = Convert.ToInt16(pro.PCR_PID), Program_PID = pro.Program_PID, ServiceID = pro.ServiceID, TSID = pro.TSID, }; list.Add(stop.GetCmd()); table.list_daily_cmd = list; (MdiParent as EBMMain).EbMStream.Daily_Broadcast_Table = table; // (MdiParent as EBMMain).EbMStream.SignatureCallbackRef = new EBMStream.SignatureCallBackDelegateRef(Calcle.SignatureFunc);//每次在 Initialization()之前调用 (MdiParent as EBMMain).EbMStream.Initialization(); (MdiParent as EBMMain).UpdateDataText(); dgvChangeProgram[e.ColumnIndex, e.RowIndex].Value = "开始广播"; pro.BroadcastStatus = "已停止"; } else if ((string)dgvChangeProgram[e.ColumnIndex, e.RowIndex].Value == "开始广播") { pro.SendState = true; DailyBroadcastTable table = (MdiParent as EBMMain).EbMStream.Daily_Broadcast_Table; if (table == null) { GetDailyBroadcastTable(ref table); } List <DailyCmd> list = table.list_daily_cmd; foreach (var l in list) { if (l.B_Daily_cmd_tag == 2) { if ((short)((l.Br_Daily_cmd_char[8] << 8) + l.Br_Daily_cmd_char[9]) == pro.Program_PID) { list.Remove(l); break; } } } list.Add(pro.Program.GetCmd()); table.list_daily_cmd = list; (MdiParent as EBMMain).EbMStream.Daily_Broadcast_Table = table; // (MdiParent as EBMMain).EbMStream.SignatureCallbackRef = new EBMStream.SignatureCallBackDelegateRef(Calcle.SignatureFunc);//每次在 Initialization()之前调用 (MdiParent as EBMMain).EbMStream.Initialization(); dgvChangeProgram[e.ColumnIndex, e.RowIndex].Value = "停止广播"; pro.BroadcastStatus = "正在广播"; } } dgvChangeProgram.Invalidate(dgvChangeProgram.GetRowDisplayRectangle(e.RowIndex, true)); }