/// <summary> /// 添加镜像 /// </summary> /// <param name="native">库</param> /// <param name="target">目标</param> public void AddMirror(INativeBase native, ControlA target) { if (target.Parent == null || (target.Location.x == 0 && target.Location.y == 0)) { ClientSize = new Size(target.Size.cx, target.Size.cy); } else { ClientSize = new Size(target.Parent.Size.cx, target.Parent.Size.cy); } if (m_native == null) { m_native = NativeHandler.CreateNative(); m_native.MirrorMode = MirrorMode.Shadow; m_native.Paint = new GdiPlusPaintEx(); m_native.Host = new WinHostEx(); m_native.Host.Native = m_native; m_native.ResourcePath = WinHostEx.GetAppPath() + "\\config"; m_host = m_native.Host as WinHostEx; m_host.HWnd = Handle; //设置尺寸 m_native.AllowScaleSize = true; m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height); ResetScaleSize(GetClientSize()); } m_native.AddMirror(native, target); m_native.Invalidate(); }
static void Main(string[] args) { INativeBase native = NativeHandler.CreateNative(); String script = "TEST(100);TEST(100);TEST(100);"; CIndicator indicator = CFunctionEx.CreateIndicator(script, native); System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); for (int i = 0; i < 1000000; i++) { CMathElement ce = new CMathElement(); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); Console.ReadLine(); string appPath = DataCenter.GetAppPath(); string fileName = appPath + "\\test.js"; if (args != null && args.Length > 0) { fileName = appPath + "\\" + args[0]; } DataCenter.StartService(fileName); }
/// <summary> /// 创建指标 /// </summary> /// <param name="text">脚本</param> /// <param name="parameters">参数</param> /// <returns>指标ID</returns> public static int CreateIndicatorExtern(String text, String parameters) { try { if (m_native == null) { m_native = NativeHandler.CreateNative(); } if (m_chart == null) { m_chart = new ChartAEx(); m_chart.Native = m_native; } m_serialNumber++; CTable dataSource = m_chart.Native.CreateTable(); dataSource.AddColumn(KeyFields.CLOSE_INDEX); dataSource.AddColumn(KeyFields.HIGH_INDEX); dataSource.AddColumn(KeyFields.LOW_INDEX); dataSource.AddColumn(KeyFields.OPEN_INDEX); dataSource.AddColumn(KeyFields.VOL_INDEX); dataSource.AddColumn(KeyFields.AMOUNT_INDEX); CIndicator indicator = SecurityDataHelper.CreateIndicator(m_chart, dataSource, text, parameters); m_indicators[m_serialNumber] = indicator; indicator.OnCalculate(0); } catch (Exception ex) { Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace); } return(m_serialNumber); }
/// <summary> /// 加载 /// </summary> /// <param name="name">名称</param> public void LoadXml() { m_native = NativeHandler.CreateNative(); m_native.Paint = new GdiPlusPaintEx(); m_host = new WinHostEx(); m_host.Native = m_native; m_native.Host = m_host; m_host.HWnd = Handle; m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height); m_barrageDiv = new BarrageDiv(); m_barrageDiv.Dock = DockStyleA.Fill; m_barrageDiv.TopMost = true; m_native.AddControl(m_barrageDiv); m_native.Update(); Invalidate(); }
/// <summary> /// 启动监听 /// </summary> public void Start() { m_useScript = CFileA.IsFileExist(m_fileName); if (m_useScript) { m_native = NativeHandler.CreateNative(); CFileA.Read(m_fileName, ref m_script); m_indicator = CFunctionEx.CreateIndicator(m_script, m_native); Console.WriteLine(m_script); } try { //string host = "127.0.0.1"; //IPAddress ip = IPAddress.Parse(host); if (m_indicator != null) { m_indicator.CallFunction("ONHTTPSERVERSTARTING('" + m_fileName + "');"); } IPEndPoint ipe = new IPEndPoint(IPAddress.Any, m_port); m_listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m_listener.Bind(ipe); m_listener.Listen(0); } catch (Exception ex) { if (m_indicator != null) { m_indicator.CallFunction("ONHTTPSERVERSTARTFAIL('" + ex.Message + "\r\n" + ex.StackTrace + "');"); } return; } int minThreadNum = 0, portThreadNum = 0, maxThreadNum = 0; ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum); ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum); if (m_indicator != null) { m_indicator.CallFunction("ONHTTPSERVERSTART(" + CStr.ConvertIntToStr(maxThreadNum) + "," + CStr.ConvertIntToStr(minThreadNum) + ");"); } while (DataCenter.IsAppAlive) { Socket socket = m_listener.Accept(); ThreadPool.QueueUserWorkItem(new WaitCallback(ReadData), socket); } m_listener.Close(); }
public MainForm() { InitializeComponent(); m_native = NativeHandler.CreateNative(); m_native.Paint = new GdiPlusPaint(); m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height); m_host = m_native.Host as WinHost; m_host.Native = m_native; m_native.Host = m_host; m_host.HWnd = Handle; AcceptDiv acceptDiv = new AcceptDiv(); acceptDiv.Dock = DockStyleA.Fill; acceptDiv.Size = m_native.DisplaySize; acceptDiv.Text = File.ReadAllText(Application.StartupPath + "\\accept.txt", Encoding.Default); m_native.AddControl(acceptDiv); m_native.Update(); m_native.Invalidate(); }
/// <summary> /// 添加镜像 /// </summary> /// <param name="native">库</param> /// <param name="target">目标</param> public void AddBugHole(INativeBase native, ControlA target) { if (m_native == null) { m_native = NativeHandler.CreateNative(); m_native.MirrorMode = MirrorMode.BugHole; m_native.Paint = new GdiPlusPaintEx(); m_native.Host = new WinHostEx(); m_native.Host.Native = m_native; m_native.ResourcePath = WinHostEx.GetAppPath() + "\\config"; m_host = m_native.Host as WinHostEx; m_host.HWnd = Handle; //设置尺寸 m_native.AllowScaleSize = true; m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height); ResetScaleSize(GetClientSize()); } m_native.AddMirror(native, target); m_native.Update(); m_native.Invalidate(); }