void Receive() { intersections.AddRange(intersectionsHolder.GetComponentsInChildren <IntersectionComponent>()); //tf = TFHolder.GetComponent<sim_map>(); //lat = tf.lat; //lon = tf.lon; lat = pos.x - tf_x; lon = pos.z - tf_y; foreach (var item in intersections) { if (item.intersection_region > 0) { var msg = new V2x.single_spat_msg(); msg = item.Traffic_Spat_intersection_info(); id_region = msg.single_id_region; single_group = msg.single_signal_group; single_movement = msg.single_movement_name; movement_cnt = msg.movement_count; single_event_state = msg.single_eventstate; single_min_endtime = msg.single_minendtime; SendV_x(); } else { continue; } single_group.Clear(); single_movement.Clear(); single_event_state.Clear(); single_min_endtime.Clear(); } intersections.Clear(); }
//HW_start public V2x.single_spat_msg Traffic_Spat_intersection_info() { var msg = new V2x.single_spat_msg(); msg.single_id_region = intersection_region; single_Sig_group.Clear(); single_Move_name.Clear(); single_Event_state.Clear(); single_Min_end_time.Clear(); //currentlightGroups.AddRange(transform.GetComponentsInChildren<IntersectionTrafficLightSetComponent>()); foreach (var item1 in lightGroups) { //currentIntersectionC.AddRange(transform.GetComponentsInChildren<IntersectionLightComponent>()); //currentIntersectionC.Lenght; //single_Event_state.Add(item1.event_state); //single_Min_end_time.Add(item1.min_endtime); foreach (var item2 in item1.intersectionLightC) { single_Sig_group.Add(item2.signal_group); single_Move_name.Add(item2.movement_name); } } foreach (var item in currentTrafficLightSet) { single_Event_state.Add(item.event_state); single_Min_end_time.Add(item.min_endtime); } msg.movement_count = (uint)single_Move_name.Count; msg.single_signal_group = single_Sig_group; msg.single_movement_name = single_Move_name; msg.single_eventstate = single_Event_state; msg.single_minendtime = single_Min_end_time; return(msg); }//HW_end
public V2x.single_spat_msg Traffic_light_Info() { var msg = new V2x.single_spat_msg() { single_signal_group = signal_group, single_movement_name = movement_name, }; return(msg); }
void ServerCommunication() { intersections.AddRange( intersectionsHolder.GetComponentsInChildren <Inters ectionComponent> () ); foreach (var item in intersections) { if (item.intersection_region > 0) { var msg = new V2x.single_spat_msg(); msg = item.Traffic_Spat_intersection_info(); id_region = (int)msg.single_id_region; single_group = msg.single_signal_group; movement_cnt = (int)msg.movement_count; single_event_state = msg.single_eventstate; single_min_endtime = msg.single_minendtime; timer += Time.deltaTime; if (timer > 1.0 f) { String tmp = String.Format("{0} times try: ", counter); NetworkStream stream = Client.GetStream(); if (Client != null) { try { uint[] signal_group = single_group.ToArray(); uint[] event_state = single_event_state.ToArray(); uint[] min_endtime = single_min_endtime.ToArray(); sz = 0; IntPtr ptr = return_spat( ref sz, id_region, movement_cnt, signal_group, event_state, min_endtime ); //, single_move); _face = new obu_tcp_header[1]; _face[0].packet_type = 0x5432; _face[0].current_sequence = 99; _face[0].payload_size = 11; _face[0].device_type = 0x01; _face[0].device_id = new byte[3]; _face[0].device_id[0] = 0x11; _face[0].device_id[1] = 0x11; _face[0].device_id[2] = 0x11; byte[] header = new byte[sz]; Debug.Log("hello" + header.Length); Marshal.Copy(ptr, header, 0, header.Length); Marshal.FreeHGlobal(ptr); Debug.Log("sz"); Array.Copy(header, 0, sendBuffer, 0, sz); obu_tcp_header o_tmp = ByteToStruct <obu_tcp_header>(sendBuffer); stream.Write(sendBuffer, 0, sz); tmp += "Success \n" + ptr + "\n" + _face[0].packet_type + "\n" + face[0].current_sequence + "\n" + _face[0].payload_size + "\n" + _face[0].device_type + "\n" + _face[0].device_id[0] + "\n" + _face[0].device_id[1] + "\n" + _face[0].device_id[2]; //+"\n"+bsm; ConsoleMessage(tmp); } catch (Exception e) { tmp += "Exception: " + e.Message; ConsoleMessage(tmp); Shutdown(); } } counter++; timer = 0.0 f; } } else { continue; } single_group.Clear(); single_event_state.Clear(); single_min_endtime.Clear(); } intersections.Clear(); }