// 通用回调处理函数 private int DoOnGlobalOperation(uint handle, int seq, int opera, int result, ref Global_Opera_t info, IntPtr user, int resverd) { switch (opera) { case (int)SDKOperation.JH_SYSTEM_LOGIN: DoOnLoginResponse(handle, seq, result, info); break; case (int)SDKOperation.JH_SYSTEM_DISCONNECT_OFFLINE: break; case (int)SDKOperation.JH_SYSTEM_RECONNECT_LOGIN: break; case (int)SDKOperation.JH_SYSTEM_LOGOUT: break; case (int)SDKOperation.JH_SYSTEM_NETWAY_REGISTER: DoOnNetwayRegister(handle, seq, result, info); break; default: break; } return(0); }
// 主动注册处理 private void DoOnNetwayRegister(uint handle, int seq, int result, Global_Opera_t info) { registerInfo = (SDK_Register_Info)Marshal.PtrToStructure(info.param1, typeof(SDK_Register_Info)); BeginInvoke(new UpdateUI(WriteStatus), string.Format("收到网由注册请求,来自{0} 地址{1}", registerInfo.id, registerInfo.ip + ':' + registerInfo.port)); NetwaySDK.NW_Login(registerInfo.ip, (ushort)registerInfo.port, edtName.Text, edtPassword.Text, UDCConstDefine.UDC_NW_ENCRYPT_NO, (int)NetwayMode.ACTIVE_MODE); BeginInvoke(new UpdateUI(WriteStatus), string.Format("开始登录网由,用户名:{0} 密码:{1}", edtName.Text, edtPassword.Text)); }
// 登陆回应处理 private void DoOnLoginResponse(uint handle, int seq, int result, Global_Opera_t info) { if (result == (int)SDKErrorCode.SDK_ERROR_SUCCESS) { NetwaySDK.NW_SubscribeAllNodeData(handle, UDCConstDefine.UDC_NW_NODE_DATA_ALL, 1); //1为订阅所有数据 BeginInvoke(new UpdateUI(WriteStatus), string.Format("登录成功,订阅所有数据")); } else if (result == (int)SDKErrorCode.SDK_ERROR_USER_PASSWORD_INVALID) { BeginInvoke(new UpdateUI(WriteStatus), string.Format("登录失败,密码错误")); } else if (result == (int)SDKErrorCode.SDK_ERROR_USER_INVALID_STATUS) { BeginInvoke(new UpdateUI(WriteStatus), string.Format("登录失败,用户会话状态异常")); } else if (result == (int)SDKErrorCode.SDK_ERROR_USER_NOT_EXIST) { BeginInvoke(new UpdateUI(WriteStatus), string.Format("登录失败,用户不存在")); } else if (result == (int)SDKErrorCode.SDK_ERROR_USER_NOT_LOGIN) { BeginInvoke(new UpdateUI(WriteStatus), string.Format("登录失败,用户未登录")); } }