private void sort_process() { if (flag_sort_type == MSG_SORT.NONE) { return; } int len = 0; for (int i = 0; i < GetCanBufLen(); i++) { if (GetCanBufData(i).id > 0) { len = i; } } for (int i = 0; i < len; i++) { for (int j = 0; j < len; j++) { if (flag_sort_type == MSG_SORT.ID) { if (can_buf[j].id > can_buf[j + 1].id) { Can_Data_Change(ref can_buf[j], ref can_buf[j + 1]); } } else if (flag_sort_type == MSG_SORT.PERIOD) { if (can_buf[j + 1].period > can_buf[j].period * 1.2) { Can_Data_Change(ref can_buf[j], ref can_buf[j + 1]); } else if (can_buf[j + 1].period > can_buf[j].period * 0.8) { if (can_buf[j].id > can_buf[j + 1].id) { Can_Data_Change(ref can_buf[j], ref can_buf[j + 1]); } } } else { break; } } } flag_sort_type = MSG_SORT.NONE; }
public SysCan() { version = null; flag_monitor = false; flag_overflow = false; flag_rx_msg = false; flag_sort_type = MSG_SORT.NONE; can_tmp.data = new byte[8]; can_buf = new Can_Data[can_buf_len]; for (int i = 0; i < can_buf_len; i++) { can_buf[i].id = -1; can_buf[i].data = new byte[8]; } }
public void list_sort(MSG_SORT type) { flag_sort_type = type; }