小编zac*_*rry的帖子

I2C_SLAVE ioctl目的

我正在编写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设备,我可以在设备上测试代码并且不会打扰你们,但不幸的是我现在没有.

谢谢您的帮助.

linux driver i2c

14
推荐指数
1
解决办法
2万
查看次数

knex.js - 更新数据的更简单方法

我想更新一个名为 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 如何处理此类错误情况的信息。那么我在哪里可以找到这些信息,以便以后我可以自己解决这些问题。谢谢。

mysql node.js knex.js

5
推荐指数
1
解决办法
5万
查看次数

如何在Windows中设置SLS_DEBUG?

我正在使用无服务器框架,并收到以下错误-

对于调试日志,请在设置环境变量“ SLS_DEBUG = *”之后再次运行。

他们在谈论什么环境?如何设置呢?
我正在使用Windows 10。

谢谢。

serverless-framework

5
推荐指数
3
解决办法
3386
查看次数

无服务器 - 如何作为环境变量访问 Aws Secret Manager

目前,我正在将 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)

但这不起作用。请帮忙!

node.js aws-lambda serverless-framework

4
推荐指数
1
解决办法
4211
查看次数

Alexa Node.js SDK-withSimpleCard()有什么作用?

我正在关注Amazon中的Alexa Node.js SDK 教程

该示例代码在所有响应中都有此行-

 .withSimpleCard('Hello World', speechText)
Run Code Online (Sandbox Code Playgroud)

我检查了功能定义文件,它说:

呈现具有以下标题和内容的简单卡片

有人可以解释一下这是什么意思吗?
什么是Alexa卡?

alexa alexa-skills-kit

3
推荐指数
1
解决办法
1575
查看次数

如何在laravel 5.2迁移中删除包含外键的组合键

我有一个表(名为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_stones drop index j_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)

php mysql laravel laravel-5

2
推荐指数
1
解决办法
2563
查看次数