小编Ein*_*ren的帖子

Typedef不作为参数工作或在Arduino sketch函数中返回

我试图在Arduino ide中做一个链表.

代码如下:

typedef struct ll{  
    struct ll * prev;
    unsigned int currTime;
    unsigned int stopTime;
    struct ll * next;
} TIMING;

 TIMING * head;
 TIMING * current;

void setup();
void add_new_first(int stopTimer, TIMING * head);

void main() {
 init();
 setup();
 // Code that uses the def
 head->prev = NULL;  
 head->next = NULL;
 head->currTime = 0;
 head->stopTime = 200;

}
Run Code Online (Sandbox Code Playgroud)

最后还有功能的实际代码.

这个例子给我错误:

service_timer_cpp.cpp:5:34:错误:'TIMING'尚未声明.

当不使用定义的类型作为参数或从函数返回时,它可以正常工作.

这就是我认为它可以在c中完成并且早先为我工作的方式.我不明白为什么它不适用于Arduino环境.

c typedef arduino

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

cv :: warpPerspective仅显示扭曲图像的一部分

我通过使用getHomography和warpPerspective将图像从前视角更改为出价视图.

它的工作原理是图像扭曲到所需的视角,但裁剪关闭.它将扭曲的图像移动到图像框之外.我假设原因是因为操作导致负坐标.

我已经手动计算了翻译矩阵的计算点,而不是使用任何opencv:s函数来计算,因为棋盘函数未能检测到正确的点.

我想这可以通过对转换矩阵进行其他更改来解决.但那怎么办?另外,有没有办法确保变换后的图像沿x轴居中,然后将y轴调整到所需位置?

现在完成工作的代码段:

cv::Mat image; // image is loaded with the original image

cv::Mat warpPers; // The container for the resulting image
cv::Mat H;

std::vector<cv::Point2f> src;
std::vector<cv::Point2f> dst;

// In reality several more points.
src.push_back(cv::Point2f(264,301));
src.push_back(cv::Point2f(434,301));
src.push_back(cv::Point2f(243,356));
src.push_back(cv::Point2f(476,356));

dst.push_back(cv::Point2f(243,123));
dst.push_back(cv::Point2f(476,123));
dst.push_back(cv::Point2f(243,356));
dst.push_back(cv::Point2f(476,356));

H = cv::findHomography(src, dst, CV_RANSAC);

cv::warpPerspective(image, 
newPers,
H,
cv::Size(3000,3000),
cv::INTER_NEAREST | CV_WARP_FILL_OUTLIERS
);

cv::namedWindow("Warped persp", cv::WINDOW_AUTOSIZE );
cv::imshow( "Warped persp", newPers);
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing perspectivecamera

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

未能将Maven包含在Android工作室中

我有一个项目,我想更改为使用Maven包含OSMDroid的库而不是本地依赖项.根据OSM Droid教程,我需要包含以下依赖项:

dependencies {
    compile 'org.osmdroid:osmdroid-android:4.2'
    compile 'org.slf4j:slf4j-simple:1.6.1'
}
Run Code Online (Sandbox Code Playgroud)

从这个SO帖子我需要添加一行,以便能够通过gradle使用Maven:

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

这使我的Module:app的基本build.gradle成为:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "se.einarsundgren.anApp"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
     }
 }

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'org.osmdroid:osmdroid-android:4.2'
    compile 'org.slf4j:slf4j-simple:1.6.1'
}
Run Code Online (Sandbox Code Playgroud)

这会导致Gradle同步出错:

 Error:(29, 13) Failed to resolve: org.slf4j:slf4j-simple:1.6.1
 Error:(28, 13) …
Run Code Online (Sandbox Code Playgroud)

android intellij-idea gradle maven android-studio

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

为什么在JS类`undefined`中声明变量

尝试使用以下代码中的属性权重在JS中创建一个类:

function Foo() {
    var weight = 10;
    console.log(weight);
}
Run Code Online (Sandbox Code Playgroud)

当我实例化它时var bar = new Foo();,10会记录到控制台.

当我稍后调用时console.log(bar.weight);,undefined会记录到控制台.这是为什么?我的印象是,JS类中声明的属性默认是公共的?

javascript class

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

自定义帖子类型的批量操作

我正在开发一个 WordPress 项目,我想在我的自定义帖子上添加批量操作。

我已经使用Custom Post TypeUI 插件进行自定义帖子和Advanced Custom Fields用于自定义字段的插件。

请建议我任何代码或插件来为我的自定义帖子添加批量操作。

谢谢,阿尼凯特。

wordpress custom-post-type

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

强制抽象方法执行预定义代码 - 类似于重载的return语句

我有一个抽象方法的抽象类

 public abstract class Foo{
    public int bar();
}
Run Code Online (Sandbox Code Playgroud)

这是由普通类使用某些方法继承和实现的.

