ESP32_UART_Bluetooth_Converter 概述 它是一种使用 ESP32-WROOM-32 模块将 UART 和蓝牙 SPP 相互转换并实现无线串行通信的设备。 即使微机没有无线通信功能,也不需要修改程序或引入新的开发环境,可以像传统的串行通信一样进行通信。 由于ESP32是3.3V驱动,接5V驱动微机时需要分压。 !! 即使连接了5V,我也不会立即死亡 如何使用 通过主机上的滑动开关选择串行通信的波特率。 (9600bps / 115200bps) 将主体连接到微型计算机等。 将电源连接到主机后,它将进入蓝牙连接等待状态。 ESP32-XXXX 是通过添加 PC 的蓝牙设备进行通信的。 在设备设置中选择任何波特率。这时候还应该检查一下虚拟COM口的端口号。 用teraterm等终端软件打开虚拟COM口,开始通讯。 您还可以与智能手机上的任何终端软件进行通信。 电路
2022-04-21 20:14:09 7.24MB HTML
1
音视频格式转化工具,非常强大,mac版 name: www.macmofo.com sn: 000016-D84U8Q-8BN16B-WP2BV6-9RA73A-X7D4V3-M6P35J-86YPKV-YB9U6B-QTD2MF
2022-04-19 16:34:18 39.78MB mac mov mp4 格式工厂
1
真正的破解版本,测试可用#ifndef PROCEDURAL_MESH_GENERATOR_INCLUDED #define PROCEDURAL_MESH_GENERATOR_INCLUDED namespace Procedural { /** \defgroup objgengrp Object generators Elements for procedural mesh generation of various objects. @{ @} */ /** \ingroup objgengrp Superclass of everything that builds meshes */ template class MeshGenerator { protected: /// A pointer to the default scene manager //Ogre::SceneManager* mSceneMgr; /// U tile for texture coords generation Ogre::Real mUTile; /// V tile for texture coords generation Ogre::Real mVTile; /// Whether to produces normals or not bool mEnableNormals; /// The number of texture coordinate sets to include unsigned char mNumTexCoordSet; /// Rectangle in which the texture coordinates will be placed Ogre::Vector2 mUVOrigin; /// If set to true, the UV coordinates coming from the mesh generator will be switched. /// It can be used, for example, if your texture doesn't fit the mesh generator's assumptions about UV. /// If UV were to fit in a given rectangle, they still fit in it after the switch. bool mSwitchUV; /// Orientation to apply the mesh Ogre::Quaternion mOrientation; /// Scale to apply the mesh Ogre::Vector3 mScale; /// Position to apply to the mesh Ogre::Vector3 mPosition; // Whether a transform has been defined or not bool mTransform; public: /// Default constructor /// \exception Ogre::InvalidStateException Scene Manager is not set in OGRE root object MeshGenerator() : mUTile(1.f), mVTile(1.f), mEnableNormals(true), mNumTexCoordSet(1), mUVOrigin(0,0), mSwitchUV(false), mOrientation(Ogre::Quaternion::IDENTITY), mScale(1,1,1), mPosition(0,0,0), mTransform(false) { } /** * Builds a mesh. * @param name of the mesh for the MeshManager * @param group ressource group in which the mesh will be created */ Ogre::MeshPtr realizeMesh(const std::string& name = "", const Ogre::String& group = "General") { TriangleBuffer tbuffer; addToTriangleBuffer(tbuffer); Ogre::MeshPtr mesh; if (name == "") mesh = tbuffer.transformToMesh(Utils::getName(), group); else mesh = tbuffer.transformToMesh(name, group); return mesh; } /** * Outputs a triangleBuffer */ TriangleBuffer buildTriangleBuffer() const { TriangleBuffer tbuffer; addToTriangleBuffer(tbuffer); return tbuffer; } /** * Overloaded by each generator to implement the specifics */ virtual void addToTriangleBuffer(TriangleBuffer& buffer) const=0; /** * Sets U Tile, ie the number by which u texture coordinates are multiplied (default=1) */ inline T& setUTile(Ogre::Real uTile) { mUTile = uTile; return static_cast(*this); } /** * Sets V Tile, ie the number by which v texture coordinates are multiplied (default=1) */ inline T& setVTile(Ogre::Real vTile) { mVTile = vTile; return static_cast(*this); } /** * Sets the texture rectangle */ inline T& setTextureRectangle(const Ogre::RealRect& textureRectangle) { mUVOrigin = Ogre::Vector2(textureRectangle.top, textureRectangle.left); mUTile = textureRectangle.right-textureRectangle.left; mVTile = textureRectangle.bottom-textureRectangle.top; return static_cast(*this); } /** * Sets whether normals are enabled or not (default=true) */ inline T& setEnableNormals(bool enableNormals) { mEnableNormals = enableNormals; return static_cast(*this); } /** * Sets the number of texture coordintate sets (default=1) */ inline T& setNumTexCoordSet(unsigned char numTexCoordSet) { mNumTexCoordSet = numTexCoordSet; return static_cast(*this); } /// Sets whether to switch U and V texture coordinates inline T& setSwitchUV(bool switchUV) { mSwitchUV = switchUV; return static_cast(*this); } /// Sets an orientation to give when building the mesh inline T& setOrientation(const Ogre::Quaternion& orientation) { mOrientation = orientation; mTransform = true; return static_cast(*this); } /// Sets a translation baked into the resulting mesh inline T& setPosition(const Ogre::Vector3& position) { mPosition = position; mTransform = true; return static_cast(*this); } /// Sets a translation baked into the resulting mesh inline T& setPosition(Ogre::Real x, Ogre::Real y, Ogre::Real z) { mPosition = Ogre::Vector3(x, y, z); mTransform = true; return static_cast(*this); } /// Sets a scale baked into the resulting mesh inline T& setScale(const Ogre::Vector3& scale) { mScale = scale; mTransform = true; return static_cast(*this); } /// Sets a uniform scale baked into the resulting mesh inline T& setScale(Ogre::Real scale) { mScale = Ogre::Vector3(scale); mTransform = true; return static_cast(*this); } /// Sets a scale baked into the resulting mesh inline T& setScale(Ogre::Real x, Ogre::Real y, Ogre::Real z) { mScale = Ogre::Vector3(x, y, z); mTransform = true; return static_cast(*this); } /// Resets all transforms (orientation, position and scale) that would have been applied to the mesh to their default values inline T& resetTransforms() { mTransform = false; mPosition = Ogre::Vector3::ZERO; mOrientation = Ogre::Quaternion::IDENTITY; mScale = Ogre::Vector3(1); return static_cast(*this); } protected: /// Adds a new point to a triangle buffer, using the format defined for that MeshGenerator /// @param buffer the triangle buffer to update /// @param position the position of the new point /// @param normal the normal of the new point /// @param uv the uv texcoord of the new point inline void addPoint(TriangleBuffer& buffer, const Ogre::Vector3& position, const Ogre::Vector3& normal, const Ogre::Vector2& uv) const { if (mTransform) buffer.position(mPosition + mOrientation * (mScale * position)); else buffer.position(position); if (mEnableNormals) { if (mTransform) buffer.normal(mOrientation * normal); else buffer.normal(normal); } if (mSwitchUV) for (unsigned char i=0; i //* //\defgroup objgengrp Object generators //Elements for procedural mesh generation of various objects. //@{ //@} // //* //\ingroup objgengrp //Superclass of everything that builds meshes // public abstract class MeshGenerator { /// A pointer to the default scene manager //Ogre::SceneManager* mSceneMgr; /// U tile for texture coords generation protected Ogre.Real mUTile = new Ogre.Real(); /// V tile for texture coords generation protected Ogre.Real mVTile = new Ogre.Real(); /// Whether to produces normals or not protected bool mEnableNormals; /// The number of texture coordinate sets to include protected byte mNumTexCoordSet; /// Rectangle in which the texture coordinates will be placed protected Ogre.Vector2 mUVOrigin = new Ogre.Vector2(); /// If set to true, the UV coordinates coming from the mesh generator will be switched. /// It can be used, for example, if your texture doesn't fit the mesh generator's assumptions about UV. /// If UV were to fit in a given rectangle, they still fit in it after the switch. protected bool mSwitchUV; /// Orientation to apply the mesh protected Ogre.Quaternion mOrientation = new Ogre.Quaternion(); /// Scale to apply the mesh protected Ogre.Vector3 mScale = new Ogre.Vector3(); /// Position to apply to the mesh protected Ogre.Vector3 mPosition = new Ogre.Vector3(); // Whether a transform has been defined or not protected bool mTransform; /// Default constructor /// \exception Ogre::InvalidStateException Scene Manager is not set in OGRE root object public MeshGenerator() { mUTile = 1.f; mVTile = 1.f; mEnableNormals = true; mNumTexCoordSet = 1; mUVOrigin = new Ogre.Vector2(0,0); mSwitchUV = false; mOrientation = Ogre.Quaternion.IDENTITY; mScale = new Ogre.Vector3(1,1,1); mPosition = new Ogre.Vector3(0,0,0); mTransform = false; } // * // * Builds a mesh. // * @param name of the mesh for the MeshManager // * @param group ressource group in which the mesh will be created // public Ogre.MeshPtr realizeMesh(string name) { return realizeMesh(name, "General"); } public Ogre.MeshPtr realizeMesh() { return realizeMesh("", "General"); } //C++ TO C# CONVERTER NOTE: Overloaded method(s) are created above to convert the following method having default parameters: //ORIGINAL LINE: Ogre::MeshPtr realizeMesh(const string& name = "", const Ogre::String& group = "General") public Ogre.MeshPtr realizeMesh(string name, Ogre.String group) { TriangleBuffer tbuffer = new TriangleBuffer(); addToTriangleBuffer(ref tbuffer); Ogre.MeshPtr mesh = new Ogre.MeshPtr(); if (name == "") mesh = tbuffer.transformToMesh(Utils.getName(), group); else mesh = tbuffer.transformToMesh(name, group); return mesh; } // * // * Outputs a triangleBuffer // //C++ TO C# CONVERTER WARNING: 'const' methods are not available in C#: //ORIGINAL LINE: TriangleBuffer buildTriangleBuffer() const public TriangleBuffer buildTriangleBuffer() { TriangleBuffer tbuffer = new TriangleBuffer(); addToTriangleBuffer(ref tbuffer); return tbuffer; } // * // * Overloaded by each generator to implement the specifics // public abstract void addToTriangleBuffer(ref TriangleBuffer buffer) const; // * // * Sets U Tile, ie the number by which u texture coordinates are multiplied (default=1) // public T setUTile(Ogre.Real uTile) { mUTile = uTile; return (T)( this); } // * // * Sets V Tile, ie the number by which v texture coordinates are multiplied (default=1) // public T setVTile(Ogre.Real vTile) { mVTile = vTile; return (T)( this); } // * // * Sets the texture rectangle // public T setTextureRectangle(Ogre.RealRect textureRectangle) { mUVOrigin = Ogre.Vector2(textureRectangle.top, textureRectangle.left); mUTile = textureRectangle.right-textureRectangle.left; mVTile = textureRectangle.bottom-textureRectangle.top; return (T)( this); } // * // * Sets whether normals are enabled or not (default=true) // public T setEnableNormals(bool enableNormals) { mEnableNormals = enableNormals; return (T)( this); } // * // * Sets the number of texture coordintate sets (default=1) // public T setNumTexCoordSet(byte numTexCoordSet) { mNumTexCoordSet = numTexCoordSet; return (T)( this); } /// Sets whether to switch U and V texture coordinates public T setSwitchUV(bool switchUV) { mSwitchUV = switchUV; return (T)( this); } /// Sets an orientation to give when building the mesh public T setOrientation(Ogre.Quaternion orientation) { mOrientation = orientation; mTransform = true; return (T)( this); } /// Sets a translation baked into the resulting mesh public T setPosition(Ogre.Vector3 position) { mPosition = position; mTransform = true; return (T)( this); } /// Sets a translation baked into the resulting mesh public T setPosition(Ogre.Real x, Ogre.Real y, Ogre.Real z) { mPosition = Ogre.Vector3(x, y, z); mTransform = true; return (T)( this); } /// Sets a scale baked into the resulting mesh public T setScale(Ogre.Vector3 scale) { mScale = scale; mTransform = true; return (T)( this); } /// Sets a uniform scale baked into the resulting mesh public T setScale(Ogre.Real scale) { mScale = Ogre.Vector3(scale); mTransform = true; return (T)( this); } /// Sets a scale baked into the resulting mesh public T setScale(Ogre.Real x, Ogre.Real y, Ogre.Real z) { mScale = Ogre.Vector3(x, y, z); mTransform = true; return (T)( this); } /// Resets all transforms (orientation, position and scale) that would have been applied to the mesh to their default values public T resetTransforms() { mTransform = false; mPosition = Ogre.Vector3.ZERO; mOrientation = Ogre.Quaternion.IDENTITY; mScale = Ogre.Vector3(1); return (T)( this); } /// Adds a new point to a triangle buffer, using the format defined for that MeshGenerator /// @param buffer the triangle buffer to update /// @param position the position of the new point /// @param normal the normal of the new point /// @param uv the uv texcoord of the new point //C++ TO C# CONVERTER WARNING: 'const' methods are not available in C#: //ORIGINAL LINE: inline void addPoint(TriangleBuffer& buffer, const Ogre::Vector3& position, const Ogre::Vector3& normal, const Ogre::Vector2& uv) const protected void addPoint(ref TriangleBuffer buffer, Ogre.Vector3 position, Ogre.Vector3 normal, Ogre.Vector2 uv) { if (mTransform) buffer.position(mPosition + mOrientation * (mScale * position)); else buffer.position(position); if (mEnableNormals) { if (mTransform) buffer.normal(mOrientation * normal); else buffer.normal(normal); } if (mSwitchUV) for (byte i =0; i
2022-04-13 00:25:44 216KB C++ to C# Converter
1
FFmpeg Batch AV Converter是一款免费的通用音频和视频编码器,只需单击几下鼠标,即可在拖放式进度信息的便捷GUI中使用ffmpeg命令行的全部功能。 由于具有多文件编码功能,它可能是可用的最快的a / v批处理编码器,因为它通过启动多达用户CPU线程数的多个并发进程来最大限度地利用系统资源。 您可以更改编码优先级,暂停和继续,设置自动关机。 对于经验丰富的ffmpeg用户以及初学者来说,它都是不错的选择。 它为几乎所有音频/视频格式提供了无限的单文件或多文件批处理编码。 您可以使用任何一组参数,并在开始编码之前尝试使用它们。 您可以操纵和多路复用流,批量字幕视频(作为跟踪和硬编码),修剪,连接,录制屏幕,捕获M3u8或YouTube URL。 您还可以访问有用的多媒体文件信息。 一些奇特的向导使初学者更轻松。
2022-04-12 23:30:27 96.15MB 开源软件
1
该程序允许用户将PDF转换为Word、PowerPoint、Exce、Html、图像、Text等格式,并具有强有力的PDF创建、PDF编辑、PDF扫描与存档功能。扫描功能将允许你通过该软件直接将纸质文件转变为PDF文档。另外, 软件使用非常简单,具有功能强大所见即所得(WYSIWYG )用户界面。软件还支持直接将Word转换成PDF格式和 Excel。操作简单,转换效果非常不错,特别在是转换复杂的PDF格式时,其优势特别明显 。 PDF格式转换功能: 1、无需安装Word、Excel 即可将PDF 转 Word;PDF 转 Excel ;PDF 转 PowerPoint; 2、将多个 PDF 表格合并为一个 Excel 表单;从 PDF 文件中将数据提取为 .CSV 文件;TIFF 至 PDF 转换器; 3、 将PDF 文件内容导出为任何可支持的格式转换(.docx、.doc、.rtf、.xlsx、.xml、.pptx、.html 或 .txt)。 其他特色功能: 页眉和页脚复原:Solid Converter PDF为您提供转换页眉和/或页脚的选项。您可选择将其放在 Word 的页眉/页脚功能中,或者选择将其放在档案的主体中,使页眉/页脚作为独立的文字方块出现在每一页。第三种选项则是您可将其一起移除掉。 旋转文字自动复原:为转换包含弯曲、倾斜或倒置文字的 PDF 发愁? 别发愁。 Solid Converter PDF version 3.1 给予您从 PDF 转换文字的能力,无论其旋转方向如何,均无问题。 表格识别:Solid Converter PDF 能够将表格从pdf转换成word转换器,同时保持表格的页面,包括方框和表格栏区。表格栏区将被识别出来,并转换至文字方框,以供轻松编辑。
2022-04-12 20:51:48 115.95MB Solid
1
Data Converters by Franco Maloberti
2022-04-11 09:31:50 19.99MB Data Converter ADC DAC
1
从.ssbp转换并组装Sprite **仅支持SpriteStudio5 DATA_VERSION 3 .ssbp文件** 已知的问题 不执行顶点变换(可能导致零件重叠以及尺寸/位置不正确) 武器和其他选项零件/动画(斗篷,尾巴,效果)未组合在一起 要求 (可选。建议用于SVG操作) 如何使用 下载并解压缩.zip 复制“ convertSSBP.py”和“ SpriteAssembler.html” 导航到包含.ssbp文件和纹理图像的目录 粘贴“ convertSSBP.py”和“ SpriteAssembler.html” 从包含.ssbp文件和纹理的目录中运行“ convertSSBP.py”,应生成5个JavaScript文件 Linux / Mac python convertSSBP.py [filename of .ssbp] 视窗 py convertSSBP
2022-04-10 09:05:15 8KB Python
1
具有GUI的简单转换器工具(在JavaFX上编写),用于将大型XML文件转换为JSON以及将JSON转换为XML(指示进度),并使用少量内存进行转换。 从1.2.0版开始,应用程序支持按模式从目录批量转换文件。 使用Java 1.8+(http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)。 Mac,Linux和Windows的发行版已经嵌入了JRE,因此只需下载适当的发行版并启动应用程序即可。
2022-04-10 08:43:14 68.87MB 开源软件
1
最新版的Solid Converter PDF v7.3 (build 1550) 已经发布了,就在前几天。刚刚下载下来安装了一下,完美破解!我发现7.3版本体积比7.1大好多,前者只有20多M近30M,新版本达到44.5MB。到底增加些什么功能呢?一起来看看吧!官方的更新说明外加中文翻译。
2022-04-04 16:16:37 48.77MB PDF WORD 转换
1
Chrome 书签转换器 用于将 Chrome bookmark.bak 文件转换为 Chrome Bookmark.html 文件的脚本,以便您可以从 AppData 文件导入书签。 我遇到了在重新安装 Windows 之前忘记从 Chrome 导出书签的情况。 我拿了我的备份,发现你不能直接导入 Chrome 用来存储书签的 bookmarks.bak 文件。 在查看结构之后,我构建了一个解析器来将文件转换为 Chrome 乐于导入的 .html 格式。 如何跑步 将 convertor.php 添加到服务器。 将您的 .bak 文件上传为 bookmarks.txt(或在脚本中重命名以匹配)。 运行脚本。 您的书签将被转换,并保存为 export.html 笔记 我很快就把它放在了一起,所以它可能不是最有效的,也不支持 .bak 文件的所有用例。 它是递归的,因此它将保持文
2022-04-02 16:31:22 2KB PHP
1