小编Fed*_*ico的帖子

将Base64字符串解码为字节数组

我将创建一个python脚本,将Base64字符串解码为byte(或Hex值数组)数组.

我的项目的嵌入式一面是一个微控制器,它从原始字节开始创建一个base64字符串.该字符串包含一些不可打印的字符(因此我选择base64编码).

在Pc端,我需要解码base64字符串并恢复原始的原始字节.

我的脚本使用python 2.7和base64库:

base64Packet = raw_input('Base64 stream:')

packet = base64.b64decode(base64Packet )

sys.stdout.write("Decoded packet: %s"%packet)
Run Code Online (Sandbox Code Playgroud)

结果字符串是一个字符串,其中包含一些不可打印的char.

有没有办法将base64字符串解码为字节(或十六进制)值?

提前致谢!

python string embedded base64 decode

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

计算函数返回值的最佳实践

我经常在C中构建函数来检查一些参数并返回错误代码.

当我发现错误时停止值检查的最佳方法是什么?

第一个例子:

ErrorCode_e myCheckFunction( some params )
{
  ErrorCode_e error = CHECK_FAILED;

  if( foo == bar )
  {
     if( foo_1 == bar_1 )
     {
        if( foo_2 == bar_2 )
        {
           error = CHECK_SUCCESS;
        }
     }
  }

  return error;
}
Run Code Online (Sandbox Code Playgroud)

第二个例子:

ErrorCode_e myCheckFunction( some params )
{
  if( foo != bar )
  {
     return CHECK_FAILED;
  }

  if( foo_1 != bar_1 )
  {
     return CHECK_FAILED;
  }

  if( foo_2 != bar_2 )
  {
     return CHECK_SUCCESS;
  }
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢第一种方法,因为我读到MISRA规则避免多次返回语句.

哪种方法最好?

c return misra

8
推荐指数
1
解决办法
889
查看次数

如何将代理身份验证传递给 python 请求模块

我正在处理使用请求模块执行获取/发布到网站的现有 python 代码。

python 代码还允许在将代理传递给脚本时使用代理,否则不使用代理。

我的问题是关于使用需要身份验证的代理。

proxy = user:password@ip:port
self.s = requests.Session()
if proxy != "":
      self.proxies = {
        "http": "http://" + proxy,
        "https": "https://" + proxy
      }
      self.s.proxies.update(proxies)

self.s.get('http://checkip.dyndns.org')
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果配置了代理,每个get 都会被拒绝,因为没有提供身份验证。

我找到了一个暗示使用 HTTPProxyAuth 的解决方案。

这是我找到的解决方案:

import requests
s = requests.Session()

proxies = {
  "http": "http://ip:port",
  "https": "https://ip:port"
}

auth = HTTPProxyAuth("user", "pwd")
ext_ip = s.get('http://checkip.dyndns.org', proxies=proxies, auth=auth)
print ext_ip.text
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否可以全局设置代理授权而不是修改代码中的每个s.get?因为有时脚本可以在没有代理的情况下使用,有时也可以使用代理。

提前致谢!

最好的问候,费德里科

python authentication proxy python-requests

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

条件是多余的,或者可能存在空指针取消引用

我为嵌入式系统编写了一个 C 代码,当我使用 SonarQube 和 CppCheck 插件执行代码分析时,我得到了这个错误:

条件是多余的,或者可能存在空指针取消引用:指针。

这是有错误的代码:

ReturnCode_e SocketTcpSecureWrite( SocketHandle_t socketHandle, 
                                   char* dataBuffer, 
                                   uint16_t dataBufferLen, uint16_t* byteTransmitted )
{
    uint32_t bytes = 0;
    ReturnCode_e opResult = SSL_WRITE_ERROR;

    *byteTransmitted = 0;

    if( dataBuffer == NULL || byteTransmitted == NULL )
    {
        return WRONG_PARAMETER;
    }

    if( SEND_SOCKET( socketHandle, dataBuffer, dataBufferLen, 0, &bytes ) == SUCCESS )
    {
        *byteTransmitted = bytes;
        opResult = SUCCESS;
    }

    return opResult;
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么指针一致性检查会显示为错误。我想在执行函数之前验证指针不为NULL,否则返回错误。

这是检查指针一致性的正确方法吗?

c pointers static-code-analysis cppcheck sonarqube

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

AWS Lambda函数写入DynamoDB

我是Amazon Web Services和NodeJS的初学者.

我写了一个由AWS IoT触发的Lambda函数,它解析了一个JSON.

enter code here
use strict';

console.log('Loading function');

exports.handler = (event, context, callback) => {
   console.log('Received event:', JSON.stringify(event, null, 2));
   console.log('Id =', event.Id);
   console.log('Ut =', event.Ut);
   console.log('Temp =', event.Temp);
   console.log('Rh =', event.Rh);
   //callback(null, event.key1);  // Echo back the first key value
   //callback('Something went wrong');
};
Run Code Online (Sandbox Code Playgroud)

现在我想将json字段存储到DynamoDB表中.

有什么建议吗?

非常感谢!

amazon-web-services amazon-dynamodb aws-lambda aws-sdk-nodejs

3
推荐指数
2
解决办法
7739
查看次数