小编Ben*_*ics的帖子

如何将我的私有 MIB 文件转换为 .py 格式,以便我可以在我的设备上执行 GET/SET 操作

我正在尝试编写一个脚本来在我的设备上执行 GET/SET 命令。当我尝试对 sysDescr(它是标准 MIB SNMPv2 的一部分)执行 GET 操作时,我设法得到了响应。我尝试以几种不同的方式使用 mibdump.py 脚本,以便转换我的专有 MIB 文件,以便我以后可以使用它们:

  1. 使用 .mib 扩展名激活特定 MIB 文件(见结果)上的 mibdump.py

     c:\Program Files\Python35\Scripts>python mibdump.py SL-XPDR.mib
        Source MIB repositories: file:///usr/share/snmp/mibs, h ttp://mibs.snmplabs.com/a
        sn1/@mib@
        Borrow missing/failed MIBs from: h ttp://mibs.snmplabs.com/pysnmp/notexts/@mib@
        Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs
        Compiled MIBs destination directory: C:\Users\alpha_2.PL\PySNMP   Configuration\mibs
        MIBs excluded from code generation: RFC-1212, RFC-1215, RFC1065-SMI, RFC1155-SMI
        , RFC1158-MIB, RFC1213-MIB, SNMP-FRAMEWORK-MIB, SNMP-TARGET-MIB,   SNMPv2-CONF, SN
        MPv2-SMI, SNMPv2-TC, SNMPv2-TM, TRANSPORT-ADDRESS-MIB
        MIBs to compile: SL-XPDR
        Destination format: pysnmp
        Parser grammar cache directory: not used …
    Run Code Online (Sandbox Code Playgroud)

python snmp pysnmp

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

如何根据robotframework中的条件分配变量

这是我想使用 Robot Framework 编写的伪代码。如果使用框架无法完成,是否还有其他选择:

${balMethodID}=   Set Variable If  ${balMethodID} == None  ${newBalMethodID}
Run Code Online (Sandbox Code Playgroud)

基本上,如果变量的值为 None 那么我想分配一个新值。当变量的初始值不是 None 时,它​​的值变为 None。

在此处输入图片说明

robotframework

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

STM32F0 I2C HAL 将结构体保存到 I2C EEPROM

我需要保存一个结构:

struct {
  uint16_t value;
  uint16_t flag;
} status;
Run Code Online (Sandbox Code Playgroud)

使用外部 I2C EEPROM

HAL_StatusTypeDef HAL_I2C_Mem_Write (I2C_HandleTypeDef * hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t * pData, uint16_t Size, uint32_t Timeout)
Run Code Online (Sandbox Code Playgroud)

功能

你能建议我一个正确的方法来做到这一点吗?

c microcontroller struct stm32 eeprom

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

在STM32F303上使用SPI的SD卡初始化问题

当我发送CMD0命令(0x40 0x00 0x00 0x00 0x00 0x95)时,我试图在STM32F303上使用SPI初始化SDCard,我试着看一下示波器上来自MOSI的信号,我看到了不同的信号,如下图所示.请注意,SPI速度为281.25kBits/s.任何帮助,将不胜感激.

以下是我用来测试MOSI输出的部分代码

uint8_t cmd0[6]={0x40,0x00,0x00,0x00,0x00,0x95};
FATFS_CS_HIGH;
HAL_SPI_Transmit(&hspi1, (uint8_t*)0xff, 1, 10);
    for(int i=0;i<10;i++)
  {
    HAL_SPI_Transmit(&hspi1, (uint8_t*)0xff, 1, 10);
   }

  FATFS_CS_LOW;

while(1){

      HAL_SPI_Transmit(&hspi1, (uint8_t *)cmd0[0], 1, 10);

      HAL_SPI_Transmit(&hspi1, (uint8_t *)cmd0[1], 1, 10);
      HAL_SPI_Transmit(&hspi1, (uint8_t *)cmd0[2], 1, 10);
      HAL_SPI_Transmit(&hspi1, (uint8_t *)cmd0[3], 1,10);
      HAL_SPI_Transmit(&hspi1,(uint8_t *) cmd0[4], 1, 10);
      HAL_SPI_Transmit(&hspi1, (uint8_t *)cmd0[5], 1, 10);

    }
Run Code Online (Sandbox Code Playgroud)

现在我发送正确的命令,我可以在范围内看到它.但是,我没有得到SD01的0x01响应(我一直得到0xff)(SanDisk Ultra 40MB/s ... 16GB)我使用下面的代码:

FATFS_CS_HIGH;
for (int i = 0; i < 10; i++) {
    HAL_SPI_Transmit(&hspi1, &dumb, 1, 10);
    while (HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY);
}

FATFS_CS_LOW; …
Run Code Online (Sandbox Code Playgroud)

c microcontroller hal spi stm32

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

使用STM32 HAL定时器并调整PWM信号的占空比

