小编Rol*_*lig的帖子

按位运算符并将int转换为2个字节并再次返回

第一次用户,大家好!

所以希望有人可以提供帮助..我的背景是php所以输入低端的东西,如char,是字节,这是位...这是二进制值..等等需要一些时间才能得到好处;)

我试图在这里做的是从Ardunio板发送到openFrameWorks的一些值(都是c ++).

当被要求发送数据时,此脚本当前所做的事情(并且适用于我可能添加的一个传感器)是...

int value_01 = analogRead(0);  // which outputs between 0-1024

 unsigned char val1;
 unsigned char val2;

//some Complicated bitshift operation           
    val1 = value_01 &0xFF;
    val2 = (value_01 >> 8) &0xFF;  

    //send both bytes
    Serial.print(val1, BYTE);
    Serial.print(val2, BYTE);
Run Code Online (Sandbox Code Playgroud)

显然这是获取数据的最可靠方式..所以现在它是通过串口发送的,字节被添加到一个字符串中并由...转换回来.

int num = ( (unsigned char)bytesReadString[1] << 8 | (unsigned char)bytesReadString[0] );
Run Code Online (Sandbox Code Playgroud)

那么回顾一下,我试图获得4个传感器的数据(我假设这些序列中有8个?)并且在它的末尾有int num_01 - num_04 ....

我假设这个(和大多数事情一样)对于有这些概念经验的人来说可能很容易.

任何帮助将不胜感激.谢谢

c++ bit-manipulation arduino openframeworks

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

在"陷阱退出"中获取shell脚本的exitcode

我想在我的Bash脚本中进行清理操作,如下所示:

#! /bin/bash
set -eu
trap 'echo "E: failed with exitcode $?" 1>&2' ERR

true
false
Run Code Online (Sandbox Code Playgroud)

使用$?脑海作为一种自然选择,但事实并非如此.它总是包含0.有什么方法可以"窥探" ERR陷阱中的exitcode 吗?

[更新:]我不知道我之前测试过的是什么.这段代码就像一个魅力,所以我把它留在这里作为一个小而好的例子.

bash shell exit-code bash-trap

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

在 Python 中高效使用 HTMLParser

为了响应Python 正则表达式,我尝试使用以下方法实现 HTML 解析器HTMLParser

import HTMLParser

class ExtractHeadings(HTMLParser.HTMLParser):

  def __init__(self):
    HTMLParser.HTMLParser.__init__(self)
    self.text = None
    self.headings = []

  def is_relevant(self, tagname):
    return tagname == 'h1' or tagname == 'h2'

  def handle_starttag(self, tag, attrs):
    if self.is_relevant(tag):
      self.in_heading = True
      self.text = ''

  def handle_endtag(self, tag):
    if self.is_relevant(tag):
      self.headings += [self.text]
      self.text = None

  def handle_data(self, data):
    if self.text != None:
      self.text += data

  def handle_charref(self, name):
    if self.text != None:
      if name[0] == 'x':
        self.text += chr(int(name[1:], 16)) …
Run Code Online (Sandbox Code Playgroud)

python api html-parsing

5
推荐指数
1
解决办法
3547
查看次数

apache的问题通知ftp客户端超时

我正在从Apache库(commons.net ver 3.2)的帮助下从服务器下载ftp文件.下载很好,我收到了我需要的所有文件,并将它们保存在一个文件夹中.我遇到的问题是超时,因为当我下载时连接中断时我需要一条错误消息,告诉我连接已经丢失,但我发现这样做很困难,我搜索了无数的论坛,包括这个一个,我已经尝试了很多方法来解决这个问题,但还没有人有结果!我的代码如下:

