我正在运行Debian 7(Linux Crunchbang),并希望使用Arduino IDE来编程我的Arduino UNO.为此,我安装了包arduino
.当我启动Arduino时,我被要求将我的用户添加到该dialout
组.所以我做了sudo usermod -a -G dialout <my-username>
.
但是,当我arduino
在命令行中启动Arduino IDE时,IDE会打开,但我无法将程序加载到Arduino.错误消息是"未找到串行端口COM1.您是否从工具>串行端口菜单中选择了正确的端口?" 当我选择串行端口时,"工具>串行端口"选项显示为灰色.
我以为是因为我没有在我的USB端口(ttyACM0)上授予读写权限.所以我做了,sudo chmod a+rw /dev/ttyACM0
但选项仍然是灰色的.
我正在使用名为ohNet的框架构建应用程序.构建框架后,可以通过安装框架make install
.默认情况下,库安装在/usr/local/[lib|include]
文件夹中.好.
我正在使用eclipse进行开发.为了使用这个库我必须设置包含路径库(在这种情况下usr/local/include/ohNet
),设置链接的搜索路径(-L)( /usr/local/lib/ohNet
)和特定的库(-l)(在这种情况下,我选择了一个名为库libohNet.so
其是在这个文件夹.当我在eclipse中构建项目时它工作正常,但是如果我尝试运行该程序,我面临以下消息:
error while loading shared libraries: libohNet.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经仔细检查了这个,文件libohNet.so
就在这个目录中!是什么原因导致无法找到此文件?
我在google上搜索并发现了一些帖子,说这是安装库/usr/local/lib
而不是/usr/lib
看到这里有问题 ...我是否必须配置一些额外的设置eclipse
才能ld
在此路径中识别库?这是什么解决方案?
问候
我想定义一个带有一个参数的闭包(我将其引用it
)有时我想将另一个参数传递给闭包.我怎样才能做到这一点?
我偶然发现了一个非常有趣的Dependency Injection库ButterKnife
.使用ButterKnife
它可以轻松地将视图注入活动或片段.
class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果使用依赖注入这些观点必须public
让Butterknife
能注射它(使用private
一个异常场的结果fields must not be private or static
).
在我过去的项目中,我总是制作所有成员字段(包括视图),private
因为我认为这是最佳实践(信息隐藏等)现在我想知道是否有理由不应该制作所有视图public
?在这种情况下,我不能使用,ButterKnife
但我想使用它,因为它简化了很多代码.
我正在使用git作为版本控制系统的第一次.我正在开始一个新项目,因此要对项目中使用的技术进行一些实验(你好世界的例子......)我想创建类似"游乐场"分支的东西.创建一个新的分支"playground"是常见的还是我应该在master分支中创建一个名为playground的文件夹?
问候
我正在运行基于debian的Crunchbang linux系统,我想在我的系统上安装Oracle JDK(不是openjdk).
我花了一些时间去谷歌,但我无法找到如何安装(和配置)它的清晰描述.所以这是我的问题:
安装下载的JDK的正确/最佳位置是什么?(大多数人喜欢这样的东西usr/lib/jvm
.为什么?
当我安装了jvm(jdk<version>.tar.gz
即将文件的内容复制到所选位置时,我必须设置我的系统以引用jdk.
在这里,我可以使用例如:sudo update-alternatives --install "/usr/bin/java" "java" \
"/usr/lib/jvm/jdk<version>/bin/java" 1
.我必须做同样的事javac
吗?
最后我必须通过添加行来设置JAVA_HOME变量:
JAVA_HOME=/usr/lib/jvm/jdk<version>/
export JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
到.bashrc
文件.
但问题是:这样每当我升级我的jdk时,我总是需要更新我的选择吗?我怎么解决这个问题?任何人都可以清楚地描述如何以巧妙和正确的方式在Linux系统上安装jdk吗?
谢谢
我有以下输入:
AG23,VU,Blablublablu,8
IE22,VU,FooBlaFooBlaFoo,3
and so on...
Run Code Online (Sandbox Code Playgroud)
我希望它使用像这样的代码"解析"scanf:
char sem[5];
char type[5];
char title[80];
int value;
while(scanf("%s,%s,%s,%d", sem, type, title, &value) == 4) {
//do something with the read line values
}
Run Code Online (Sandbox Code Playgroud)
但代码的执行给了我:illegale instruction
你会如何读取这样的逗号分隔文件?
我正在搜索很多但我找不到任何资源通过构建自己的协议,使用TCP作为传输层.有什么必要的步骤?协议应该是某种设备的"控制协议".所以我可以向设备发送命令并控制它们并获取信息.
那么如何实现自定义协议呢?是否what
可以发送defininig 命令并且how
接收器对不同的命令作出反应?假设我正在定义一些自定义命令,xml
通过有线/空中发送它们,使用tcp,并在那里有一些逻辑,它们对发送的命令作出反应并回复.这是一种可以实现"协议"的方式吗?这甚至被称为"协议"吗?
亲切的问候.
在我的程序中,我有两种方法:
public void methodA() { //gets called very often
//write something to file
}
public void methodB() {
//write something to file
}
Run Code Online (Sandbox Code Playgroud)
methodA
经常被客户调用,而methodB
只是不时调用.但是,我需要确保无论何时客户想要调用methodB
它都可以这样做(在可能的当前执行methodA
完成之后).我尝试在每个方法中引入一个带锁定对象的同步块,但methodB
似乎很饿,因为methodA
更频繁地调用.我该如何解决这个问题?
int testValue;
boolean success = false;
while(success == false) {
testValue = generateRandomInt();
success = mySystem.getHosts().parallelStream().allMatch(predicate(testValue));
}
return testValue;
Run Code Online (Sandbox Code Playgroud)
我正在玩java8流.你有什么建议让上面的代码更优雅/可读?
java ×3
android ×1
arduino ×1
arduino-ide ×1
arguments ×1
branch ×1
build ×1
butterknife ×1
c ×1
c++ ×1
closures ×1
concurrency ×1
csv ×1
eclipse ×1
file-io ×1
git ×1
groovy ×1
java-8 ×1
libraries ×1
linker ×1
linux ×1
networking ×1
optional ×1
parameters ×1
protocols ×1
scanf ×1
tcp ×1
versioning ×1