Database Arduino从sd卡读取数据库文件
我参与了一个项目,该项目使用arduino作为一个类似这样的配电盘的测试设备 用户将通过键盘输入“类型”编号,根据输入,设备应能够重新分配pin模式 对我来说,其他的一切似乎都是完美无瑕的,只是我已经到了有太多可能的类型的地步。目前,我能够使用switch-case语句完成所需的过程,因为对于原型,我决定只合并10种类型 主要目标是该设备应能够区分具有子类型(100+)的多个(1-100)类型。因此,总共可能有数百个项目需要存储在设备中,这就是为什么我决定使用SD卡来保存数据 我对编程并不陌生,所以我可以很容易地掌握概念,但我现在最大的问题是我不知道实现这个过程的最佳方法 我所要求的只是某种处理流程,用于在sd卡上的文件上执行查询并返回值(需要分配的管脚号,以便设备允许在某些管脚上输入并在某些管脚上发送输出)。不需要特定的行,但非常感谢提供查询和返回值的示例。谢谢Database Arduino从sd卡读取数据库文件,database,search,arduino,Database,Search,Arduino,我参与了一个项目,该项目使用arduino作为一个类似这样的配电盘的测试设备 用户将通过键盘输入“类型”编号,根据输入,设备应能够重新分配pin模式 对我来说,其他的一切似乎都是完美无瑕的,只是我已经到了有太多可能的类型的地步。目前,我能够使用switch-case语句完成所需的过程,因为对于原型,我决定只合并10种类型 主要目标是该设备应能够区分具有子类型(100+)的多个(1-100)类型。因此,总共可能有数百个项目需要存储在设备中,这就是为什么我决定使用SD卡来保存数据 我对编程并不陌生,
另外,设备将不会连接到任何其他平台。您可以在SD卡()上存储一些数据,但它不是可编译的代码,因此您必须以ASCII格式存储一些数据结构 另一个建议是使用不同型号的Arduino,比如Arduino Due,它的代码闪存容量高达512KB(普通Arduino有32KB) 这并不能解决您的根本问题,即大开关语句。请看一下这些想法:
struct first_level_map
{
string type;
uint8_t firs_level_id;
}
struct second_level_map
{
string subtype;
uint8_t pin_out;
}
struct first_level_map type_array[100];
struct second_level_map subtype_array[100];
struct first_second_map
{
uint8_t second_level_id;
struct second_level_map subtype_array[100];
}
struct first_second_map first_second_map_array[100];
键入用户输入---->Get first_level_id-->Index first_second_map_array---->Get second_level_id-->From Subtype-->Get pin out位屏蔽思想似乎很容易实现。这实际上是个好主意!如果数组中有24位,会不会有问题?用户输入是字符串,因为im使用键盘进行用户输入,输入中可能有“.”(句号)。我计划从sd卡读取一个文件,并运行一个特定字符串的查询,例如键入12.1,然后将以下参数保存到一个变量中,以便在代码中使用。我对如何实现这一点有一个模糊的想法,但是我唯一关心的是类型号可以达到200个元素。就arduino而言,这会是一个问题吗?对于24位的位掩码,可以使用无符号int 32位,如果不可用,则使用两个uint16。200可以很容易地容纳在uint8_t中,所以这不会是问题。如果你不打算更新,你也可以将这个数组移动到代码空间,否则你可以使用SD卡。谢谢你的建议,但是,我不认为在arduino中硬编码我的数据库是个好主意。我正在尝试将arduino与包含数据库的sd卡读卡器连接起来。最有效的方法是什么?我打算将文件每行的第一个字符串与用户输入进行比较。。