如何用Socket Device通讯

2023-05-16

如何用Socket Device通讯

本文适用于:

E-Prime 3.0

E-Prime 2.0

E-Prime 1.x

我使用什么设备?
Socket 是计算机上的物理接口,可以将信息从一个对象发送到另一个对象。套接字可以发送和接收信息包。可以将 Socket 设备视为与以太网卡或 WiFi 的连接。

有关此设备的特定信息
需要了解一些信息才能通过 E-Prime 中的套接字进行通信。需要 IP 地址、端口号、连接类型和字节顺序。所有这些信息都反映了 E-Prime 中套接字设备的必填字段。要查找此信息,请了解 Socket 连接到的位置、连接类型和字节顺序。此外,确保存在有效连接,并且在 E-Prime 中测试之前,您可以在命令提示符中 Ping 套接字的两个方向。

使用套接字通信时,了解两种类型的 Internet 协议 (IP) 流量之间的区别很重要。
 
第一个是 UDP 传输(用户数据报协议或通用数据报协议)。UDP 不保证数据包的传递,如果传递了数据包,也不能保证传递的顺序正确。UDP TCP 快,但不保证实际发送预期数据。TCP 速度较慢,但​​可以保证接收到数据。UDP 无连接的。如果使用 UDP,请准备好处理丢失的数据报、重复的数据报或顺序不正确的数据报。还必须处理错误检测和纠正。


第二种是TCP传输(Transmission Control Protocol)。对于 TCP,如果一个数据包被丢弃,但下一个数据包通过了,内核将保留该数据包,直到可以重新发送更早的数据包。这是因为 TCP 是一种有保证的、有序的、流式传输的协议。这意味着数据在等待 TCP 超时和重新传输时位于内核中。对于丢失的数据包,这至少需要 3 秒。由于此限制,UDP 通常更适合实时低延迟应用程序。

E-Prime 中添加插座设备

要在 E-Prime 中使用 Socket Device,需要将其添加到 E-Prime 实验中。要添加套接字设备,请执行以下步骤:

  1. 打开 E-Studio 结构窗口顶部的实验对象。 
  2. 单击设备选项卡。 
  3. 单击窗口底部的添加...”按钮。
  4. 点击Socket Device,点击OK按钮添加设备。

将套接字设备添加到实验后,需要使用上一节中指定的信息(即 IP 地址、端口号、连接类型和字节)编辑设备的属性。为此,选择套接字设备并单击设备选项卡底部的编辑...”按钮。配置属性后,套接字设备将准备好发送/接收信号。

 注意:此设备在 E-Prime 1.x 中不存在。请参阅https://support.pstnet.com/hc/en-us/articles/229359567

如何使用套接字设备
发送信号有几种方法可以将信号发送到套接字。在开始编写脚本或在实验中添加设备以发送信号之前,确定要发送的信号类型非常重要。首先,考虑您正在与什么设备通信。有几种方法可以将信息发送到 Socket。下表显示了信号的所有可能性以及简要说明。 

 Socket 信息不仅可以通过标准的脚本方式发送,还可以通过对象的任务事件发送。为此,必须将事件添加到 E-Object。然后,需要添加一个 Socket Task 和一个 Action(例如,WritieLong)。最后,需要指定任务事件的参数。

 WriteBytes
使用 WriteBytes 命令时要牢记的最重要的一点是它会在 Socket 设备上发送一个整数数组。与一次只发送一个 Integer Long 信息的 WriteInteger WriteLong 方法不同,此方法一次发送 Integer 数据的多个实例。

 语法
SocketDevice.WriteBytes arrData, nCount

  • arrData——这个参数是要发送到套接字设备的整数数组。
  • nCount – 此参数是可选的,表示应发送到套接字的数组中元素的数量。如果排除此参数,E-Prime 会将整个数组的数据值发送到套接字设备。

例子

 此示例演示如何将 255 信号发送到名为 Socket 的套接字设备。在此示例中,nData 参数是 Integer 数据类型。只发送一个字节。也可以使用变量或使用“c.GetAttrib”语句将属性写入套接字。

 

WriteInteger
此命令仅在套接字上写入一个整数值的信息。这个整数是两个字节的数据。

语法
SocketDevice.WriteInteger nData

  • nData——这个参数是要写入计算机套接字的整数。此信息可以是变量(如所示)、属性或整数。

例子

 此示例演示如何将 255 信号发送到名为 Socket 的套接字设备。在本例中,nData 参数是一个 Integer,但也可以使用变量或使用“c.GetAttrib”语句将属性写入 Socket
 

