草庐IT

A-Buffer

全部标签

Android USB 主机 API : bulk transfer buffer size

我正在编写软件在平板电脑之间进行通信(摩托罗拉XoomAndroid版本4.0.3和内核版本2.6.39.4)和使用USB主机API的外围设备通过安卓。我只使用两种通信方式:控制:controlTransfer(intrequestType,intrequest,intvalue,intindex,byte[]buffer,intlength,inttimeout)批量:bulkTransfer(UsbEndpointendpoint,byte[]buffer,intlength,inttimeout)控制传输工作正常,但批量传输有问题。我只能使用32768作为bulkTransfer

C++ Protocol Buffer,发送整数数组

我有一个嵌入式C++项目,我从硬件设备读取一系列int32,然后将它们作为大型数据结构的一部分打包到一个int数组中,然后通过TCP/IP发送到远程系统。所以,我使用了一个简单的数据结构,其中定义了一堆东西,现在我想将其转换为使用ProtocolBuffers。所以,我正在考虑使用“重复的int32数据”作为我的原型(prototype)buff的元素。但我想避免使用这样的循环:inthardware_data[1000];//Anarraythatholdsthedatareadfromthehardwarefor(inti=0;i我宁愿使用一种有效的方法,例如使protobuff仅

c++ - 使用标准 :vector as low level buffer

这里的用法和Usingread()directlyintoaC++std:vector一样,但有一个重新分配的帐户。输入文件的大小未知,因此当文件大小超过缓冲区大小时,缓冲区将通过加倍大小重新分配。这是我的代码:#include#include#includeintmain(){constsize_tinitSize=1;std::vectorbuf(initSize);//sizesbuftoinitSize,so&buf[0]belowisvalidstd::ifstreamifile("D:\\Pictures\\input.jpg",std::ios_base::in|std:

c++ - 谷歌 Protocol Buffer : parseDelimitedFrom and writeDelimitedTo for C++

很抱歉再次提出这个问题,但我们能否一劳永逸地在此处发布一些与Java函数相匹配的C++函数?它们似乎没有被谷歌添加,而且自己编写它们是一件很痛苦的事情。下面的答案使用了一些this和this. 最佳答案 这里有两个带有boostasio的基本版本。请注意,为了使其正常工作,从技术上讲,在第二个版本中,需要查看缓冲区中有多少数据,计算出header有多大(VarInt不是固定大小),但CodedInputStream具有GetDirectBufferPointer,有一个指向它所在位置的指针,所以从这个指针可以计算出剩余的消息大小,将

c++ - 动态大小的 boost::asio::buffer

我正在像这样从boost::asio::ip::udp::socket读取数据:usingboost::asio::ip::udp;//...charrecv_buf[128];udp::endpointsender_endpoint;size_tlen=socket.receive_from(boost::asio::buffer(recv_buf),sender_endpoint);现在,这工作得很好,但我现在能够接收的最大字符数是127。但是我遇到了一个问题,因为我需要接受一些长度可能变化很大的数据输入(并且是例如,不是带有前缀header的明确定义的长度)。对此的解决方案是动态

c++ - OpenGL 3 : glBindVertexArray invalidates GL_ELEMENT_ARRAY_BUFFER

我确信如果您通过glBindBuffer()绑定(bind)一个缓冲区,您可以安全地假设它保持绑定(bind)状态,直到目标通过另一次调用glBindBuffer()。因此,当我发现调用glBindVertexArray()会将绑定(bind)到GL_ELEMENT_ARRAY目标的缓冲区设置为0时,我感到非常惊讶。这是最小的C++示例代码:GLuintbuff;glGenBuffers(1,&buff);std::cout我在初始化OpenGL3.2设备上下文后立即运行此代码并获得以下输出:Bufferis1BoundbeforeglBindVertexArray:1Boundaft

c++ - 带有 Protocol Buffer 的 GzipOutputStream 和 GzipInputStream 的简单工作示例

在对ProtocolBuffers进行了几天的试验后,我尝试压缩文件。使用Python,这很容易做到,不需要任何游戏与溪流。因为我们的大部分代码都是用C++编写的,所以我想压缩/解压相同语言的文件。我试过boostgzip库,但无法让它工作(不压缩):intwriteEventCollection(HEP::MyProtoBufClass*protobuf,std::stringfilename,unsignedintcompressionLevel){ofstreamfile(filename.c_str(),ios_base::out|ios_base::binary);filte

c++ - 强制 boost::asio::buffer 按值复制

我使用boost::asio::buffer来发送消息voidSend(conststd::string&messageData){socket.async_write(boost::asio::buffer(messageData),...);}并且在io_service线程的某处遇到“字符串迭代器不可取消引用”运行时错误。当我创建对象的变量来存储缓冲区的消息数据时:voidSend(conststd::string&messageData){this->tempStorage=messageData;socket.async_write(boost::asio::buffer(th

c++ - 解析 Google Protocol Buffer 的文本文件

根据示例代码https://developers.google.com/protocol-buffers/docs/cpptutorial,它们展示了如何在二进制格式的原型(prototype)文件中进行解析。使用tutorial::AddressBookaddress_book;{//Readtheexistingaddressbook.fstreaminput(argv[1],ios::in|ios::binary);if(!address_book.ParseFromIstream(&input)){cerr我尝试为文本格式的输入文件删除ios::binary,但仍然无法读取文件

c++ - 将 `Vertex Buffer Object` 绑定(bind)到 `Vertex Array Objects` 后,我应该删除它吗?

我创建了一个VBO(顶点缓冲区对象)和VAO(顶点数组对象)并执行了以下操作:glBindVertexArray(vao);glBindBuffer(GL_ARRAY_BUFFER,vbo);glBufferData(...);glVertexAttribPointer(...);glEnableVertexAttribArray(0);glBindVertexArray(0);我可以在完成此操作后删除vbo,然后假设一切正常,然后使用vao绘制吗?我知道缓冲区绑定(bind)到vao所以我假设我可以。问题是,如果我在我的计算机(Intel图形)上删除缓冲区,它会工作得很好(一切都正确