消息队列的使用方法
msg用法

msg用法
在计算机领域,MSG有多种用法,以下是两种常见的用法:
- 在Windows系统中,可以使用MSG命令实现局域网内的消息发送。
具体的使用方法如下:
1. 在接收消息的电脑B上,启动注册表编辑器,定位到(HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr olSet\Control\Terminal Server),将右侧的“AllowRemoteRPC”的值更改为“1”。
2. 在发送消息的电脑A上,依次打开控制面板、用户帐户和家庭安全、凭据管理器,点击“添加Windows凭据”,在打开的窗口中按提示依次填入B 电脑的局域网IP地址、登录B电脑的用户名和登录密码。
3. 在A、B两台电脑上,依次打开控制面板、系统和安全、Windows 防火墙、允许的程序,点击“允许运行另一程序”,然后将“C:\Windows\System32\Msg.exe”添加到允许列表中。
4. 在A电脑上打开命令提示符,输入“MSG /server:192.168.20.38 * 今天17点开会”之类的命令,
即可在B电脑上弹出消息框显示信息。
- 在Linux系统中,MSG通常指消息队列(Message Queue),是一种用于在进程间传递消息的机制。
使用`ipcs -q`命令可以查看当前系统中存在的消息队列,使用`ipcrm -Q key`可以删除指定的消息队列。
如果你想了解关于MSG的其他用法,请提供更多的背景信息,以便我更好地为你解答。
mq消息队列应用场景

MQ(Message Queue)消息队列,是一种基于异步通信的解耦技术,它可以将消息发送方和接收方解耦,从而实现分布式系统之间的高效通信。
MQ被广泛应用于各种场景中,例如电商物流、金融支付、云计算等领域,本文将就MQ的应用场景进行探讨。
一、电商物流电商物流涉及到订单处理、库存管理、配送跟踪等环节,其中订单处理是最为重要的一环。
在传统的电商系统中,订单处理通常是同步执行的,即在用户下单后,需要等待订单处理完成才能进行下一步操作。
但随着电商交易量的不断增加,这种同步处理的方式已经无法满足系统的需求。
此时,MQ的异步通信就显得尤为重要。
在电商系统中,当用户下单后,订单信息会被发送至MQ队列中,订单处理系统会从MQ队列中获取订单信息并进行处理。
由于MQ的异步通信机制,即使订单处理系统出现故障,也不会影响用户的正常下单操作。
同时,MQ 还可以对订单信息进行持久化存储,确保数据的可靠性。
二、金融支付金融支付系统是一个对数据可靠性要求非常高的系统,任何数据丢失或者错误都可能导致系统崩溃。
在传统的金融支付系统中,通常使用数据库进行数据存储和交互。
但随着金融支付业务量的不断增加,数据库将会成为瓶颈。
MQ队列可以用于金融支付系统的异步通信。
例如,在用户进行支付操作后,支付信息会被发送至MQ队列中,支付系统会从MQ队列中获取支付信息并进行处理。
由于MQ的异步通信机制,即使支付系统出现故障,也不会影响用户的正常支付操作。
同时,MQ还可以对支付信息进行持久化存储,确保数据的可靠性。
三、云计算随着云计算技术的不断发展,云计算平台已经成为了企业实现数字化转型的重要工具。
在云计算平台中,MQ队列可以用于服务之间的异步通信。
例如,在微服务架构中,每个服务都是一个独立的进程,它们之间需要进行数据交互。
使用MQ队列可以将服务之间的耦合度降到最低,从而实现服务之间的高效通信。
同时,MQ还可以对数据进行缓存和持久化存储,提高了系统的可靠性和容错性。
easynetq 用法 -回复