WriteLong
将一个 Long 值的数据写入 Socket。长数据表示四个字节的数据。

语法
SocketDevice.WriteLong nData

  • nData——这个参数是要写入计算机套接字的整数。此信息可以是变量(如所示)、属性或整数。

例子

 此示例演示如何将 854,775,807 信号发送到名为 Socket 的套接字设备。在此示例中,nData 参数是一个 Long,但也可以使用变量或使用“c.GetAttrib”语句将属性写入 Socket

 

WriteString
套接字的独特之处在于,您实际上可以使用 E-Prime 将有价值信息的字符串写入外部设备。

语法
SocketDevice.WriteString StrData, nCount

  • StrData – 此参数是通过套接字发送的字符串数据。此必需参数需要包含在引号内。这就是 E-Prime 确定信号是字符串数据的方式。
  • nCount - 这个参数是可选的,它决定了 String 中有多少个字符将被发送到 Socket

例子

 此示例演示如何将 854,775,807 信号发送到名为 Socket 的套接字设备。在此示例中,nData 参数是一个 Long,但也可以使用变量或使用“c.GetAttrib”语句将属性写入 Socket

 

WriteString
套接字的独特之处在于,您实际上可以使用 E-Prime 将有价值信息的字符串写入外部设备。

语法
SocketDevice.WriteString StrData, nCount

  • StrData – 此参数是通过套接字发送的字符串数据。此必需参数需要包含在引号内。这就是 E-Prime 确定信号是字符串数据的方式。
  • nCount - 这个参数是可选的,它决定了 String 中有多少个字符将被发送到 Socket

例子

 在这个例子中,字符串数据被发送到一个名为 Socket 的套接字设备。此示例包含 nCount 参数。在这种情况下,只有此字符串的前 4 个字符通过套接字发送。这样,信号显示为“Send”而不是完整的“Send DoNotSend”字符串。

 

如何使用套接字设备接收信号
E-Prime 的一个强大功能是它不仅可以向外部设备发送信号,还可以接收信号。就像向外部设备发送信号一样,重要的是要记住要从该外部设备接收什么信号。这在从外部设备接收信号时尤为重要,因为 E-Prime 应该确切地知道它应该监听什么信号。下表显示了信号的所有可能性以及对这些信号的简要描述。

 ReadBytes

此方法从 Socket 的输入提示中读取整数数据并将其加载到数组中。该数组的每个元素代表一个字节的数据,这些数据将被读入实验。如果请求的字节数多于可用的字节数,则仅可用数组中的元素填充数据。

 句法

nRead = SocketDevice.ReadBytes (arrData, nCount)

  • nRead – 是从 WriteBytes 方法返回的值,表示已读入数组的实际字节数。
  • arrData – 一个整数数组,表示将从 Socket 的输入提示中读取的数据写入的数组。
  • nCount - 一个可选参数,指定要存储到数组中的字节数。如果省略此可选参数,则需要整个数组大小。

例子

 这个例子首先定义了两个重要的变量“nRead”“arrData”“nRead”变量保存写入套接字的字节数,“arrData”变量是一个数组,保存发送到套接字中的值。此示例的其余部分演示了如何使用这些参数中的每一个来读取发送到套接字的数据字节。由于语句末尾的“nCount”参数,此示例仅读取进入套接字的实例 01 2

 

ReadByte
该方法只从 Socket 的输入队列中读取一个整数到实验中的一个变量中。如果进入套接字设备的整数小于所需的两个字节,则只接收一个字节。

语法
nRead = SocketDevice.ReadInteger( nData)

  • nRead – 返回一个整数,表示已从 Socket 的输入队列中读取的实际字节数。
  • nData – 返回已写入套接字输入队列的整数。

例子

 这个例子定义了两个变量。第一个变量是“nData”。此变量表示外部设备发送到 E-Prime 的整数数据。“nRead”变量保存已通过套接字发送的信号的字节数。该示例的其余部分演示了如何使用这些变量来读取通过套接字发送的整数信息。 

 

ReadInteger
该方法只从 Socket 的输入队列中读取一个整数到实验中的一个变量中。如果进入 Socket 设备的整数小于所需的两个字节,则只接收一个字节。

语法
nRead = SocketDevice.ReadInteger( nData)

  • nRead – 返回一个整数,表示已从 Socket 的输入队列中读取的实际字节数。
  • nData – 返回已写入套接字输入队列的整数。

例子

 首先,声明两个变量。第一个变量是“nData”。此变量表示外部设备发送到 E-Prime Long 数据。“nRead”变量保存已通过套接字发送的信号的字节数。该示例的其余部分演示了如何使用这些变量来读取通过套接字发送的 Long 信息。 