我使用STM32Cube初始化代码生成器生成初始化的Timer函数.以产生I加入固定占空比的PWM信号HAL_TIM_Base_Start(&htim1); //Starts the TIM Base generationHAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1)//Starts the PWM signal generation到定时器初始化函数,如下所示.

/* Private variables ---------------------------------------------------------*/
int pulse_width=0;

/* TIM1 init function */
static void MX_TIM1_Init(void)
{

  TIM_ClockConfigTypeDef sClockSourceConfig;
  TIM_MasterConfigTypeDef sMasterConfig;
  TIM_OC_InitTypeDef sConfigOC;
  TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;

  htim1.Instance = TIM1;
  htim1.Init.Prescaler = 0;//we want a max frequency for timer, so we set prescaller to 0         
  //And our timer will have tick frequency
  htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim1.Init.Period = 1066;//max value for timer is 16bit = 65535, TIM_Period = timer_tick_frequency / …
Run Code Online (Sandbox Code Playgroud)

embedded stm32

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

使用 STM32F0 ADC 单独读取不同的输入

STM32F072CBU 微控制器。

我有多个 ADC 输入,希望单独读取它们。STMcubeMX 生成样板代码,假设我希望按顺序读取所有输入,但我无法弄清楚如何纠正这个问题。

这篇博文表达了我遇到的同样的问题,但给出的解决方案似乎不起作用。每次转换时打开和关闭 ADC 与返回值中的错误相关。仅当我在 STMcubeMX 中配置单个 ADC 输入,然后在不取消初始化 ADC 的情况下进行轮询时,才会返回准确的读数。

cubeMX的adc_init函数:

/* ADC init function */
static void MX_ADC_Init(void)
{

  ADC_ChannelConfTypeDef sConfig;

    /**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) 
    */
  hadc.Instance = ADC1;
  hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
  hadc.Init.Resolution = ADC_RESOLUTION_12B;
  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;
  hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc.Init.LowPowerAutoWait = DISABLE;
  hadc.Init.LowPowerAutoPowerOff = DISABLE;
  hadc.Init.ContinuousConvMode = DISABLE;
  hadc.Init.DiscontinuousConvMode = DISABLE;
  hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; …
Run Code Online (Sandbox Code Playgroud)

c microcontroller stm32 adc stm32f0

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

在C结构中的声明时初始化指针

有没有办法在声明时初始化C结构中的指针:

struct person
{
  uint8_t age;
  uint16_t * datablock;
} mike = { 2, malloc(4) };
Run Code Online (Sandbox Code Playgroud)

我已经尝试过上面的代码,但是我得到了:

初始化元素对于数据块成员不是常量.

我正在使用GCC.

c malloc struct pointers

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

如何在 Robot Framework 中生成 UUID?

有没有办法generate UUID在机器人框架中使用以下格式?我们可以使用类似的python库UUID library吗?

格式-

07464f5d-db6e-486e-bdfa-ad50b2ad8a92

fd61836f-5745-47c2-a9b1-b13335e11695

python automated-tests robotframework

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

每次我使用placement new分配时,析构函数都会隐式调用

我有以下问题:我正在使用我的项目自定义池分配器,并且每次我要分配任何具有placement new的对象时,析构函数也会隐式调用该对象.

这是源代码:

测试对象:

class Obj {
public:
    Obj(const std::string& s) {  
        std::cout << "Constructor Called" << std::endl; 
    }
    ~Obj() { 
        std::cout << "Destructor Called" << std::endl; 
    }

};
Run Code Online (Sandbox Code Playgroud)

主要:

int main()
{

    void *pmemory;
    pmemory = malloc(ONEGIG_SIZE);

    PoolAllocator* poolAllocator =  new PoolAllocator(sizeof(Obj), __alignof(Obj), ONEGIG_SIZE, pmemory);
    Obj *obj1 = allocator::allocateNew(*poolAllocator, Obj("Hello")); //<-- const and dest is called

    //......

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

这里是Allocator:AllocateNew函数的源代码:

template <class T> T* allocateNew(Allocator& allocator, const T& t)
{
        return new (allocator.allocate(sizeof(T), __alignof(T))) T(t);
}
Run Code Online (Sandbox Code Playgroud)

泳池分配器:

PoolAllocator::PoolAllocator(size_t …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management c++11

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

如何在C语言中使用指向多维数组的指针?

我有2-D阵列

char arr[2][3]={"sam","ali"}
Run Code Online (Sandbox Code Playgroud)

和指向此数组的指针

char(*ptr)[3]=arr;
Run Code Online (Sandbox Code Playgroud)

如何使用此指针打印arr[2][2]在这种情况下i.我已经尝试* (*(ptr+1)+2)过与处理数组相同的方式,但没有工作,所以可以任何一个帮助并告诉我如何处理指向数组的指针,在这种情况下打印元素[2][2].

c multidimensional-array pointer-to-array

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