我正在编写i2c使用通用linux i2c驱动程序实现简单读/写功能的代码linux/i2c-dev.h
我很困惑ioctl:I2C_SLAVE
内核文档说明如下:
您可以使用read(2)和write(2)调用执行普通的i2c事务.您不需要传递地址字节; 相反,在尝试访问设备之前,请通过ioctl I2C_SLAVE进行设置
但是,我正在使用ioctl I2C_RDWR我再次设置从属地址的地方i2c_msg.addr.
内核文档还提到了以下内容:
一些ioctl()调用用于管理任务,由i2c-dev直接处理.示例包括I2C_SLAVE
所以必须使用ioctl I2C_SLAVE?如果是这样,我只需要设置一次或每次执行读写操作?
如果我有一个i2c设备,我可以在设备上测试代码并且不会打扰你们,但不幸的是我现在没有.
谢谢您的帮助.
我想更新一个名为 client 的表。以下代码适用于有效的 id,但对于无效的 id,它只是挂起而不调用 catch 函数。
knex('client').where('id',id).update({
name:req.body.name
}).then(function(numberOfUpdatedRows) {
if(numberOfUpdatedRows) {
res.json(success);
return;
}
}).catch(function(err){
res.status('500');
res.json(err);
return;
});
});
Run Code Online (Sandbox Code Playgroud)
我这样解决了这个问题:
knex('client').where('id',id).select('id').then(function(id){
if(id) {
//update
}else {
//failed
}
}).catch(function(err){
console.log("select id do not exist");
res.send("do not exist");
});
Run Code Online (Sandbox Code Playgroud)
对于这种情况,对于无效的 id,knex 不会调用 catch 函数,而是不会挂起,而是返回 id 的空值,我用它来进行错误检查。
我是初学者,并且确信有更好的方法来做到这一点。
有人可以建议一种更好的方法吗?另外,我在knex 文档
中找不到太多有关 knex 如何处理此类错误情况的信息。那么我在哪里可以找到这些信息,以便以后我可以自己解决这些问题。谢谢。
我正在使用无服务器框架,并收到以下错误-
对于调试日志,请在设置环境变量“ SLS_DEBUG = *”之后再次运行。
他们在谈论什么环境?如何设置呢?
我正在使用Windows 10。
谢谢。
目前,我正在将 AWS 参数存储值作为环境变量访问。它在 serverless yml 中定义如下:
environment:
XYZ_CREDS: ${ssm:xyzCreds}
Run Code Online (Sandbox Code Playgroud)
在代码中,我像这样访问它,因此process.env.XYZ_CREDS
我需要将此值移至 AWS 秘密管理器并以相同的方式访问 xyzCreds。
基于我尝试过的无服务器文档-
custom:
xyzsecret: ${ssm:/aws/reference/secretsmanager/XYZ_CREDS_SECRET_MANAGERa~true}
environment:
XYZ_CREDS: ${self:custom.xyzsecret}}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。请帮忙!
我正在关注Amazon中的Alexa Node.js SDK 教程
该示例代码在所有响应中都有此行-
.withSimpleCard('Hello World', speechText)
Run Code Online (Sandbox Code Playgroud)
我检查了功能定义文件,它说:
呈现具有以下标题和内容的简单卡片
有人可以解释一下这是什么意思吗?
什么是Alexa卡?
我有一个表(名为j_stones),其中包含5个字段:
id(primary key)
j_stones_type(foreign-key)
shape
size
carat
Run Code Online (Sandbox Code Playgroud)
我想使每一行都是唯一的,所以我创建了一个迁移来做到这一点:
public function up()
{
Schema::table('j_stones', function (Blueprint $table) {
$table->unique(['j_stone_types_id','shape','size','carat']);
});
}
Run Code Online (Sandbox Code Playgroud)
这完美地工作,但是当我尝试回滚时,出现以下错误:
1 [Illuminate \ Database \ QueryException]
SQLSTATE [HY000]:常规错误:1553无法删除索引
'j_stones_j_stone_types_id_shape_size_carat_unique':在外键约束中需要(SQL:alter table
j_stonesdrop indexj_stones_j_stone_types_id_shape_size_carat_unique)[PDOException] SQLSTATE [HY000]:常规错误:1553无法删除索引'j_stones_j_stone_types_id_shape_size_carat_unique':在外键约束中需要'
这是我的回滚代码:
public function down()
{
Schema::table('j_stones', function (Blueprint $table) {
$table->dropUnique(['j_stone_types_id','shape','size','carat']);
});
}
Run Code Online (Sandbox Code Playgroud)
我试图像这样禁用外键约束:
public function down()
{
DB::statement('SET FOREIGN_KEY_CHECKS = 0');
Schema::table('j_stones', function (Blueprint $table) {
$table->dropUnique(['j_stone_types_id','shape','size','carat']);
});
DB::statement('SET FOREIGN_KEY_CHECKS = 1');
}
Run Code Online (Sandbox Code Playgroud)
并且也这样:
public function down()
{ …Run Code Online (Sandbox Code Playgroud)