ReadString
ReadString 方法从套接字设备的输入队列中读取字节串。发送的字符串中的每个字符代表从套接字设备的输入队列中读取的一个字节。与此方法一起,还有机会使用 Mid Asc 函数来返回从套接字设备的输入队列中读取的数据的整数表示。

语法
nRead = SocketDevice.ReadString( strData, nCount)

  • nRead – 返回一个整数,表示已从 Socket 的输入队列中读取的实际字节数。
  • strData – 是一个整数数组,表示存储读取数据的数组。
  • nCount——一个可选的整数,指定要检索的字节数。如果省略,则要求 1K1024 字节)

例子

示例中的第一个变量是“strData”。这个变量是一个数组,保存着从 Socket 发送过来的 String 数据。在本例中,它包含 5 个字节的数据。“nRead”变量保存已通过套接字发送的信号的字节数。该示例的其余部分演示了如何使用这些变量来读取通过套接字发送的字符串信息。请注意,此示例中省略了 nCount 参数。这意味着 E-Prime 从套接字的输入队列中请求大约 1024 个字节。

原文:https://support.pstnet.com/hc/en-us/articles/360020673193-DEVICE-How-To-Socket-Device-Communication-25288-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用Socket Device通讯 的相关文章

  • Ubuntu下进行Socket编程

    龙云尧个人博客 xff0c 转载请注明出处 CSDN地址 xff1a http blog csdn net Michael753951 article details 72553287 个人blog地址 xff1a http yaoyl c
  • add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系

    折腾了半下午 xff0c 终于知道这个货是怎么个关系了 在此写下记录 xff0c 希望遇到同样问题的同学 xff0c 不要再次浪费时间了 首先我是在Linux环境下 先列出我的CmakeLists txt 注意 xff0c 在CmakeLi
  • strpbrk

    头文件 xff1a include lt include h gt strpbrk 函数检索两个字符串中首个相同字符的位置 xff0c 其原型为 xff1a char strpbrk char s1 char s2 参数说明 s1 s2要检
  • Ubuntu中在命令行如何打开图形界面的文件夹、文件、网页等

    方法一 xff08 nautilus open terminal 打开文件夹 xff09 xff1a 安装nautilus open terminal span class token function sudo span span cla
  • 3.4迭代器介绍

    文章目录 使用迭代器迭代器运算符将迭代器从一个元素移动到另外一个元素迭代器类型begin和end运算符结合解引用和成员访问操作某些对vector对象的操作会使迭代器失效 迭代器运算迭代器的算术运算使用迭代器运算 我们已经知道可以使用下标运算
  • CAN报文格式简析

    Date xff1a 2022 5 11 Author xff1a MJQ Meta xff1a CAN CAN基础篇 CAN报文格式简析 1 Motornala和Intel格式 建议直接看图 xff0c 小白也能秒懂 xff01 注 xf
  • 【C++】头文件声明变量总结

    类外变量 span class token comment 1 直接声明定义 span span class token comment 如果被多个 cpp 包含 xff0c 则链接报错 multiple definition span s
  • C语言 如何用http post方式 上传json数据

    What C语言 如何用post方式 上传json数据 Piont C语言Socket实现HTTP协议 xff0c json格式数据组包 1 xff0c C语言Socket实现HTTP POST 43 json格式数据 按照HTTP协议发送
  • UDP组播调试(使用TCP&UDP调试工具)

    如何使用调试工具进行UDP组播调试 一 下载UDP amp TCP调试工具 二 双击打开调试工具并建立端口 2 1 创建组播客户端1 类型 xff1a UDP xff08 组播模式 xff09 xff1b 目标IP xff1a 225 0
  • python字典遍历的几种方法

    xff08 1 xff09 遍历key值 gt gt gt a 39 a 39 39 1 39 39 b 39 39 2 39 39 c 39 39 3 39 gt gt gt for key in a print key 43 39 39
  • 基于寄存器与基于固件库的stm32差异

    一 简介 STM32标准外设库之前的版本也称固件函数库或简称固件库 xff0c 是一个固件函数包 xff0c 它由程序 数据结构和宏组成 xff0c 包括了微控制器所有外设的性能特征 寄存器是中央处理器内的组成部分 寄存器是有限存贮容量的高
  • Ublox F9P通过NTRIP实现实时RTK定位

    现在开一个新坑 xff0c 后面慢慢填 2022 07 23更新 xff1a 测试视频 NTRIP ROS测试 一 前言 首先 xff0c 什么RTK呀 NTRIP呀 xff0c RTKLIB呀 xff0c 我都还是新手不是很懂 xff0c
  • 接口测试工具--Postman安装

    想用汉化版的Postman xff0c 需要有两样东西 xff1a 一是英文版安装包 xff1b 一是汉化包 xff1b 需注意的是中 英文版本号必须一致 xff0c 才可以 但是官网的汉化包 xff0c 现在还没更新到最新版本 xff0c
  • 05c语言——宏定义、带参宏、带参宏函数

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 宏定义1 使用规则2 注意 二 带参宏1 定义2 注意 三 带参函数1 带参函数的宏与带参宏的区别2 带参宏函数和普通函数区
  • Makefile 和 CMake 入门

    Makefile Reference Makefile 20分钟入门 xff0c 简简单单 xff0c 展示如何使用Makefile管理和编译C 43 43 代码 简介 Makefile 是一个用于构建 xff08 Build xff09
  • cmake使用独立工具链交叉编译可在android中运行的so包

    cmake使用独立工具链交叉编译可在android中运行的so包 在在命令行下用CMake交叉编译可在android中运行的so包一文中说了一下使用NDK自带的工具链来编译so包 xff0c 当时讲到还有另一种方法来编译so包 xff0c
  • RTK原理

    一 实时载波相位差分 我们知道 xff0c 在利用GPS进行定位时 xff0c 会受到各种各样因素的影响 xff0c 为了消除这些误差源 xff0c 必须使用两台以上的GPS接收机同步工作 GPS静态测量的方法是各个接收机独立观测 xff0
  • keil C51脚本编译

    rem 使用bat编译C51项目 64 echo off amp setlocal enabledelayedexpansion set BIN PATH 61 C Keil v5 C51 set path 61 BIN PATH BIN
  • ESP01s连接Arduino uno发送AT指令返回ERROR

    使用ArduinoIDE连接串口之后出现如下情况 xff1a Esp串口返回ERROR 直接放解决方法 xff1a 将串口监视器右下角 换行符 更改为 NL和CR 再次发送AT指令 xff0c 返回OK 解决原理 xff1a Arduino
  • 如何解决python socket server重启后端口被占用的问题

    本文介绍下 xff0c 在solaris 系统下 xff0c python socket server重启后 xff0c 提示端口被占用 xff0c telnet端口失败 这里给出一个解决方法 xff0c 有需要的朋友参考下 在solari