easynetq 用法-回复标题:深入理解与使用EasynetQEasynetQ是一个基于.NET的高级MQ(消息队列)接口,它提供了与RabbitMQ的无缝集成。
在高并发、分布式系统中,消息队列是一种非常重要的组件,它可以有效地解耦系统、提高系统的稳定性和扩展性。
本文将详细介绍EasynetQ的使用方法和步骤。
一、安装EasynetQ首先,我们需要在项目中安装EasynetQ。
如果你的项目是通过NuGet 管理包的,你可以直接在Package Manager Console中输入以下命令进行安装:bashInstall-Package EasyNetQ这将会下载并安装EasynetQ及其所有依赖项。
二、连接到RabbitMQ安装完EasynetQ后,我们就可以开始连接到RabbitMQ服务器了。
以下是一个基本的连接示例:csharpusing EasyNetQ;var bus = RabbitHutch.CreateBus("host=localhost");在这个例子中,我们使用了RabbitHutch类的CreateBus方法来创建一个IBus实例,这个实例是我们与RabbitMQ交互的主要接口。
参数"host=localhost"指定了RabbitMQ服务器的地址。
三、发布消息有了IBus实例后,我们就可以开始发布消息了。
以下是一个简单的发布消息的例子:csharpusing EasyNetQ;var bus = RabbitHutch.CreateBus("host=localhost");bus.Publish(new MyMessage { Text = "Hello, world!" });在这个例子中,我们调用了IBus实例的Publish方法来发布一个MyMessage类型的对象。
这个对象将被发送到RabbitMQ服务器,并可以被订阅了相应消息类型的消费者接收。
rocketmq sql92用法

rocketmq sql92用法一、概述RocketMQ是一个高性能、易用的消息队列系统,支持多种消息发布和订阅方式。
SQL92是RocketMQ提供的一种SQL查询语言,用于对消息队列中的数据进行查询、统计和分析。
本文档将介绍如何使用SQL92来操作RocketMQ。
二、SQL92语法SQL92语法与一般的SQL语法基本相同,主要包括SELECT、INSERT、UPDATE、DELETE等基本操作。
在使用SQL92时,需要注意以下几点:1. 数据库连接:在使用SQL92之前,需要先建立与RocketMQ数据库的连接。
可以使用JDBC(Java Database Connectivity)等连接方式。
2. 查询语句:可以使用SELECT语句来查询消息队列中的数据。
例如,SELECT * FROM messages可以查询messages表中的所有数据。
3. 条件语句:可以使用WHERE语句来指定查询条件。
例如,SELECT * FROM messages WHERE status = 'success'可以查询状态为'success'的消息数据。
4. 聚合函数:SQL92支持多种聚合函数,如COUNT、SUM、AVG等,可以对数据进行统计和分析。
5. 更新和删除操作:可以使用UPDATE和DELETE语句来更新或删除消息队列中的数据。
三、使用示例以下是一个使用SQL92查询消息队列中数据的示例:1. 连接数据库:使用JDBC等连接方式建立与RocketMQ数据库的连接。
2. 执行查询语句:执行SELECT * FROM messages WHERE status ='success'语句,查询状态为'success'的消息数据。
3. 处理查询结果:根据查询结果进行进一步的处理,如输出数据、保存到文件等。
四、常见问题及解决方法在使用SQL92时,可能会遇到一些常见问题,如连接失败、查询结果为空等。
msgsrv使用方法

msgsrv使用方法什么是msgsrv?msgsrv是一种消息传递服务,它允许应用程序之间通过消息进行通信。
msgsrv可以用于各种应用场景,例如实现实时聊天、通知推送、事件驱动等。
如何使用msgsrv?步骤1:注册msgsrv账号在使用msgsrv之前,首先需要注册一个账号。
访问msgsrv官方网站,在注册页面填写必要的信息,如用户名、密码等。
完成注册后,会收到一封确认邮件,点击确认链接激活账号。
步骤2:创建消息队列在成功登录msgsrv账号后,进入控制台界面。
点击创建消息队列按钮,并填写相关信息,如队列名称、描述、访问权限等。
点击确认后,系统会为您创建一个唯一的消息队列。
步骤3:发送消息在控制台界面中,可以找到刚刚创建的消息队列。
点击队列名称进入详情页,可以看到队列的基本信息和操作按钮。
点击发送消息按钮,在弹出的对话框中填写消息内容,并选择接收方。
点击发送后,消息将被发送至对应的接收方。
步骤4:接收消息接收方可以通过监听消息队列来接收消息。
在控制台中,点击队列名称进入详情页,点击接收消息按钮。
系统会为您生成一个监听代码片段。
将代码片段嵌入到接收方的应用程序中,并启动监听。
步骤5:处理消息接收方的应用程序会收到消息,并可以根据需求进行处理。
可以根据消息的内容进行业务逻辑处理,如展示消息、保存消息等。
处理完成后,可以选择确认消息,表示消息已经被成功处理,或者选择拒绝消息,表示消息需要重新发送。
msgsrv的高级功能消息类型msgsrv支持多种类型的消息,包括文本消息、图片消息、音频消息、视频消息等。
用户可以根据需求选择合适的消息类型进行发送。
消息过滤msgsrv提供了丰富的消息过滤功能,可以根据消息的内容、发送方、接收方等条件进行过滤。
用户可以通过设置过滤规则,只接收满足条件的消息。
消息推送msgsrv支持消息推送功能,可以将消息推送至指定的设备。
用户可以通过指定设备的标识符,将消息推送至特定的设备。
消息队列系列:RabbitmqTrace日志的使用

