正如标题所说.
来自Java我以前用过:
private int A;
public void setA(int A) {
this.A = A;
}
public int getA() {
return this.A
}
Run Code Online (Sandbox Code Playgroud)
我如何在Python中执行此操作(如果需要).如果其中之一__setattr__
或__set__
用于此目的,另一个用于什么?
编辑:我觉得我需要澄清一下.我知道在Python中,一个doe不会在需要之前创建setter和getter.
让我们说我想做这样的事情:
public void setA(int A) {
update_stuff(A);
and_calculate_some_thing(A);
this.A = A;
}
Run Code Online (Sandbox Code Playgroud)
什么是"pythonic"方式来实现这个?
我正在准备考试,通过一些旧的考试.其中一个问题是:
编写实现图中同步FSM的可综合行为VHDL代码... FSM有一个输入,称为请求,具有值(r1,r2,r3)的枚举类型...
这让我想写这段代码:
entity fsm is
port ( clk : in std_logic;
request : in my_enum_type
);
end fsm;
Run Code Online (Sandbox Code Playgroud)
某处有一个:
type my_enum_type is (r1, r2, r3);
Run Code Online (Sandbox Code Playgroud)
在某个地方(我已经尝试了正确的端口声明和建筑声明之后).
但我似乎无法让它发挥作用.我可以将自定义类型作为输入或输出吗?
我正在尝试使用arm-none-eabi-gcc和Makefile编译STM32Cube项目.我已经指定:
CFLAGS = -mthumb\
-march=armv6-m\
-mlittle-endian\
-mcpu=cortex-m0\
-ffunction-sections\
-fdata-sections\
-MMD\
-std=c99\
-Wall\
-g\
-D$(PART)\
-c
Run Code Online (Sandbox Code Playgroud)
和:
LDFLAGS = -Wl,--gc-sections\
-Wl,-T$(LDFILE)\
-Wl,-v
Run Code Online (Sandbox Code Playgroud)
FW构建没有问题.但是当我启动MCU时,我陷入了Hard Fault.堆栈跟踪是:
#0 HardFault_Handler () at ./Src/main.c:156
#1 <signal handler called>
#2 0x0800221c in ____libc_init_array_from_thumb ()
#3 0x080021be in LoopFillZerobss () at Src/startup_stm32f030x8.s:103
#4 0x080021be in LoopFillZerobss () at Src/startup_stm32f030x8.s:103
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Run Code Online (Sandbox Code Playgroud)
当我踩到bl __libc_init_array
启动文件时,我会直接进入Hard Fault .
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
str r3, …
Run Code Online (Sandbox Code Playgroud) 所以我昨天在youtube上观看了c ++视频,遇到了一个关于C++ - 11 rvalue引用和移动语义的视频.我认为我从广义上理解这个概念,但是今天当我通过TA进行我的代码时,他问我为什么std::pair<HostName, IPAddress>& p
在下面的代码中没有引用(如).在这种情况下,我根本没有考虑过这个问题,但当他问我记得有关"在C++ - 11中你通常应该使用传值的视频"时.
因此我的问题是:在下面的代码中,是否std::pair<HostName, IPAddress> p
会更好std::pair<HostName, IPAddress>& p
?是否会使用移动语义,它会有所作为吗?
IPAddress NameServer::lookup( const HostName& host ) const {
auto it = std::find_if( vec.begin(), vec.end(),
[host] ( std::pair<HostName, IPAddress> p ) {
return p.first == host;
} );
...
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个通信软件,它将与我所在的控制部门的实验室流程进行通信.进程通过串口进行通信,并且会有一些比特检查/操作.我编写了一个如下所示的辅助类:
public class Channel {
public enum Kind {DIGITAL_IN, DIGITAL_OUT, ANALOG_IN, ANALOG_OUT, COUNTER_IN};
private int resolution;
private int number;
private Kind kind;
public byte[] bits;
public Channel(Kind kind, int resolution, int number) throws Exception {
if (resolution % 8 != 0) {
throw new Exception("Resolution must be divisible by 8");
}
this.kind = kind;
this.resolution = resolution;
this.number = number;
this.bits = new byte[resolution/8];
}
public int getResolution() {
return resolution;
}
public int getNumber() {
return number;
}
public …
Run Code Online (Sandbox Code Playgroud) Eclipse继续说明最后的elseif和else是死代码,但我不明白.
if (img0 != null && img1 != null) {
code;
} else if (img0 != null) {
code;
} else if (img1 != null) {
code;
} else {
code;
}
Run Code Online (Sandbox Code Playgroud)
我的理由是这样的:
我错过了什么,"死亡"在哪里?
提前致谢.
在configMINIMAL_STACK_SIZE
Cortex M0 MCU 上 FreeRTOS 的一些演示中设置为 60,而在其他一些演示中设置为 70。使用 STM32Cube 软件时设置为 128。
我的问题是实际上最小堆栈大小是多少?
查看STM32 Cortex-M0编程手册,我看到处理器寄存器是R0-R12、MSP、PSP、LR、PC、PSR、ASPR、IPSR、EPSR、PRIMASK、CONTROL。这不是意味着 MINIMAL 堆栈大小只有 23 个字吗?或者是否需要为上下文切换保存更多信息?
我已经阅读了几篇文章,但我找不到帮助.
我有一个使用smtplib发送邮件的python脚本.它从命令行调用时有效.
我有#!/usr/bin/python
第一行,可以使用/home/pi/ipsender.py
和运行它python /home/pi/ipsender.py
.
我的crontab是*/1 * * * * /home/pi/ipsender.py
,但我自己也尝试*/1 * * * * python /home/pi/ipsender.py
和*/1 * * * * /usr/bin/python /home/pi/ipsender.py
.
这样做which python
,我得到/usr/bin/pyhton
和命令行我可以导入和使用的smtplib就好运行蟒蛇.
在/var/log/syslog
我得到:
Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3764]: (pi) CMD (python /home/pi/ipsender.py)
Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3763]: (CRON) info (No MTA installed, discarding output)
Run Code Online (Sandbox Code Playgroud)
我猜测没有MTA ......只是关于Cron没有发送关于它正在做什么的电子邮件,或者不是吗?
我该如何运行这个脚本.
[编辑]
脚本的权限是
-rwxr-xr-x 1 pi pi 551 Nov 27 22:37 ipsender.py
Run Code Online (Sandbox Code Playgroud)
[Edit2]使用来自D Read的提示我得到以下日志 …
我正在编写一些我希望内联的函数.
在这里阅读并使用第二个c99内联选项,内联所有声明和定义,如下所示:
extern inline void SPFD54124B_write_cmd(uint16_t command);
Run Code Online (Sandbox Code Playgroud)
在标题中,和
inline void SPFD54124B_write_cmd(uint16_t command)
{
spi_write(command, CMD_WIDTH);
}
Run Code Online (Sandbox Code Playgroud)
在相应的c文件中.我期待获得功能的内联版本.
但是当我编译时,我得到:
Generating dependencies dep/spi.d from src/spi.c
Generating dependencies dep/spfd54124b.d from src/spfd54124b.c
Generating dependencies dep/pomodoro.d from src/pomodoro.c
Generating dependencies dep/font8x8_ualnum.d from src/font8x8_ualnum.c
Generating dependencies dep/font8x8_basic.d from src/font8x8_basic.c
Generating dependencies dep/evading_util.d from src/evading_util.c
Compiling src/evading_util.c
Compiling src/font8x8_basic.c
Compiling src/font8x8_ualnum.c
Compiling src/pomodoro.c
src/spfd54124b.h:96:20: warning: inline function 'SPFD54124B_write_pixel' declared but never defined [enabled by default]
src/spfd54124b.h:95:20: warning: inline function 'SPFD54124B_write_param' declared but never defined [enabled by …
Run Code Online (Sandbox Code Playgroud) 我有一个连续读取数据串口的线程.如果主程序收到SIGINT,则在串行端口线程上调用g_thread_join().
但是,由于读取阻塞,串口线程不会返回并且程序停止,直到我在串行线上获得一个字节,然后它就可以退出.
有没有办法将SIGINT传递给read(),以便在主线程需要它时可以强制它返回?