static void OnConnectionStatus2(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1) { if (size1 > 0) { Console.WriteLine("222222" + userLogin.ToFormattedStringLong()); } else { Console.WriteLine("222222" + status); } }
protected virtual void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1) { if (size1 > 0) { if (userLogin.RawErrorID != 0) { (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort()); } else { (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong()); } } else { (sender as XApi).Log.Info("{0}", status); } if (status == ConnectionStatus.Logined) { TradingDay = userLogin.TradingDay; } }
public static string InvestorName([In] this RspUserLoginField field) { return(PInvokeUtility.GetUnicodeString(field.InvestorName)); }
public static string ToFormattedStringShort([In] this RspUserLoginField field) { return(string.Format("[XErrorID={0};RawErrorID={1};Text={2}]", field.XErrorID, field.RawErrorID, field.Text())); }
public static string Text([In] this RspUserLoginField field) { return(PInvokeUtility.GetUnicodeString(field.Text)); }
public static string ToFormattedStringLong([In] this RspUserLoginField field) { return(string.Format("[TradingDay={0};LoginTime={1};SessionID={2};InvestorName={3};XErrorID={4};RawErrorID={5};Text={6}]", field.TradingDay, field.LoginTime, field.SessionID, field.InvestorName(), field.XErrorID, field.RawErrorID, field.Text())); }
private void XApi_OnConnectionStatus(object sender, XAPI.ConnectionStatus status, ref XAPI.RspUserLoginField userLogin, int size1) { if (onConnectionStatus == null) { return; } LoginInfo loginInfo = StructTransfer.TransferUserLogin(userLogin); onConnectionStatus(sender, EnumTransfer.TransferConnectionStatus(status), ref loginInfo); }
protected override void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1) { base.OnConnectionStatus(sender, status, ref userLogin, size1); if (status == ConnectionStatus.Logined) { TradingDay = userLogin.TradingDay; SaveAsTradingDay(); } }
private void OnConnectionStatus_Disconnected(object sender, ConnectionStatus status, ref RspUserLoginField userLogin) { if (IsConnected) { //以前连接过,现在断了次线,要等重连 base.Status = ProviderStatus.Connecting; } else { //从来没有连接成功过,可能是密码错误,直接退出 //不能在线程中停止线程,这样会导致软件关闭进程不退出 //_Disconnect(); base.Status = ProviderStatus.Disconnected; } }
private void OnConnectionStatus_callback(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1) { if(size1>0) { if(userLogin.RawErrorID != 0 ) { (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort()); } else { (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong()); } } else { (sender as XApi).Log.Info("{0}", status); } switch (status) { case ConnectionStatus.Done: OnConnectionStatus_Done(sender, status); break; case ConnectionStatus.Disconnected: OnConnectionStatus_Disconnected(sender, status, ref userLogin); break; } // 断线重连的功能,可能正好与连接上的时间在同一时点,所以想法重新计时 _Timer.Enabled = false; _Timer.Enabled = true; }