消息队列系列:RabbitmqTrace⽇志的使⽤⼀、什么是TraceTrace是Rabbitmq⽤于记录每⼀次发送的消息,⽅便使⽤Rabbitmq的开发者调试、排错。
可通过插件形式提供可视化界⾯⼆、Trace实现概况1、Trace启动后会⾃动创建系统Exchange:amq.rabbitmq.trace2、每个队列会⾃动绑定该Exchange,绑定后发送到队列的消息都会记录到Trace⽇志三、怎样使⽤Trace1、先了解Rabbitmq的使⽤及Web监控⼯具的使⽤:2、启动Trace插件a) 列出本机已安装的插件:rabbitmq-plugins list(请先定位到Rabbitmq服务安装⽬录)b) 启动Trace插件:rabbitmqctl trace_on (关闭Trace:rabbitmqctl trace_off)3、查看捕获到的Trace信息a) Management插件-->Admin-->Traceb) 新增Trace,格式分别是Text(⽅便⼈类阅读)、Json(⽅便机器识别)c) 发送消息,查看Trace拦截的信d) 查看⽇志信息(单击⽇志⽂件打开,这⾥是MyTrace.log)三、总结1、Rabbitmq的资料⽐较少,建议⼤家还是多看官⽅⽂档2、Trace主要通过插件⽅式提供3、Trace⽇志⽂件地址:C:\var\tmp\rabbitmq-tracing\MyTrace.log四、Rabbitmq启⽤⽇志功能记录消息队列收发情况1、启⽤⽇志插件命令rabbitmq-plugins enable rabbitmq_tracing2、到管理界⾯添加tracing点击“Admin”菜单,右边会多出⼀个“Tracing”的菜单,填写Name、Format、Max payload bytes、Pattern 然后点击“添加Add trace”即可添加⼀个⽇志填写说明Name:⾃定义,建议标准点容易区分Format:表⽰输出的消息⽇志格式,有Text和JSON两种,Text格式的⽇志⽅便⼈类阅读,JSON的⽅便程序解析。
uCOS_消息邮件和部队队列的使用方法
uCOS II 消息队列的使用方法2010-03-14 02:421、需在以下文件中配置如下内容OS_CFG.HOS_MAX_QS N 你需要的值消息队列的大小1,根据需要自己配置#define OS_Q_EN 1 /* Enable (1) or Disable (0) code generation for QUEUES */ #define OS_Q_ACCEPT_EN 1 /* Include code for OSQAccept() */ #define OS_Q_DEL_EN 1 /* Include code for OSQDel() */ #define OS_Q_FLUSH_EN 1 /* Include code for OSQFlush() */ #define OS_Q_POST_EN 1 /* Include code for OSQPost() */ #define OS_Q_POST_FRONT_EN 1 /* Include code for OSQPostFront() */ #define OS_Q_POST_OPT_EN 1 /* Include code for OSQPostOpt() */ #define OS_Q_QUERY_EN 1 /* Include code for OSQQuery() */第一句话:全部使能2,建立一个指向消息数组的指针数组,并且说明它的大小的大小,该指针数组必须申明为void类型,如下:void *MyArrayOfMsg[SIZE];3,声明一个OS_EVENT类型的指针指向生成的队列,如下:OS_EVENT *QSem;4,调用OSQcreate()函数创建消息队列,如下:QSem = OSQcreate(&MyArrayOfMsg[0],SIZE);第二句话:创建队列使用函数ucosii库函数OSQcreate() 这个函数有个返回值QSem 有两个形参,第一个是你刚才创建的指向消息的指针的数组*MyArrayOfMsg[SIZE] 他的首地址:&MyArrayOfMsg[0],好像也可以:MyArrayOfMsg,第二个是你刚才创建的指向消息的指针的数组的大小。
mq的使用场景和步骤
mq的使用场景和步骤MQ(Message Queue)是一种异步通信模式,在分布式系统中被广泛应用。
它将消息从一个应用程序传递到另一个应用程序,可以解耦应用程序之间的直接依赖关系。
MQ的使用场景:1. 异步任务处理:可以将耗时的任务放在消息队列中处理,提高系统的并发能力和响应速度。
2. 应用解耦:不同的应用之间可以通过消息队列进行解耦,提高系统的可伸缩性和可维护性。
3. 数据同步:可以将不同系统之间的数据同步操作通过消息队列进行异步处理。
4. 流量削峰:在大并发请求下,可以通过消息队列来控制系统的流量,避免系统崩溃或过载。
5. 日志处理:将日志消息发送到消息队列,然后通过消费者处理和存储,以降低日志系统的压力。
MQ的使用步骤:1. 安装和配置MQ系统:选择适合自己系统的MQ软件,如RabbitMQ、Kafka等,并进行相应的安装和配置。
2. 创建消息队列:在MQ系统中创建一个或多个消息队列,用于存储消息。
3. 发送消息:生产者将要发送的消息发送到消息队列中。
4. 接收消息:消费者监听(或订阅)消息队列,当有消息到达时,消费者接收并处理消息。
5. 处理消息:消费者处理接收到的消息,根据业务需求进行相应的处理逻辑。
6. 确认消息:当消费者成功处理一条消息后,向MQ系统发送确认消息,表示这条消息已经被处理完成。
7. 监控和调优:根据实际情况监控MQ的性能指标,进行性能调优以提高系统的稳定性和可靠性。
需要注意的是,不同的MQ系统可能会有一些细微的差别,具体的使用步骤可能会有所不同。
因此,在使用特定MQ系统之前,应该详细了解该MQ系统的使用文档和实践经验。
mqtt 使用流程
mqtt 使用流程摘要:一、MQTT 简介二、MQTT 使用流程1.客户端连接服务器2.订阅主题3.发布消息4.接收消息5.断开连接正文:一、MQTT 简介MQTT(Message Queuing Telemetry Transport,消息队列遁形传输)是一种基于发布/订阅(publish/subscribe)模式的轻量级消息传输协议,适用于物联网(IoT)场景。
MQTT 具有较低的功耗、较快的传输速度和较小的数据包大小,因此在无线传感器网络和嵌入式设备中得到了广泛应用。
二、MQTT 使用流程1.客户端连接服务器在使用MQTT 之前,首先需要搭建一个MQTT 服务器。
客户端(如智能设备、移动应用等)通过网络连接到MQTT 服务器。
客户端与服务器之间的连接采用SSL/TLS 加密,以确保数据传输的安全性。
2.订阅主题连接成功后,客户端可以订阅感兴趣的主题。
主题是服务器上定义的一种消息分类,客户端可以按照主题来接收消息。
订阅主题的方式是通过客户端向服务器发送订阅消息,服务器会将订阅消息存储在订阅列表中。
3.发布消息当有消息发布时,服务器会将消息发送到所有订阅了相应主题的客户端。
发布消息的方式是通过客户端向服务器发送发布消息请求,服务器收到请求后,将消息发布到对应主题的订阅列表中。
4.接收消息客户端订阅主题后,当有消息发布时,服务器会将消息推送到客户端。
客户端收到消息后,可以根据需要对消息进行处理,如显示、存储等。
5.断开连接在完成消息传输后,客户端可以主动断开与服务器的连接。
断开连接后,客户端将不再接收服务器推送的消息。
总之,MQTT 作为一种轻量级消息传输协议,在物联网场景中具有广泛的应用。
mq消息队列应用场景
mq消息队列应用场景MQ消息队列是一种用于异步通信的技术,它可以在分布式系统中传递消息。
它的应用场景非常广泛,下面我将为大家介绍一些常见的应用场景。
1. 订单处理:在电商平台上,当用户下单后,需要进行一系列的处理操作,如库存检查、支付确认、物流安排等。
这些操作可以通过消息队列来实现,将订单信息发送到消息队列中,然后由不同的服务订阅并处理这些消息,以提高订单处理的效率和可靠性。
2. 日志处理:在分布式系统中,各个服务产生的日志需要进行集中处理和存储。
通过将日志消息发送到消息队列中,可以使日志处理模块独立于其他服务,实现日志的异步处理和存储。
3. 异步通信:在一些需要耗时的操作中,如发送邮件、短信通知等,可以将这些操作转化为消息发送到消息队列中,由后台的服务异步处理,从而提高系统的响应速度。
4. 数据同步:在分布式系统中,不同的服务可能需要共享数据。
通过消息队列,可以实现数据的异步同步。
当一个服务修改了共享数据后,将数据变更消息发送到消息队列中,其他服务可以订阅这些消息并同步数据。
5. 事件驱动:在一些业务场景中,需要根据事件的发生来触发相应的操作。
通过消息队列,可以将事件消息发送到消息队列中,然后由监听者订阅这些事件消息并执行相应的操作。
6. 应用解耦:在复杂的系统中,各个模块之间可能存在依赖关系。
通过使用消息队列,可以将模块解耦,提高系统的可扩展性和可维护性。
7. 流量削峰:在系统高峰期,可能会出现大量的请求,导致系统负载过高。
通过消息队列,可以将请求消息缓存起来,然后由后台的服务逐个处理,从而平滑系统的负载。
8. 分布式事务:在分布式系统中,可能存在跨多个服务的事务操作。
通过消息队列,可以实现分布式事务的最终一致性,提高系统的可靠性。
以上是一些常见的MQ消息队列的应用场景,通过使用消息队列,可以提高系统的性能、可靠性和可扩展性,使系统更加灵活和高效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uCOS II 消息队列的使用方法 需在以下文件中配置如下内容: OS_CFG.H OS_MAX_QS N 你需要的值 根据需要自己配置 #define OS_Q_EN 1 /* Enable (1) or Disable (0) code generation for QUEUES */ #define OS_Q_ACCEPT_EN 1 /* Include code for OSQAccept() */ #define OS_Q_DEL_EN 1 /* Include code for OSQDel() */ #define OS_Q_FLUSH_EN 1 /* Include code for OSQFlush() */ #define OS_Q_POST_EN 1 /* Include code for OSQPost() */ #define OS_Q_POST_FRONT_EN 1 /* Include code for OSQPostFront() */ #define OS_Q_POST_OPT_EN 1 /* Include code for OSQPostOpt() */ #define OS_Q_QUERY_EN 1 /* Include code for OSQQuery() */ 2、 建立一个指向消息数组的指针和数组的大小,该指针数组必须申明为void类型,如下: void *MyArrayOfMsg[SIZE]; 3、 声明一个OS_EVENT类型的指针指向生成的队列,如下: OS_EVENT *QSem; 4、 调用OSQcreate()函数创建消息队列,如下: QSem = OSQcreate(&MyArrayOfMsg[0],SIZE); 5、 等待消息队列中的消息,OSQPend()。void *OSQPend (OS_EVENT *pevent, INT16U timeout, INT8U *err): 必须保证消息队列已经被建立。 timeout定义的是等待超时时间,如果为0则表示无期限的等待 err表示的是在等待消息队列出错时的返回类型,有以下几种: OS_ERR_PEVENT_NULL //消息队列不存在 OS_ERR_EVENT_TYPE OS_TIMEOUT //消息队列等待超时 OS_NO_ERR //消息队列接收到消息
获得消息队列示例 type *GETQ; INT8U err; GETQ = (type *)OSQPend(QSem, time, &err); if(err == OS_NO_ERR){ 无错处理 } else{ 出错处理 } 6.1 向消息队列发送一则消息(FIFO),OSQPost(); INT8U OSQPost (OS_EVENT *pevent, void *msg): 函数返回值有: OS_ERR_PEVENT_NULL OS_ERR_POST_NULL_PTR OS_ERR_EVENT_TYPE OS_Q_FULL OS_NO_ERR 参数:pevent,*msg 6.2 向消息队列发送一则消息(LIFO) INT8U OSQPostFront (OS_EVENT *pevent, void *msg) 6.3 向消息队列发送一则消息(LIFO或者FIFO) INT8U OSQPostOpt (OS_EVENT *pevent, void *msg, INT8U opt) 参数: opt 如果经opt参数中的OS_POST_OPT_BROADCAST位置为1,则所有正在等待消息的任务都能接收到这则消息,并且被OS_EventTaskRdy()从等待列表中删除 如果不是广播方式,则只有等待消息的任务中优先级最高的任务能够进入就绪态。然后,OS_EventTaskRdy()从等待列表中把等待消息的任务中优先级最高的任务删除。 注: 如果此函数由ISR调用,则不会发生任务切换,直到中断嵌套的最外层中断服务子程序调用OSIntExit()函数时,才能进行任务切换 7、 无等待的从消息队列中获得消息,OSQAccept(); void *OSQAccept (OS_EVENT *pevent, INT8U *err) err可能的返回值: OS_ERR_PEVENT_NULL OS_Q_EMPTY OS_NO_ERR 函数的返回值:消息,0 8、 清空消息队列 INT8U OSQFlush (OS_EVENT *pevent) 函数返回值: OS_ERR_PEVENT_NULL OS_ERR_EVENT_TYPE OS_NO_ERR 9、 获取消息队列的状态,OSQQuery(); INT8U OSQQuery (OS_EVENT *pevent, OS_Q_DATA *p_q_data) 函数返回值: OS_ERR_PEVENT_NULL OS_ERR_EVENT_TYPE OS_NO_ERR OS_Q_DATA数据结构在ucos_ii.h中
// 采用消息队列的ADC采样任务原型代码,建议与uC/OS-II作者的ADC通用例程一起使用 // 说明这里消息队列msg_q不用于储存ADC结果。 void ADCTask(void * pParam) { char *cmd; pParam=pParam; while(1) { cmd=OSQPend(msg_q,100,&err); // waiting for command if(err==OS_NO_ERR) { switch (*cmd) { case '1': printf("Command 1\n"); break; case '2': printf("Command 2\n"); break; default : printf("Error command.\n"); break; } } else {// no command , then sampling... if(err==OS_TIMEOUT) // sampling while timeout. printf("ADC sampling ..."); StoreADResult(); } } }
数据队列 Queue 的使用: 数据队列 数据队列一般用于数据缓存,可以用来平衡速率不同的两个部件,使快速部件无需等待慢速部件。 数据队列一般是先入先出的,但本数据队列可以配置成后入先出。本数据队列是可配置可裁剪的模块,并且不依赖于操作系统,可以在前后台系统中使用。数据队列使用的空间由用户分配且由这个空间的地址唯一识别一个数据队列。
API函数 数据队列软件模块包括的API函数如下所示: API函数名 功能简介 QueueCreate 建立数据队列 QueueRead 获取队列中的数据 QueueWrite 先进先出方式发送数据 QueueWriteFront 后进先出方式发送数据 QueueFlush 清空队列 QueueNData 取得队列中已存储数据的数据 QueueSize 取得队列中总共可以存储的数据数目 /****************************************************************************************** ** 文件名: queue.c ** 描 述: 数据队列的中间件 ********************************************************************************************************/ #include "app_cfg.h" #define IN_QUEUE
#define QUEUE_OK 1 #define NOT_OK 0 #define QUEUE_EMPTY 2 #define QUEUE_FULL 3 #define Q_WRITE_MODE 4 #define Q_WRITE_FRONT_MODE 5
#define QUEUE_DATA_TYPE INT8U typedef struct { QUEUE_DATA_TYPE *pOut; /* 指向数据输出位置 */ QUEUE_DATA_TYPE *pIn; /* 指向数据输入位置 */ QUEUE_DATA_TYPE *pEnd; /* 指向Buf的结束位置 */ uint16 nBytesPerRec; /* 队列中每个记录包含数据个数 */ uint16 nMaxRecNum; /* 队列可以存储的记录数目 */ uint16 nRecNum; /* 队列中数据个数 */ uint8 (* ReadEmpty)(); /* 读空处理函数*/ uint8 (* WriteFull)(); /* 写满处理函数 */ QUEUE_DATA_TYPE Buf[1]; /* 存储数据的空间 */ } DataQueue;
//SizeOfBuf是Buf的字节长度。 //QUEUE_DATA_TYPE是指可定义的数据类型可以Uint8,Uint32,等。 //Queue是DataQueue型结构体。
/********************************************************************************************************* ** 函数名称: QueueCreate ** 功能描述: 初始化数据队列 ** 输 入: Buf :为队列分配的存储空间地址 ** SizeOfBuf:为队列分配的存储空间大小(字节) ** BytesPerRec: 队列每个记录占用字节数 ** ReadEmpty:为队列读空时处理程序 ** WriteFull:为队列写满时处理程序 ** 输 出: NOT_OK:参数错误