private void OnReceiveData(object sender, long requestID, ushort dataType, byte[] body) { switch (dataType) { case 2001: PB2001 pb2001 = new PB2001(); pb2001 = (PB2001)BytesToStruct(body, pb2001.GetType()); AddInfo(pb2001.toLog()); break; case 2002: PB2002 pb2002 = new PB2002(); pb2002.toData(body); AddInfo(pb2002.toLog()); break; case 2010: PB2010 pb2010 = new PB2010(); pb2010.toData(body); AddInfo(pb2010.toLog()); break; default: string smsg = encoding.GetString(body); AddInfo("Received Data Type=" + dataType.ToString() + "|Data" + smsg); break; } push.Processed(); }
private void btnPublish_Click(object sender, EventArgs e) { if (push.ConnectionStatus != CONNECTION_STATUS.CS_CONNECTREADY) { AddInfo("Connection is not ready"); return; } PB2001 pb2001 = new PB2001(); pb2001.userNo = push.UserNo; pb2001.account_h = txtAccount.Text.ToString()[0]; pb2001.account = Convert.ToInt32(txtAccount.Text.Substring(1, 9)); pb2001.exchange = '0'; pb2001.market = 'O'; pb2001.setSymbol(txtSymbol.Text.Trim()); pb2001.side = (cmbSide.Text.Substring(0, 1).ToUpper() == "B") ? 'B' : 'S'; pb2001.modify_type = 'N'; pb2001.qty = Convert.ToInt16(txtQty.Text); pb2001.price = Convert.ToInt64(txtPrice.Text); pb2001.priceFlag = (cmbOrdType.Text.Substring(0, 1).ToUpper() == "L") ? '2' : '1'; switch (cmbTimeInForce.Text.Trim().ToUpper()) { case "ROD": pb2001.timeInForce = 'R'; break; case "IOC": pb2001.timeInForce = 'I'; break; case "FOK": pb2001.timeInForce = 'F'; break; } pb2001.positionEffect = (cmbPositionEffect.Text.Substring(0, 1).ToUpper() == "O") ? 'O' : 'C'; pb2001.front_office = '0'; byte[] pb = StructToBytes(pb2001); push.Subscribe(pb2001.getAccount()); //PB2001 //byte[] pb = new byte[65]; //ushort userNo = push.UserNo; //byte[] UserNo = ConvertIntToByteArray(userNo); //char account_h = 'A'; //byte Account_h = Convert.ToByte(account_h); //int account = 233620030; //byte[] Account = ConvertIntToByteArray(account); //char exchange = '0'; //byte Exchange = Convert.ToByte(exchange); //char market = 'O'; //byte Market = Convert.ToByte(market); //string symbol = "90000461"; //char[] Symbol = new char[20]; ; //Array.Copy(symbol.ToCharArray(), Symbol, symbol.Length); //byte[] bSymbol = Encoding.Default.GetBytes(Symbol); //char side = 'B'; //byte Side = Convert.ToByte(side); //char modify = 'N'; //byte Modify = Convert.ToByte(modify); //ushort qty = 1; //byte[] Qty = ConvertIntToByteArray(qty); //long price = 500; //byte[] Price = ConvertIntToByteArray(price); //char priceFlag = '2'; //byte PriceFlag = Convert.ToByte(priceFlag); //char timeInForce = 'R'; //byte TimeInForce = Convert.ToByte(timeInForce); //char positionEffect = 'O'; //byte PositionEffect = Convert.ToByte(positionEffect); //char front_office = '0'; //byte Front_office = Convert.ToByte(front_office); //Array.Copy(UserNo, pb, UserNo.Length); //pb[6] = Account_h; //Array.Copy(Account, 0, pb, 7, Account.Length); //pb[23] = Exchange; //pb[24] = Market; //Array.Copy(bSymbol, 0, pb, 25, bSymbol.Length); //pb[45] = Side; //pb[46] = Modify; //Array.Copy(Qty, 0, pb, 47, Qty.Length); //Array.Copy(Price, 0, pb, 49, Price.Length); //pb[57] = PriceFlag; //pb[58] = TimeInForce; //pb[59] = PositionEffect; //pb[64] = Front_office; //var s = System.Runtime.InteropServices.Marshal.SizeOf(pb); //to know struct length //Console.WriteLine(ConvertByteArrayToDouble(bUserNo)); //long RequestId = push.Publish("SSEOrder.Sv", 2001, pb); long RequestId = push.Publish(subTopic1, 2001, pb, false, true); //AddInfo("Request Id SEND: " + RequestId); AddInfo(pb2001.toLog()); //} }