Beispiel #1
0
        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();
        }
Beispiel #2
0
        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());
            //}
        }