protected override void processReceivedJSONMessage(string receivedJSONmode, string message, WebSocketSession session) { var sessionparam = (SSMCOMWebsocketSessionParam)session.Items["Param"]; switch (receivedJSONmode) { //SSM COM all reset case (ResetJSONFormat.ModeCode): sessionparam.reset(); send_response_msg(session, "SSMCOM session RESET. All send parameters are disabled."); break; case (SSMCOMReadJSONFormat.ModeCode): SSMCOMReadJSONFormat msg_obj_ssmread = JsonConvert.DeserializeObject <SSMCOMReadJSONFormat>(message); msg_obj_ssmread.Validate(); SSMParameterCode target_code = (SSMParameterCode)Enum.Parse(typeof(SSMParameterCode), msg_obj_ssmread.code); bool flag = msg_obj_ssmread.flag; if (msg_obj_ssmread.read_mode == SSMCOMReadJSONFormat.FastReadModeCode) { sessionparam.FastSendlist[target_code] = flag; } else { sessionparam.SlowSendlist[target_code] = flag; } send_response_msg(session, "SSMCOM session read flag for : " + target_code.ToString() + " read_mode :" + msg_obj_ssmread.read_mode + " set to : " + flag.ToString()); break; case (SSMSLOWREADIntervalJSONFormat.ModeCode): SSMSLOWREADIntervalJSONFormat msg_obj_interval = JsonConvert.DeserializeObject <SSMSLOWREADIntervalJSONFormat>(message); msg_obj_interval.Validate(); ssmcom1.SlowReadInterval = msg_obj_interval.interval; send_response_msg(session, "SSMCOM slowread interval to : " + msg_obj_interval.interval.ToString()); break; default: throw new JSONFormatsException("Unsuppoted mode property."); } }
// ssmcom WS client event private void _ssmcom_ws_client_Opened(object sender, EventArgs e) { //Sleep 5sec in order to wait until the session is registered to the SSM WS session snapshot. //Thread.Sleep(5000); SSMSLOWREADIntervalJSONFormat ssmcom_slowread_json = new SSMSLOWREADIntervalJSONFormat(); ssmcom_slowread_json.interval = 20; _ssmcom_ws_client.Send(ssmcom_slowread_json.Serialize()); SSMCOMReadJSONFormat ssmcom_read_json1 = new SSMCOMReadJSONFormat(); ssmcom_read_json1.code = SSMParameterCode.Fuel_Injection_1_Pulse_Width.ToString(); ssmcom_read_json1.read_mode = SSMCOMReadJSONFormat.SlowReadModeCOde; ssmcom_read_json1.flag = true; _ssmcom_ws_client.Send(ssmcom_read_json1.Serialize()); SSMCOMReadJSONFormat ssmcom_read_json2 = new SSMCOMReadJSONFormat(); ssmcom_read_json2.code = SSMParameterCode.Vehicle_Speed.ToString(); ssmcom_read_json2.read_mode = SSMCOMReadJSONFormat.FastReadModeCode; ssmcom_read_json2.flag = true; _ssmcom_ws_client.Send(ssmcom_read_json2.Serialize()); SSMCOMReadJSONFormat ssmcom_read_json3 = new SSMCOMReadJSONFormat(); ssmcom_read_json3 = new SSMCOMReadJSONFormat(); ssmcom_read_json3.code = SSMParameterCode.Vehicle_Speed.ToString(); ssmcom_read_json3.read_mode = SSMCOMReadJSONFormat.SlowReadModeCOde; ssmcom_read_json3.flag = true; _ssmcom_ws_client.Send(ssmcom_read_json3.Serialize()); SSMCOMReadJSONFormat ssmcom_read_json4 = new SSMCOMReadJSONFormat(); ssmcom_read_json4 = new SSMCOMReadJSONFormat(); ssmcom_read_json4.code = SSMParameterCode.Fuel_Injection_1_Pulse_Width.ToString(); ssmcom_read_json4.read_mode = SSMCOMReadJSONFormat.FastReadModeCode; ssmcom_read_json4.flag = true; _ssmcom_ws_client.Send(ssmcom_read_json4.Serialize()); }