public void doSomething(String ip, int port, String user, String pass, String server, String remotePath, String localPath) {
  int tenseconds = 10 * 1000;
  int thirtyseconds = 30 * 3000;
  Socket s4 = new Socket();
  java.net.InetSocketAddress adr = new java.net.InetSocketAddress("213.0.17.234", 21);
  s4.connect(adr, thirtyseconds);
  FTPClient client = new FTPClient();

  org.apache.commons.vfs2.FileSystemOptions fileSystemOptions = null;
  String key = FtpFileSystemConfigBuilder.getInstance().getEntryParser(fileSystemOptions);

  try {

    client.setConnectTimeout(tenseconds);
    client.setDefaultTimeout(thirtyseconds);
    client.connect(ip, port);
    client.setSoTimeout(thirtyseconds);

    int reply = client.getReplyCode();
    if (!FTPReply.isPositiveCompletion(reply)) {
      throw new FileSystemException("vfs.provider.ftp/connect-rejected.error");
    }
    client.enterLocalPassiveMode();
    boolean login = …
Run Code Online (Sandbox Code Playgroud)

java ftp ftp-client

5
推荐指数
0
解决办法
5936
查看次数

准确打印浮点数

自 20 世纪 90 年代起,人们就知道如何快速准确地打印浮点数。Scheme和Java编程语言已经实现了这个算法,但我在C++中找不到类似的东西。

本质上,我正在寻找一小段高效的代码来满足以下测试用例:

void test(double dbl, const char *expected) {
    std::string actual = ...;
    assert(actual == expected);
}

test(3.0, "3.0");
test(3.1, "3.1");
test(0.1, "0.1");
test(1.0 / 3.0, "0.3333333333333333");   // Or maybe one more digit?
Run Code Online (Sandbox Code Playgroud)

双精度字面值会转换为浮点数,浮点数可能与字面值相同,也可能不同。然后,浮点数被转换回字符串。该字符串应尽可能短,同时表示十进制数,当解释为双精度文字时,将再次产生相同的浮点数。

如何使用 cout 以全精度打印双精度值?看起来相关,但接受的答案中的代码无法正确处理 3.1 情况。

c++ floating-point

5
推荐指数
1
解决办法
383
查看次数

在 Doxygen 中评论文件

我有一个 C 标头,我想为其编写介绍性注释。像这样:

/**
 * @brief Provides stuff for my great program.
 */

#ifndef MYHEADER_H
#define MYHEADER_H

#define __USE_GLIBC

#endif
Run Code Online (Sandbox Code Playgroud)

此外,我有这个 Doxyfile:

FULL_PATH_NAMES = YES
TAB_SIZE = 8
OPTIMIZE_OUTPUT_FOR_C = YES
RECURSIVE = YES
INPUT = .
EXTRACT_ALL = YES
QUIET = YES
EXTRACT_STATIC = YES
Run Code Online (Sandbox Code Playgroud)

当我现在运行 Doxygen 时,它会生成 HTML 和 LaTeX 文档,但简短的描述最终会记录宏而不是整个文件。

那么我如何向 Doxygen 提供文件的简要描述呢?

c doxygen

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

使用C#进行双缓冲会产生负面影响

我编写了以下简单程序,它每100毫秒在屏幕上绘制一行(由timer1触发).我注意到绘图有点闪烁(也就是说,窗口并不总是完全是蓝色的,但是有些灰色闪耀).所以我的想法是使用双缓冲.但是当我这样做时,情况变得更糟.现在屏幕几乎总是灰色的,只是偶尔会出现蓝色(由timer2演示,DoubleBuffered每2000毫秒切换一次).

对此有什么解释?

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e) {
            Graphics g = CreateGraphics();
            Pen pen = new Pen(Color.Blue, 1.0f);
            Random rnd = new Random();
            for (int i = 0; i < Height; i++)
                g.DrawLine(pen, 0, i, Width, i);
        }

        // every 100 ms
        private void timer1_Tick(object sender, EventArgs e) {
            Invalidate();
        }

        // every 2000 ms
        private …
Run Code Online (Sandbox Code Playgroud)

c# graphics doublebuffered winforms

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

BOOST_CHECK中的错误?

uint64_t source = numeric_limits<uint64_t>::max();
int64_t target = source;
BOOST_CHECK(source != target);//THIS SHOULD CHECK AS true - target != source
Run Code Online (Sandbox Code Playgroud)

此检查失败但它应该通过 - source与目标不同.

c++ testing boost

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

关于javac

javac不是内部或外部命令错误即将到来.我已经设定了路径.然后它也给出了同样的错误.

java windows command-line

-1
推荐指数
1
解决办法
133
查看次数