public class ConcreteFoo1 extends AbstractFoo{
    public void bar(){
    method1();
    method2();
    closingMethod();
    return 1;
Run Code Online (Sandbox Code Playgroud)

}}

public class ConcreteFoo2 extends AbstractFoo{
public void bar(){
    method3();
    method4();
    closingMethod();
    return 2;
Run Code Online (Sandbox Code Playgroud)

}}

正如你所看到的那样,两个类都结束了closingMethod();.结束bar()使用相同行的已实现方法对我所使用的框架至关重要.有没有办法通过父类强制执行.缺少更好的单词使其成为"半抽象",其中前n行在子类中定义,而结束行由父类定义.理想情况下,我想重载return语句或实现"方法析构函数".

有没有办法实现这个目标?

java inheritance abstract-class

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

Android Studio不会在更新后构建

我刚刚更新了Android Studio以构建130.729444,我的项目(在更新之前正确构建)已停止工作,Android Studio向我显示以下错误:

Internal error: (java.lang.AssertionError) Unexpected node Android Packaging; nodes=[Module 'MyApplication' production, Module 'MyApplicationProject' production, Module 'MyApplication' tests, Module 'MyApplicationProject' tests, Resources for 'MyApplication' production, Resources for 'MyApplicationProject' production, Resources for 'MyApplication' tests, Resources for 'MyApplicationProject' tests, Artifact 'MyApplication', Android Gradle Build Target]
java.lang.AssertionError: Unexpected node Android Packaging; nodes=[Module 'MyApplication' production, Module 'MyApplicationProject' production, Module 'MyApplication' tests, Module 'MyApplicationProject' tests, Resources for 'MyApplication' production, Resources for 'MyApplicationProject' production, Resources for 'MyApplication' tests, Resources for 'MyApplicationProject' tests, Artifact 'MyApplication', Android …
Run Code Online (Sandbox Code Playgroud)

java android android-studio

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

如何加快部署到Android模拟器?

每次我尝试在模拟器上部署应用程序进行调试时,都需要几分钟时间.我已经安装了HAX,这使得每个实例的启动和执行速度更快.我没有优化我的计算机以任何其他方式运行模拟器.部署仍然非常缓慢.

有什么措施可以加快速度吗?目前的操作系统是Win8和Ubuntu 13.4

我不想强调,问题是如何在已经运行的仿真器实例上加速部署.模拟器本身的启动有时比应用程序的实际部署更快.

我已经咨询了一些关于加速应用程序执行和模拟器启动的线程,但没有特别关注部署.

android android-emulator

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

在javascript中的尾递归

我在JS方面不是很有经验.但是,作为大多数人,我有时需要在浏览器中添加一些额外的功能.

在寻找其他问题的答案时,我在SO处找到了这个答案.答案和响应者都受到高度评价,按照SO标准,这意味着它们非常可靠.引起我注意的是,在"neatened up"变体中,它使用尾递归来循环函数:

(function myLoop (i) {          
   setTimeout(function () {   
      alert('hello');          //  your code here                
      if (--i) myLoop(i);      //  decrement i and call myLoop again if i > 0
   }, 3000)
})(10);     
Run Code Online (Sandbox Code Playgroud)

从我的角度看,这看起来像糟糕的工程.使用递归来解决命令式/ OO语言中的非递归问题就是要求麻烦.十次或100次迭代应该是安全的.但是10000或无限循环呢?在像Erlang和Haskell这样的纯函数式语言中,我知道尾递归在编译期间被转换为循环,并且不会向堆栈添加额外的帧.据我所知,对于例如C/C++或Java的所有编译器而言,情况并非如此.

JS怎么样?在没有SO风险的情况下使用尾递归是否安全?或者这取决于脚本运行的实际解释器?

javascript recursion tail-recursion

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

何时进行C联合

如果C中的并集用于将变量打包到字节数组中,如下所述:

typedef union 
{ 
uint16_t integer; 
byte binary[4]; 
} binaryInteger;
Run Code Online (Sandbox Code Playgroud)

什么时候进行实际联合?是否将变量分配给union的任何部分.或者是在访问该部分时?

是否可以在不导致联合执行的情况下以任何方式访问当前或以前的分配(取决于执行的时间)?

c c++ compiler-construction unions

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

使用malloc分配0字节

因此分配零字节的定义不明确,因此我想将0字节视为失败。这段代码能解决问题吗

#include <stdio.h>
#incude "xmalloc.h"
void *malloc_or exit(size_t nbytes, const char *file, int line){
void *x; //declarea void pointer
if ((x = malloc(nbytes)) == NULL){
fprintf(stderr. " %s: line %d: malloc(%zu) bytes failed", file , line, nbytes);
exit(EXIT_FAILURE);
} else
return x;
}
Run Code Online (Sandbox Code Playgroud)

c malloc dynamic-memory-allocation

0
推荐指数
1
解决办法
707
查看次数