@@ -67,6 +67,140 @@ static void md_input_zeromq_handle_conn_event(struct md_input_zeromq *miz,
6767 mde_publish_event_obj (miz -> parent , (struct md_event * ) miz -> mce );
6868}
6969
70+ static void md_input_zeromq_radio_cell_loc_geran (struct md_input_zeromq * miz ,
71+ struct json_object * obj )
72+ {
73+ struct md_radio_cell_loc_geran_event * event = radio_cell_loc_geran (obj );
74+
75+ if (!event )
76+ return ;
77+
78+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
79+ free (event );
80+ }
81+
82+ static void md_input_zeromq_radio_grr_cell_resel (struct md_input_zeromq * miz ,
83+ struct json_object * obj )
84+ {
85+ struct md_radio_grr_cell_resel_event * event = radio_grr_cell_resel (obj );
86+
87+ if (!event )
88+ return ;
89+
90+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
91+ free (event );
92+ }
93+
94+ static void md_input_zeromq_radio_gsm_rr_cell_sel_reset_param (struct md_input_zeromq * miz ,
95+ struct json_object * obj )
96+ {
97+ struct md_radio_gsm_rr_cell_sel_reset_param_event * event = radio_gsm_rr_cell_sel_reset_param (obj );
98+
99+ if (!event )
100+ return ;
101+
102+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
103+ free (event );
104+ }
105+
106+ static void md_input_zeromq_radio_gsm_rr_cipher_mode (struct md_input_zeromq * miz ,
107+ struct json_object * obj )
108+ {
109+ struct md_radio_gsm_rr_cipher_mode_event * event = radio_gsm_rr_cipher_mode (obj );
110+
111+ if (!event )
112+ return ;
113+
114+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
115+ free (event );
116+ }
117+
118+ static void md_input_zeromq_radio_gsm_rr_channel_conf (struct md_input_zeromq * miz ,
119+ struct json_object * obj )
120+ {
121+ struct md_radio_gsm_rr_channel_conf_event * event = radio_gsm_rr_channel_conf (obj );
122+
123+ if (!event )
124+ return ;
125+
126+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
127+ free (event );
128+ }
129+
130+ static void md_input_zeromq_radio_wcdma_rrc_state (struct md_input_zeromq * miz ,
131+ struct json_object * obj )
132+ {
133+ struct md_radio_wcdma_rrc_state_event * event = radio_wcdma_rrc_state (obj );
134+
135+ if (!event )
136+ return ;
137+
138+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
139+ free (event );
140+ }
141+
142+ static void md_input_zeromq_radio_wcdma_cell_id (struct md_input_zeromq * miz ,
143+ struct json_object * obj )
144+ {
145+ struct md_radio_wcdma_cell_id_event * event = radio_wcdma_cell_id (obj );
146+
147+ if (!event )
148+ return ;
149+
150+ mde_publish_event_obj (miz -> parent , (struct md_event * ) event );
151+ free (event );
152+ }
153+
154+ static void md_input_zeromq_handle_radio_event (struct md_input_zeromq * miz ,
155+ struct json_object * obj )
156+ {
157+ json_object * event_param_json ;
158+ uint8_t event_param ;
159+
160+ if (!json_object_object_get_ex (obj , "event_param" , & event_param_json )) {
161+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "Missing event type\n" );
162+ return ;
163+ }
164+
165+ memset (miz -> mre , 0 , sizeof (struct md_radio_event ));
166+ miz -> mre -> md_type = META_TYPE_RADIO ;
167+ event_param = (uint8_t ) json_object_get_int (event_param_json );
168+
169+ switch (event_param ) {
170+ case RADIO_EVENT_GSM_RR_CIPHER_MODE :
171+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "GSM_RR_CIPHER_MODE\n" );
172+ md_input_zeromq_radio_gsm_rr_cipher_mode (miz , obj );
173+ break ;
174+ case RADIO_EVENT_GSM_RR_CHANNEL_CONF :
175+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "GSM_RR_CHANNEL_CONF\n" );
176+ md_input_zeromq_radio_gsm_rr_channel_conf (miz , obj );
177+ break ;
178+ case RADIO_EVENT_CELL_LOCATION_GERAN :
179+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "CELL_LOCATION_GERAN\n" );
180+ md_input_zeromq_radio_cell_loc_geran (miz , obj );
181+ break ;
182+ case RADIO_EVENT_GSM_RR_CELL_SEL_RESEL_PARAM :
183+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "GSM_RR_CELL_SEL_RESEL_PARAM\n" );
184+ md_input_zeromq_radio_gsm_rr_cell_sel_reset_param (miz , obj );
185+ break ;
186+ case RADIO_EVENT_GRR_CELL_RESEL :
187+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "GRR_CELL_RESEL\n" );
188+ md_input_zeromq_radio_grr_cell_resel (miz , obj );
189+ break ;
190+ case RADIO_EVENT_WCDMA_RRC_STATE :
191+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "WCDMA_RRC_STATE\n" );
192+ md_input_zeromq_radio_wcdma_rrc_state (miz , obj );
193+ break ;
194+ case RADIO_EVENT_WCDMA_CELL_ID :
195+ META_PRINT_SYSLOG (miz -> parent , LOG_ERR , "WCDMA_CELL_ID\n" );
196+ md_input_zeromq_radio_wcdma_cell_id (miz , obj );
197+ break ;
198+
199+ default :
200+ break ;
201+ }
202+ }
203+
70204static int subscribe_for_topic (const char * topic , struct md_input_zeromq * miz )
71205{
72206 size_t len = strlen (topic );
@@ -89,8 +223,6 @@ static void md_input_zeromq_handle_event(void *ptr, int32_t fd, uint32_t events)
89223 char buf [2048 ] = {0 };
90224 zmq_recv (miz -> zmq_socket , buf , 2048 , 0 );
91225
92- META_PRINT_SYSLOG (miz -> parent , LOG_DEBUG , "Received message: %s\n" , buf );
93-
94226 json_msg = strchr (buf , '{' );
95227 if (json_msg == NULL )
96228 {
@@ -145,7 +277,7 @@ static void md_input_zeromq_handle_event(void *ptr, int32_t fd, uint32_t events)
145277 //md_input_netlink_handle_gps_event(miz, zmqh_obj);
146278 break ;
147279 case META_TYPE_RADIO :
148- //md_input_netlink_handle_radio_event (miz, zmqh_obj);
280+ md_input_zeromq_handle_radio_event (miz , zmqh_obj );
149281 break ;
150282 case META_TYPE_SYSTEM :
151283 //md_input_netlink_handle_system_event(miz, zmqh_obj);
0 commit comments