protected bool GetResult(_pms_data_type sdata, _pms_data_type rdata) { bool result = false; if (sdata.cmd == STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_RES) { switch (sdata.status) { case 0: result = true; break; case 1: result = false; break; default: result = false; break; } } else { result = false; } return(result); }
private void SrvReceiver() { int _count = 0; while (_srvLoop) { byte[] _buffer = new byte[1024]; _count = 0; try { _count = _sockSrv.ReceiveFrom(_buffer, SocketFlags.None, ref _remoteep); } catch (SocketException se) { string _msg = string.Format("PMSServer socket receive error: {0}", se.ErrorCode); util.WriteLog(_msg); } if (_count == 0) { continue; } byte[] _databuffer = new byte[_count]; Buffer.BlockCopy(_buffer, 0, _databuffer, 0, _count); _pms_data_type _pmsdata = util.GetObject <_pms_data_type>(_databuffer); if (ReqPMSSetEvent != null) { ReqPMSSetEvent(this, _pmsdata); } } }
// 모닝콜 삭제 public bool ClearMorningCall(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); pms_data_type.status = 0; } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1 }; } _client.Close(); bool _result = false; switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } return(_result); }
public bool CheckIn(_pms_data_type pms_data_type) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return(_result); }
private void SendReceiveMessage() { while (true) { byte[] buffer = null; try { buffer = client.Receive(ref remoteEp); } catch (SocketException se) { string message = string.Format("HotelHelper2 socket receive error: {0}", se.ErrorCode); util.WriteLog(message); } if (buffer == null) { continue; } _pms_reg_t msg = util.GetObject <_pms_reg_t>(buffer); switch (msg.cmd) { case STRUCTS.PMS_REGISTER_RES: if (msg.status == STRUCTS.PMS_STATUS_SUCCESS) { this.expires = msg.expires * 1000; this.RegTimerInit(); this.IsRegistered = true; } break; case STRUCTS.PMS_UNREGISTER_RES: if (msg.status == STRUCTS.PMS_STATUS_SUCCESS) { RegTimerDispose(); this.expires = msg.expires; this.IsRegistered = false; } break; default: _pms_data_type pmsmsg = util.GetObject <_pms_data_type>(buffer); if (PassDevice2PmsEvent != null) { PassDevice2PmsEvent(this, pmsmsg); } break; } } }
void pmsSrv_ReqPMSSetEvent(PMSServer sender, _pms_data_type pmsdata) { //var user = OnlineUsers.Keys.Where(o => o.Context.ClientAddress == context.ClientAddress).Single(); var u = OnlineUsers.Keys.FirstOrDefault(); ResponseFromTossServer r = new ResponseFromTossServer() { Type = CommandType.Message, Data = pmsdata }; if (u != null) { u.Context.Send(JsonConvert.SerializeObject(r)); } }
public void Send(_pms_data_type rdata) { _pms_data_type msg = GetMsg(rdata); byte[] buffer = util.GetBytes(msg); try { client.Send(buffer, buffer.Length); } catch (SocketException ex) { throw ex; } }
protected _pms_data_type GetPolicies4HouseKeep(string code, string ext, string mtime) { _pms_data_type data = new _pms_data_type(); switch (code) { case "A": // 우편물 도착 알림 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 1; break; case "B": // 우편물 도착 알림 취소 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 0; break; case "C": // 모닝콜 설정 data.cmd = STRUCTS.CGI_PMS_SET_MORNING_CALL_REQ; data.extension = ext; string hh = mtime.Substring(0, 2); string mm = mtime.Substring(2, 2); int hour = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh); int minutes = string.IsNullOrEmpty(mm) == true ? 0 : int.Parse(mm); break; case "D": // 모닝콜 취소 data.cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ; data.extension = ext; break; case "J": // DND 취소 break; default: data.cmd = 0; break; } return(data); }
public bool ClearMorningCall2(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext , hour = 255 }; byte[] _sbuffer = util.GetBytes(pms_data_type); _client.Send(_sbuffer, _sbuffer.Length); byte[] _rbuffer = _client.Receive(ref _remoteEP); _client.Close(); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); bool _result = false; switch (pms_data_type.status) { case 0: _result = false; break; case 1: _result = true; break; default: _result = false; break; } return(_result); }
// for House Keep public bool SetHouseKeep(string code, string ext, string mtime) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, mtime); if (pms_sdata.cmd == 0) { return(false); } _pms_data_type pms_rdata = new _pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_rdata = util.GetObject <_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } } catch (SocketException sockex) { util.WriteLog(sockex.Message); // pms_rdata = new _pms_data_type() { cmd = STRUCTS.PMS_CLEAR_FUNCTION_KEY_RES, status = 1 }; result = false; } _client.Close(); return(result); }
// 모닝콜 조회 public _pms_data_type GetMorningCall(string _ext) { IPEndPoint _serverEP; IPEndPoint _remoteEP; UdpClient _client; _pms_data_type pms_data_type; try { _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); _remoteEP = new IPEndPoint(IPAddress.Any, 0); _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_MORNING_CALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); _client.Close(); } catch (SocketException ex) { pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty }; } return(pms_data_type); }
// 모닝콜 조회 public _pms_data_type GetMorningCall(string _ext) { IPEndPoint _serverEP; IPEndPoint _remoteEP; UdpClient _client; _pms_data_type pms_data_type; try { _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); _remoteEP = new IPEndPoint(IPAddress.Any, 0); _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_GET_MORNING_CALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); _client.Close(); } catch (SocketException ex) { pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty }; } return pms_data_type; }
public bool RestoreSystem(_pms_data_type data) { bool result = false; _pms_data_type rdata = new _pms_data_type(); IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; byte[] _sbuffer = util.GetBytes(data); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); rdata = util.GetObject <_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } _client.Close(); if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { if (rdata.status == 0) { result = true; } } return(result); }
public _pms_data_type GetMsg(_pms_data_type rdata) { _pms_data_type msg = new _pms_data_type(); switch (rdata.cmd) { case STRUCTS.PMS_SET_MORNING_CALL_REQ: msg.cmd = STRUCTS.PMS_SET_MORNING_CALL_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_SET_LANGUAGE_REQ: msg.cmd = STRUCTS.PMS_SET_LANGUAGE_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ: msg.cmd = STRUCTS.PMS_REPORT_FUNCTION_KEY_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ: msg.cmd = STRUCTS.PMS_REPORT_MAKEUP_STATUS_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; } return(msg); }
// for House Keep public bool SetHouseKeep(string code, string ext, string mtime) { bool result = false; IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_sdata = this.GetPolicies4HouseKeep(code, ext, mtime); if (pms_sdata.cmd == 0) return false; _pms_data_type pms_rdata = new _pms_data_type(); byte[] _sbuffer = util.GetBytes(pms_sdata); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_rdata = util.GetObject<_pms_data_type>(_rbuffer); if (pms_rdata.status == 0) { result = true; } } catch (SocketException sockex) { util.WriteLog(sockex.Message); // pms_rdata = new _pms_data_type() { cmd = STRUCTS.PMS_CLEAR_FUNCTION_KEY_RES, status = 1 }; result = false; } _client.Close(); return result; }
public bool RestoreSystem(_pms_data_type data) { bool result = false; _pms_data_type rdata = new _pms_data_type(); IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); data.cmd = STRUCTS.CGI_PMS_SET_ALL_REQ; byte[] _sbuffer = util.GetBytes(data); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); rdata = util.GetObject<_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); result = false; } _client.Close(); if (rdata.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { if (rdata.status == 0) { result = true; } } return result; }
public bool ClearMorningCall2(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext , hour = 255 }; byte[] _sbuffer = util.GetBytes(pms_data_type); _client.Send(_sbuffer, _sbuffer.Length); byte[] _rbuffer = _client.Receive(ref _remoteEP); _client.Close(); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); bool _result = false; switch (pms_data_type.status) { case 0: _result = false; break; case 1: _result = true; break; default: _result = false; break; } return _result; }
// 우편물 수령 요청 public bool SetParcel(string _ext, int _value) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ, extension = _ext, post_parcel = _value }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_POST_PARCEL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return _result; }
public void SendReplay(_pms_data_type pmsdata) { h2.Send(pmsdata); }
// 모닝콜 삭제 public bool ClearMorningCall(string _ext) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); pms_data_type.status = 0; } catch(SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1 }; } _client.Close(); bool _result = false; switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } return _result; }
// 모닝콜 설정 public bool SetMorningCall(string _ext, string _week, int _hour, int _minutes, int repeat_week) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORT); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext , week = _week , hour = _hour , minutes = _minutes , try_interval = 3 , repeat_times = 5 , repeat_week = repeat_week , ring_duration = 120 }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); } catch (SocketException e) { pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty }; } _client.Close(); bool _result = false; switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } return _result; }
// 모닝콜 설정 public bool SetMorningCall(string _ext, string _week, int _hour, int _minutes, int repeat_week) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ , extension = _ext , week = _week , hour = _hour , minutes = _minutes , try_interval = 3 , repeat_times = 5 , repeat_week = repeat_week , ring_duration = 120 }; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); } catch (SocketException e) { pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_RES, status = 1, extension = _ext, hour = -1, minutes = -1, try_interval = 0, repeat_times = 0, repeat_week = 0, ring_duration = 0, week = string.Empty }; } _client.Close(); bool _result = false; switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } return(_result); }
protected _pms_data_type GetPolicies4HouseKeep(string code, string ext, string mtime) { _pms_data_type data = new _pms_data_type(); switch (code) { case "A": // 우편물 도착 알림 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 1; break; case "B": // 우편물 도착 알림 취소 data.cmd = STRUCTS.CGI_PMS_SET_POST_PARCEL_REQ; data.extension = ext; data.post_parcel = 0; break; case "C": // 모닝콜 설정 data.cmd = STRUCTS.CGI_PMS_SET_MORNING_CALL_REQ; data.extension = ext; string hh = mtime.Substring(0, 2); string mm = mtime.Substring(2, 2); int hour = string.IsNullOrEmpty(hh) == true ? 0 : int.Parse(hh); int minutes = string.IsNullOrEmpty(mm) == true ? 0 : int.Parse(mm); break; case "D": // 모닝콜 취소 data.cmd = STRUCTS.CGI_PMS_CLEAR_MORNING_CALL_REQ; data.extension = ext; break; case "J": // DND 취소 break; default: data.cmd = 0; break; } return data; }
public _pms_data_type GetMsg(_pms_data_type rdata) { _pms_data_type msg = new _pms_data_type(); switch (rdata.cmd) { case STRUCTS.PMS_SET_MORNING_CALL_REQ: msg.cmd = STRUCTS.PMS_SET_MORNING_CALL_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_SET_LANGUAGE_REQ: msg.cmd = STRUCTS.PMS_SET_LANGUAGE_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ: msg.cmd = STRUCTS.PMS_REPORT_FUNCTION_KEY_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ: msg.cmd = STRUCTS.PMS_REPORT_MAKEUP_STATUS_RES; msg.status = rdata.status; msg.pList = rdata.pList; msg.extension = rdata.extension; break; } return msg; }
private void Relayservice_Device2CorePmsEvent(object sender, _pms_data_type pmsdata) { RoomItem roomitem = null; foreach (var floor in floors) { roomitem = floor.list.FirstOrDefault(x => x.RoomNum.Equals(pmsdata.extension)); if (roomitem == null) continue; else break; } if (roomitem == null) { pmsdata.status = pmsdata.status = STRUCTS.PMS_STATUS_FAIL; relayservice.SendReplay(pmsdata); return; } try { switch (pmsdata.cmd) { case STRUCTS.PMS_SET_MORNING_CALL_REQ: foreach (var floor in floors) { foreach (var room in floor.list) { if (room.RoomNum.Equals(pmsdata.extension)) { room.Hour = pmsdata.hour; room.Minutes = pmsdata.minutes; break; } } } break; case STRUCTS.PMS_SET_LANGUAGE_REQ: foreach (var floor in floors) { foreach (var room in floor.list) { if (room.RoomNum.Equals(pmsdata.extension)) { room.Languages = pmsdata.language.ToString(); break; } } } break; case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ: if (pmsdata.function_key.Equals(fk_cleanroom)) { switch (pmsdata.function_key_cmd) { case 1: // 청소 신청 roomitem.States_Clean = "1"; break; case 2: default: // 청소 신청취소 roomitem.States_Clean = "0"; break; } } else if (pmsdata.function_key.Equals(fk_dnd)) { switch (pmsdata.function_key_cmd) { case 1: // DND 신청 roomitem.States_DnD = "1"; break; case 2: default: // DND 해제 roomitem.States_DnD = "0"; break; } } else if (pmsdata.function_key.Equals(fk_laundry)) { switch (pmsdata.function_key_cmd) { case 1: // 세탁 신청 roomitem.States_Laundary = "1"; break; case 2: default: // 세탁 신청취소 roomitem.States_Laundary = "0"; break; } } else if (pmsdata.function_key.Equals(fk_roomservice)) { switch (pmsdata.function_key_cmd) { case 1: // 룸서비스 신청 break; case 2: default: // 룸서비스 신청취소 break; } } //else if (pmsdata.function_key.Equals(fk_cleaningroom_complete)) //{ // switch (pmsdata.function_key_cmd) // { // case 1: // case 2: // default: // // 청소 완료 // break; // } //} //else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection)) //{ // switch (pmsdata.function_key_cmd) // { // case 1: // case 2: // default: // // 청소 확인 // break; // } //} //else if (pmsdata.function_key.Equals(fk_emergency)) //{ // switch (pmsdata.function_key_cmd) // { // case 1: // // 응급 신청 // break; // case 2: // default: // // 응급 해제 // break; // } //} break; case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ: switch (pmsdata.makeup_room_status) { case 1: // 청소 완료 roomitem.States_Clean = "2"; break; case 2: // 청소 완료 취소 roomitem.States_Clean = "1"; break; case 3: // 청소 점검 완료 roomitem.States_Clean = "3"; break; case 4: // 청소 점검 완료 취소 roomitem.States_Clean = "1"; break; } break; default: // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd); break; } relayservice.SendReplay(pmsdata); } catch (Exception e) { pmsdata.status = pmsdata.status = STRUCTS.PMS_STATUS_FAIL; relayservice.SendReplay(pmsdata); } }
// 체크인/아웃 발신 허용/금지 public bool CheckIn(chkinroom _chkinroom) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); string allowedstr = string.Empty; string forbiddenstr = string.Empty; _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_REQ , extension = _chkinroom.roomnum , language = _chkinroom.language , hour = -1 , minutes = -1 , week = string.Empty }; if (_chkinroom.allowed[0] == "all") { allowedstr = _chkinroom.allowed[0]; } else { for (int i = 0; i < _chkinroom.allowed.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.allowed[i])) continue; if (string.IsNullOrEmpty(allowedstr)) { allowedstr += _chkinroom.allowed[i]; } else { allowedstr += string.Format(",{0}", _chkinroom.allowed[i]); } } } if (_chkinroom.forbidden[0] == "all") { forbiddenstr = _chkinroom.forbidden[0]; } else { for (int i = 0; i < _chkinroom.forbidden.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.forbidden[i])) continue; if (string.IsNullOrEmpty(forbiddenstr)) { forbiddenstr += _chkinroom.forbidden[i]; } else { forbiddenstr += string.Format(",{0}", _chkinroom.forbidden[i]); } } } pms_data_type.allowedPrefix = allowedstr; pms_data_type.forbiddenPrefix = forbiddenstr; //pms_data_type.forbiddenPrefix = ""; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject<_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return _result; }
protected bool GetResult(_pms_data_type sdata, _pms_data_type rdata) { bool result = false; if (sdata.cmd == STRUCTS.CGI_PMS_CLEAR_FUNCTION_KEY_RES) { switch (sdata.status) { case 0: result = true; break; case 1: result = false; break; default: result = false; break; } } else { result = false; } return result; }
private void H2_PassDevice2PmsEvent(object sender, _pms_data_type pmsdata) { if (Device2CorePmsEvent != null) { Device2CorePmsEvent(this, pmsdata); } if (RunType == RunningType.CORETREE) { return; } string t2_code = string.Empty; string t2_emer = "0"; string t2_dnd = "0"; string t2_mur = "0"; string t2_txt1 = string.Empty; switch (pmsdata.cmd) { case STRUCTS.PMS_SET_MORNING_CALL_REQ: t2_code = "C"; DateTime nowdate = DateTime.Now; DateTime mcalldate = DateTime.Parse(string.Format("{0}-{1}-{2} {3:D2}:{4:D2}:00", nowdate.Year, nowdate.Month, nowdate.Day, pmsdata.hour, pmsdata.minutes)); TimeSpan ts = mcalldate - nowdate; if (ts.TotalSeconds >= 0) { t2_txt1 = mcalldate.ToString("yyyyMMddHHmm"); } else { nowdate.AddSeconds(-(ts.TotalSeconds)); t2_txt1 = nowdate.ToString("yyyyMMddHHmm"); } break; //case STRUCTS.PMS_CLEAR_MORNING_CALL_REQ: // t2_code = "D"; // break; case STRUCTS.PMS_SET_LANGUAGE_REQ: break; case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ: if (pmsdata.function_key.Equals(fk_cleanroom)) { switch (pmsdata.function_key_cmd) { case 1: t2_mur = "1"; break; case 2: default: t2_mur = "0"; break; } } else if (pmsdata.function_key.Equals(fk_dnd)) { switch (pmsdata.function_key_cmd) { case 1: t2_dnd = "1"; break; case 2: default: t2_dnd = "0"; break; } } else if (pmsdata.function_key.Equals(fk_laundry)) { switch (pmsdata.function_key_cmd) { case 1: t2_code = "G"; break; case 2: default: t2_code = "H"; break; } } else if (pmsdata.function_key.Equals(fk_roomservice)) { switch (pmsdata.function_key_cmd) { case 1: t2_code = "E"; break; case 2: default: t2_code = "F"; break; } } else if (pmsdata.function_key.Equals(fk_cleaningroom_complete)) { switch (pmsdata.function_key_cmd) { case 1: case 2: default: t2_code = "0"; break; } } else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection)) { switch (pmsdata.function_key_cmd) { case 1: case 2: default: t2_code = "9"; break; } } else if (pmsdata.function_key.Equals(fk_emergency)) { switch (pmsdata.function_key_cmd) { case 1: t2_emer = "1"; break; case 2: default: t2_emer = "0"; break; } } break; case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ: switch (pmsdata.makeup_room_status) { case 1: t2_code = "0"; break; case 2: t2_code = "2"; break; case 3: t2_code = "9"; break; case 4: t2_code = "2"; break; } break; default: // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd); break; } using (MSDBHelper db = new MSDBHelper(DBServer)) { string ext = string.Format("{0:D4}", int.Parse(pmsdata.extension)); string sql = string.Format("insert into INF_CT02 ( T2_ROOM, T2_CODE, T2_EMER, T2_DND, T2_MUR, T2_DATE, T2_TXT1 ) values ( '{0}', '{1}', '{2}', '{3}', '{4}', getdate(), '{5}' )", sitecode + ext, t2_code, t2_emer, t2_dnd, t2_mur, t2_txt1); db.Sql = sql; try { db.Open(); db.BeginTran(); int count = db.GetEffectedCount(); db.Commit(); h2.Send(pmsdata); } catch (SqlException e) { util.WriteLog(e.Message); db.Rollback(); pmsdata.status = STRUCTS.PMS_STATUS_FAIL; h2.Send(pmsdata); } catch (System.Net.Sockets.SocketException ex) { util.WriteLog(ex.Message); } } }
private void H2_PassDevice2PmsEvent(object sender, _pms_data_type pmsdata) { if (Device2CorePmsEvent != null) Device2CorePmsEvent(this, pmsdata); if (RunType == RunningType.CORETREE) return; string t2_code = string.Empty; string t2_emer = "0"; string t2_dnd = "0"; string t2_mur = "0"; string t2_txt1 = string.Empty; switch (pmsdata.cmd) { case STRUCTS.PMS_SET_MORNING_CALL_REQ: t2_code = "C"; DateTime nowdate = DateTime.Now; DateTime mcalldate = DateTime.Parse(string.Format("{0}-{1}-{2} {3:D2}:{4:D2}:00", nowdate.Year, nowdate.Month, nowdate.Day, pmsdata.hour, pmsdata.minutes)); TimeSpan ts = mcalldate - nowdate; if (ts.TotalSeconds >= 0) { t2_txt1 = mcalldate.ToString("yyyyMMddHHmm"); } else { nowdate.AddSeconds(-(ts.TotalSeconds)); t2_txt1 = nowdate.ToString("yyyyMMddHHmm"); } break; //case STRUCTS.PMS_CLEAR_MORNING_CALL_REQ: // t2_code = "D"; // break; case STRUCTS.PMS_SET_LANGUAGE_REQ: break; case STRUCTS.PMS_REPORT_FUNCTION_KEY_REQ: if (pmsdata.function_key.Equals(fk_cleanroom)) { switch (pmsdata.function_key_cmd) { case 1: t2_mur = "1"; break; case 2: default: t2_mur = "0"; break; } } else if (pmsdata.function_key.Equals(fk_dnd)) { switch (pmsdata.function_key_cmd) { case 1: t2_dnd = "1"; break; case 2: default: t2_dnd = "0"; break; } } else if (pmsdata.function_key.Equals(fk_laundry)) { switch (pmsdata.function_key_cmd) { case 1: t2_code = "G"; break; case 2: default: t2_code = "H"; break; } } else if (pmsdata.function_key.Equals(fk_roomservice)) { switch (pmsdata.function_key_cmd) { case 1: t2_code = "E"; break; case 2: default: t2_code = "F"; break; } } else if (pmsdata.function_key.Equals(fk_cleaningroom_complete)) { switch (pmsdata.function_key_cmd) { case 1: case 2: default: t2_code = "0"; break; } } else if (pmsdata.function_key.Equals(fk_cleaningroom_inspection)) { switch (pmsdata.function_key_cmd) { case 1: case 2: default: t2_code = "9"; break; } } else if (pmsdata.function_key.Equals(fk_emergency)) { switch (pmsdata.function_key_cmd) { case 1: t2_emer = "1"; break; case 2: default: t2_emer = "0"; break; } } break; case STRUCTS.PMS_REPORT_MAKEUP_STATUS_REQ: switch (pmsdata.makeup_room_status) { case 1: t2_code = "0"; break; case 2: t2_code = "2"; break; case 3: t2_code = "9"; break; case 4: t2_code = "2"; break; } break; default: // Debug.WriteLine("Pmsserver_ReqPMSSetEvent: " + pmsdata.function_key + " // " + pmsdata.function_key_cmd); break; } using (MSDBHelper db = new MSDBHelper(DBServer)) { string ext = string.Format("{0:D4}", int.Parse(pmsdata.extension)); string sql = string.Format("insert into INF_CT02 ( T2_ROOM, T2_CODE, T2_EMER, T2_DND, T2_MUR, T2_DATE, T2_TXT1 ) values ( '{0}', '{1}', '{2}', '{3}', '{4}', getdate(), '{5}' )", sitecode + ext, t2_code, t2_emer, t2_dnd, t2_mur, t2_txt1); db.Sql = sql; try { db.Open(); db.BeginTran(); int count = db.GetEffectedCount(); db.Commit(); h2.Send(pmsdata); } catch (SqlException e) { util.WriteLog(e.Message); db.Rollback(); pmsdata.status = STRUCTS.PMS_STATUS_FAIL; h2.Send(pmsdata); } catch (System.Net.Sockets.SocketException ex) { util.WriteLog(ex.Message); } } }
// 체크인/아웃 발신 허용/금지 public bool CheckIn(chkinroom _chkinroom) { IPEndPoint _serverEP = new IPEndPoint(IPAddress.Parse(PBXIP), PBXPORTCGI); IPEndPoint _remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpClient _client = new UdpClient(); _client.Client.ReceiveTimeout = UDP_WAITING_MISEC; _client.Connect(_serverEP); string allowedstr = string.Empty; string forbiddenstr = string.Empty; _pms_data_type pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_REQ , extension = _chkinroom.roomnum , language = _chkinroom.language , hour = -1 , minutes = -1 , week = string.Empty }; if (_chkinroom.allowed[0] == "all") { allowedstr = _chkinroom.allowed[0]; } else { for (int i = 0; i < _chkinroom.allowed.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.allowed[i])) { continue; } if (string.IsNullOrEmpty(allowedstr)) { allowedstr += _chkinroom.allowed[i]; } else { allowedstr += string.Format(",{0}", _chkinroom.allowed[i]); } } } if (_chkinroom.forbidden[0] == "all") { forbiddenstr = _chkinroom.forbidden[0]; } else { for (int i = 0; i < _chkinroom.forbidden.Length; i++) { if (string.IsNullOrEmpty(_chkinroom.forbidden[i])) { continue; } if (string.IsNullOrEmpty(forbiddenstr)) { forbiddenstr += _chkinroom.forbidden[i]; } else { forbiddenstr += string.Format(",{0}", _chkinroom.forbidden[i]); } } } pms_data_type.allowedPrefix = allowedstr; pms_data_type.forbiddenPrefix = forbiddenstr; //pms_data_type.forbiddenPrefix = ""; byte[] _sbuffer = util.GetBytes(pms_data_type); byte[] _rbuffer = null; //_cgi_res_hdr cgi_res_hdr; try { _client.Send(_sbuffer, _sbuffer.Length); _rbuffer = _client.Receive(ref _remoteEP); pms_data_type = util.GetObject <_pms_data_type>(_rbuffer); } catch (SocketException sockex) { util.WriteLog(sockex.Message); pms_data_type = new _pms_data_type() { cmd = STRUCTS.CGI_PMS_SET_ALL_RES, status = 1 }; } _client.Close(); bool _result = false; if (pms_data_type.cmd == STRUCTS.CGI_PMS_SET_ALL_RES) { switch (pms_data_type.status) { case 0: _result = true; break; case 1: _result = false; break; default: _result = false; break; } } else { _result = false; } return(_result); }
void pmsSrv_ReqPMSSetEvent(PMSServer sender, _pms_data_type pmsdata) { //var user = OnlineUsers.Keys.Where(o => o.Context.ClientAddress == context.ClientAddress).Single(); var u = OnlineUsers.Keys.FirstOrDefault(); ResponseFromTossServer r = new ResponseFromTossServer() { Type = CommandType.Message, Data = pmsdata }; if (u != null) u.Context.Send(JsonConvert.SerializeObject(r)); }