随机推荐

  • 零基础python字符串处理学习心得

    python 类的定义及使用 xff1a 1 数据如下 xff1a stu1 txt 孙同学 2020 5 21 20 39 男 39 77 56 77 76 92 58 91 84 69 91 stu2 txt 赵同学 2020 11 3
  • PaddlePaddle图像分类神经网络构建正则化笔记

    本文主要根据第二次作业进行分析 作业要求 xff1a 补全网络代码 xff0c 并运行手写数字识别项目 以出现最后的图片和预测结果为准 首先导入必要的包 numpy gt python第三方库 xff0c 用于进行科学计算 PIL gt P
  • 使用GitHub.io仓库实现个人网站建站

    使用GitHub io仓库实现个人网站建站 文章目录 使用GitHub io仓库实现个人网站建站 前言一 注册GitHub二 建立储存库1 新建库2 输入名称3 上传文件4 进行测试5 想进入非index网页 总结 前言 总体流程为注册 建
  • 老旧电脑救星,Windows 8.1 原始系统安装

    老旧电脑win8 1系统安装 先上电脑配置开始安装WIN8 1下载镜像制作U盘启动盘进入主板BIOS设置U盘为第一启动项进入安装环节 总结 先上电脑配置 前段时间从店里拉回来一个十年前的电脑 xff0c 装的win7系统 xff0c 从开机
  • orbslam2图优化基础

    图优化 1 优化问题概述 本周的目标是orb slam2中的PoseOptimization函数 xff0c 这个函数算是orb slam2中Traking进程频繁调用且是入门级的优化问题 看代码的时候多次看到g2o库 xff0c 这个库是
  • ORBSLAM2安装与运行实例

    文章目录 安装环境一 安装依赖库二 安装主要库1 Pangolin2 安装Opencv3 安装DBoW2 和 g2o依赖 三 安装ORB SLAM2本体四 运行ORB SLAM2 xff08 单目例子 xff09 总结 安装环境 提示 xf
  • 人体姿态识别综述

    1 人体姿态估计概述 通过图像 视频中的人像信息 xff0c 将人的姿态描述出来 xff0c 重建一个人体的姿态 主流的方法有2D人体姿态估计和3D人体姿态估计 xff0c 都是基于深度学习的方法 2 2D人体姿态识别 单人姿态估计 多人姿
  • HX711压力传感器学习(STM32)

    目录 原理图 xff1a 引脚介绍 xff1a HX711介绍工作原理 程序讲解 xff1a 整套工程 xff1a 原理图 xff1a 引脚介绍 xff1a VCC和GND引脚分别为HX711芯片的电源输入端口 VCC引脚是连接到5V或3
  • 关于STL的理解与学习之路(小白从头学起)

    奔月者不惧黑夜 xff0c 寻芳者不畏荆棘 xff0c 求爱者不避本心 鲁米 写在前面 我只是记录一下我的学习过程 xff0c 算是网络笔记吧 xff0c 都是很基础的东西 xff0c 你要是对STL感兴趣但完全不了解 xff0c 那就继续
  • rosbag转化为.mp4格式视频

    1 把 bag文件放到Python脚本目录下 2 安装依赖 xff08 确保系统下已经安装ros环境 xff09 使用ffmpeg将ros包文件中的图像序列转换为固定帧率的视频文件 xff0c 需要安装ffmpeg sudo apt ins
  • C++各大有名科学计算库

    C 43 43 各大有名科学计算库 C 43 43 各大有名科学计算库 Blitz 43 43 http www oonumerics org blitz POOMA http www codesourcery com pooma poom
  • 给dubbo接口添加白名单——dubbo Filter的使用

    在开发中 xff0c 有时候需要限制访问的权限 xff0c 白名单就是一种方法 对于Java Web应用 xff0c Spring的拦截器可以拦截Web接口的调用 xff1b 而对于dubbo接口 xff0c Spring的拦截器就不管用了
  • 浅谈dubbo的ExceptionFilter异常处理

    背景 我们的项目使用了dubbo进行不同系统之间的调用 每个项目都有一个全局的异常处理 xff0c 对于业务异常 xff0c 我们会抛出自定义的业务异常 xff08 继承RuntimeException xff09 全局的异常处理会根据不同
  • keil5烧代码时报错..\OBJ\LED.axf: error: L6002U: Could not open file ..\obj\sys.o: No such file or direct

    keil5烧代码时报错 OBJ LED axf error L6002U Could not open file obj sys o No such file or directory 本人Win10系统 xff0c 在用keil软件编译S
  • MATLAB Simmechanics/Simscape四旋翼无人机控制仿真(5) F250旋翼仿真搭建

    MATLAB Simmechanics Simscape四旋翼无人机控制仿真 xff08 5 xff09 F250旋翼仿真搭建 MATLAB Simmechanics Simscape四旋翼无人机控制仿真 xff08 5 xff09 F25
  • VLC 插件 安装

    问题 xff1a 1 安装VLC播放器后 xff0c 浏览器无法使用其插件播放视频问题 环境 xff1a 1 系统 xff1a win7 64位 2 VLC版本 xff1a 2 2 1 32位 解决方法 xff1a 1 安装VLC 32位版
  • 安装ROS中rosdep update出错,通过修改代理解决办法(已解决问题,记录一下)

    执行rosdep update后报错如下 xff1a 在尝试了各种方法失败后 xff0c 利用下面方法成功解决 此方法就是给所有找不到的网址前面加上https ghproxy com xff0c 打开如下几个文件进行添加 xff08 ubu
  • 005-关于win10系统更新后,无法登录你的账户,通常可以通过请注销。。。。。

    win10系统更新后个人账户无法登录 xff0c 请注销 xff0c 注销了没作用 xff01 不要经常更新最新的系统 xff0c 低版本的还是稳定些 昨天晚上随手更新了下 xff0c 今天早晨打开电脑出现无法登陆个人账户 嗯 xff0c
  • 014-Linux无法在root目录下创建普通目录,cp: 无法创建普通文件‘etc/redis/:不是目录

    cp 无法创建普通文件 etc redis 不是目录 当前用户无法在root的根目录下自动创建文件目录 xff0c 因为系统拷贝文件时权限不够 运行命令 sudo nautilus 会自动弹出一个具有管理员权限的文件管理器 xff0c 进行
  • 如何用Socket Device通讯

    如何用 Socket Device 通讯 本文适用于 xff1a E Prime 3 0 E Prime 2 0 E Prime 1 x 我使用什么设备 xff1f Socket 是计算机上的物理接口 xff0c 可以将信息从一个对象发送到