入门- Angular 2和TypeScript


本教程描述了使用Angular 2和TypeScript使用Digilent Instrumentation协议创建自定义web应用的过程。

  1. 确保你有Node, npm和离子CLI安装.您还需要一个代码编辑器。对于Angular2应用来说,Visual Studio Code是一个很好的编辑器。

  2. 进入一个目录并开始一个新的离子项目。
    离子开始我的望远镜教程


  3. 输入项目目录。
    cd my-openscope


  4. 从npm安装Digilent仪器协议和Digilent图表。
    NPM install—save dip-angular2 . NPM install—save digilent-chart-angular2


  5. 有离子建设和服务项目。
    离子服务




  6. 在项目目录中打开代码编辑器。

  7. src / app / app.module开放。导入DeviceManagerService和DigilentChart,分别添加到providers和declarations中。
    进口BrowserModule“@angular / platform-browser”进口NgModuleErrorHandler“@angular /核心”进口IonicAppIonicModuleIonicErrorHandler“ionic-angular”进口MyApp”。/ app.component '进口HelloIonicPage“. . /页面/ hello-ionic / hello-ionic”进口ItemDetailsPage“. . /页面/条目细节/条目细节”进口ListPage“. . /页面/ /列表”进口状态栏“@ionic-native /状态栏”进口SplashScreen“@ionic-native /闪屏”进口DeviceManagerService“dip-angular2 /服务”进口DigilentChartModule“digilent-chart-angular2 /模块”NgModule声明MyAppHelloIonicPageItemDetailsPageListPage进口BrowserModuleIonicModule。forRootMyAppDigilentChartModule引导IonicAppentryComponentsMyAppHelloIonicPageItemDetailsPageListPage供应商状态栏SplashScreen提供ErrorHandleruseClassIonicErrorHandlerDeviceManagerService出口AppModule


  8. src /页面/ hello-ionic / hello-ionic.ts开放。导入并注入DeviceManagerService。
    进口组件“@angular /核心”进口DeviceManagerService“dip-angular2 /服务”组件选择器“page-hello-ionic”templateUrl“hello-ionic.html”出口HelloIonicPage构造函数公共deviceManagerServiceDeviceManagerService


  9. 添加一个名为“deviceUri”的string类型的公共属性。添加一个名为connectToDevice()的方法,它在设备管理器服务上调用connect并订阅这个可观察对象。
    组件选择器“page-hello-ionic”templateUrl“hello-ionic.html”出口HelloIonicPage公共deviceUri字符串构造函数公共deviceManagerServiceDeviceManagerServiceconnectToDevicedeviceManagerService连接deviceUri订阅数据=>控制台。日志数据犯错=>控制台。日志犯错=>


  10. 打开src/pages/hello-ionic/hello-ionic.html,删除标签内的所有元素。创建一个带有堆叠标签和双向绑定到deviceUri的输入的离子项。创建一个绑定到调用connectToDevice()的单击事件的按钮
    < ion-header >< ion-navbar ><按钮ion-button menuToggle >< ion-icon的名字“菜单”></ion-icon ></按钮>< ion-title >你好离子</ion-title ></ion-navbar ></ion-header ><离子-内容填充>< ion-item ><离子-标签堆叠>设备地址</ion-label >< ion-inputngModel“deviceUri”></ion-input ></ion-item ><按钮ion-button点击“connectToDevice()”>连接到设备</按钮></离子含量>


  11. 请确保OpenScope连接到Wifi,并在输入框中输入IP地址,即http://192.168.1.8”。打开控制台并单击“连接到设备”按钮。一些调试信息将打印在控制台中。成功的枚举如下图所示。
  12. 接下来,从'dip-angular2/services'中导入DeviceService,并创建一个类型为DeviceService的名为myDevice的属性。
    进口DeviceManagerServiceDeviceService“dip-angular2 /服务”...公共myDeviceDeviceService...


  13. 添加一个turnOnAwg函数,告诉OpenScope创建一个1千赫3 Vpp正弦波,运行它。注意,. flatmap函数用于链接对OpenScope的异步调用。
    ...turnOnAwgmyDevice仪器美国线规setRegularWaveform1signalType的正弦signalFreq1000vOffset0vpp3.flatMap数据=>控制台。日志数据返回myDevice仪器美国线规运行1订阅数据=>控制台。日志数据犯错=>控制台。日志犯错=>...


  14. 更新connect方法,让设备管理器服务从枚举响应创建一个设备,并将myDevice设置为新添加的设备。
    ...connectToDevicedeviceManagerService连接deviceUri订阅数据=>控制台。日志数据deviceManagerServiceaddDeviceFromDescriptordeviceUri数据myDevicedeviceManagerService设备deviceManagerServiceactiveDeviceIndexturnOnAwg犯错=>控制台。日志犯错=>...


  15. 创建一个string类型的chartId属性,并将其设置为'myOpenscopeChart'。创建一个chartOptions属性,并根据flot文档设置所需的图表选项。
    ...公共chartId字符串“myOpenscopeChart”公共chartOptions任何系列显示真正的传说显示帆布真正的网格hoverable真正的可点击的真正的autoHighlightborderWidth0写成backgroundColor“黑”labelMargin15保证金1510正确的2710axisLabels显示真正的工具提示显示真正的cssClass“flotTip”zoomPan启用真正的secsPerDivisionValues0.00010.00020.00050.0010.0020.0050.010.020.050.10.20.51cursorMoveOnPan真正的桠溪位置“左”axisLabel''axisLabelColour# 666666的axisLabelUseCanvas真正的显示真正的tickColor# 666666的字体颜色# 666666的xaxistickColor# 666666的字体颜色# 666666的...


  16. 创建chartLoad()方法。
    ...chartLoad控制台。日志“图加载!”...


  17. 创建一个div,样式设置为:" height: 500px;宽度:100%;字体大小:14 px;”。在div标签内部,创建一个数字图表,并将所有的输入和输出连接到我们的属性和方法。为数字图表创建一个名为myChart的模板引用变量。
    ...<div风格“高度:500 px;宽度:100%;字体大小:14 px;“>< digilent-chart # myChartflotOptions“chartOptions”chartId“chartId”chartLoad“chartLoad()”></digilent-chart ></div>...


  18. 从@angular/core中导入ViewChild,从'digilent-chart-angular2/components '中导入DigilentChart。使用模板引用变量myChart为digilent图表创建一个ViewChild,并将其类型赋值为DigilentChart。
    进口组件ViewChild“@angular /核心”进口DeviceManagerServiceDeviceService“dip-angular2 /服务”进口DigilentChart“digilent-chart-angular2 /模块”...ViewChild“myChart”myChartDigilentChart...


  19. 添加一个getData方法,该方法将设置示波器参数、触发器参数和调用触发器单。添加一个openscopeRead方法,连续调用openscope上的read,直到成功返回一个缓冲区。
    ...getDatamyDevice仪器oscsetParameters100.2535000050000flatMap=>返回myDevice仪器触发setParameters1仪器“osc”通道1类型“risingEdge”lowerThreshold470upperThreshold500osc1flatMap=>返回myDevice仪器触发1订阅数据=>控制台。日志数据犯错=>控制台。日志犯错=>openscopeReadopenscopeReadmyDevice仪器osc1订阅数据=>myChartsetData数据myDevice仪器oscdataBuffermyDevice仪器oscdataBufferReadIndex0数据桠溪1显示真正的显示真正的犯错=>setTimeout=>openscopeReadOne hundred.=>...


  20. 在src/pages/hello-ionic/hello-ionic.html中,创建一个按钮并绑定到单击事件,这样getData()就会被调用。一种方法是使用myDevice绑定到按钮的disabled属性,这样在定义myDevice之前它都是禁用的。
    ...<按钮ion-button禁用"!myDevice”点击“getData()”>获取数据</按钮>...


  21. 确保OpenScope上的Wavegen连接到示波器通道1(实橙色线连接到实黄色线)。这使得我们可以通过从波形输出一个信号并通过示波器通道1读取它来执行一个环回。

  22. 使用“连接到设备”按钮连接到您的OpenScope,然后单击“获取数据”按钮从OpenScope读取数据缓冲区,并将其绘制在图表上。