小编Reg*_*ego的帖子

Delphi 2010中记录与类的类方法

我刚刚开始使用Delphi 2010中的新单元IOUtils.pas,我发现它们将所有方法都放在Records(TFile, TPath, TDirectory)类函数和过程中.

在记录而不是类中执行此操作有什么好处吗?在这两种情况下都不需要任何变量或实例,但我不确定在内存消耗或性能改进方面是否有任何实际好处.

delphi delphi-2010

17
推荐指数
3
解决办法
4836
查看次数

开源交叉编译器支持Ada多任务RTOS

Ada有哪些RTOS可以使用开源/免费交叉编译器,支持多任务/多线程?

我有一个Atmel AT90USB162芯片,我想用Ada编程.我的第一个选择是使用AVR-Ada对其进行编程,但由于它没有任务支持,因此它是不可选择的(现在我对如何支持其任务转移没有任何线索).所以我需要一个更强大的方法.我想过使用QNX,但它比我的芯片架还要复杂得多.

我得到了AVR芯片支持uC/OS-II和FreeRTOS的信息.FreeRTOS或uC/OS-II有免费的Ada交叉编译器吗?

谢谢.

avr rtos ada cross-compiling rtems

9
推荐指数
3
解决办法
2308
查看次数

Ada/C/++分布式应用程序

我正在尝试评估一些技术,以实现一些Ada模块与一些C++/OpenGL模块之间的通信过程.有一个(Windows XP)Ada应用程序使用COM与C++应用程序通信,但我打算将COM切换到新技术.提出了一些建议,例如直接套接字,DSA,Polyorb,Corba和DSS/Opensplice.

  • DSA似乎只是Ada -implemented(不确定)
  • 根据http://polyorb.ow2.org/,Polyorb在2006年的最后一次实施
  • Corba有人认为,证明其实现简单应用程序的复杂性可能不够简单
  • DSS/Opensplice似乎只是实现了C/C++,因此应该完成Ada绑定.它也看起来也不是很简单.

我个人喜欢COM,但由于迁移,我宁愿采用套接字选项,因为它简单,接口架构可以非常容易地实现.

那你觉得呢?您能否对这些技术发表评论,甚至建议其他更多?

非常感谢.

sockets com corba ada dss

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

冻结Ada任务

我该如何冻结任务?

我的意思是,如果我有任务

task body My_Task is
begin 
  accept Start;
  loop
    Put ("1");
    Put ("2");
    Put ("3");
    ...
    Put ("n");
  end loop;
end My_Task;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以"冻结"当前状态的任务?例如,如果执行完成执行Put ("2");,我该如何冻结它,之后我可以将其转为继续?我想要从任务之外以及从外部开始冻结,命令它继续.

更新

如果我有规范,我可以肯定实施

type State_Type is
  (RUN,
   FROZEN);

task type My_Task (State : State_Type) is
   entry Start;
end My_Task;
Run Code Online (Sandbox Code Playgroud)

身体

task body My_Task is
begin 
  accept Start;
  loop
    Put ("1");
    Put ("2");
    Put ("3");
    ...
    Put ("n");

    loop 
     if State = RUN then exit; end if;
    end loop;
  end loop;
end My_Task;
Run Code Online (Sandbox Code Playgroud)

但事实并非如此,因为我必须等待第n个Put指令行(即,任务实际上不会被冻结,因为内部循环将会运行).

ada task

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

从C++和Java到Ada的类配方概念

也许C++和Java人员可以帮助我定义我将要解释的这个问题.关于如何表示实现动态标识符的三个主要分支的类的构造函数,我在Ada(你不需要知道它,我只是对这个概念感兴趣)有一个问题:

  • 纯数值(int,float,String,等等)
  • 列表/堆栈项目
  • C++中的东西很可能是一个线程(在Ada中我们有一个更广泛的概念,与任务相关,但我们可以将一个简单的任务概念作为一个线程,所以这个概念也适用)

我要调用这个类Par_Class,并且是任何构造的对象调用Par_Obj.因此,当Par_Obj创建一个对象时(因此,数值被初始化,列表/堆栈分配了其他列表/堆栈或为空并且保留了线程执行的内存范围),OS自动开始执行新线程与我的主应用程序并行(现在他们争夺系统资源).但是为了简化示例,让我们假设我有一个带有整数的类和一个指向字符串的指针.

例如,在C++中,我可以编写代码(如果我做错了,请纠正我)

class Par_Class {
public:
  Par_Class (int aValue, const std::string & aName);

private:
  int theValue;
  std::string theName;
};
Run Code Online (Sandbox Code Playgroud)

构造函数可以实现为

Par_Class::Par_Class (int aValue, const std::string & aName)
  : theValue(aValue)
  , theName(aName)
{
}
Run Code Online (Sandbox Code Playgroud)

最后我们可以实例化这个类

Par_Class Par_Obj (23, "My object is this");
Run Code Online (Sandbox Code Playgroud)

并确保此构造方法属于Par_Class类,而不属于任何其他类.

同样,在Java中,我们可以编码

public class Par_Class {
  private int theValue;
  private String theName;

  public Par_Class (int aValue, String aName){
    theValue = aValue;
    theName = aName;
  } …
Run Code Online (Sandbox Code Playgroud)

c++ java algorithm ada

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

在Arduino Mega ATmega2560微控制器中编程PWM

我正在尝试在Arduino Mega(ATmega2560)上启用PWM,但我遇到了一些问题.

首先,我正试图在Ada中编程.我希望将三个Timer3通道与FastPWM一起使用,所以我写道

procedure Main is
begin

   -- Nullify Timer3 buffers
   TCCR3A := 0;
   TCCR3B := 0;
   TCCR3C := 0;

   -- Waveform Generation Mode
   --  Fast PW, 8-bit, TOP = 0x00FF, Update OCR3x at BOTTOM, TOV3 Flag Set on TOP
   --  => WGM33|WGM32|WGM31|WGM30 = 0|1|0|1
   TCCR3A := TCCR3A or TCCR3A_WGM30;
   TCCR3B := TCCR3B or TCCR3B_WGM32;

   -- Compare Output Mode:
   --  Fast PWM, non-inverting mode
   --  => COM3A1|COM3A0|COM3B1|COM3B0|COM3C1|COM3C0 = 1|0|1|0|1|0
   TCCR3A …
Run Code Online (Sandbox Code Playgroud)

c avr arduino ada pwm

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

Embarcadero RAD Studio XE for C++模块的Comport包库

我正在尝试在Embarcadero RAD Studio XE中安装Comport软件包.对于Delphi表单,托盘出现所有comport模块(并且功能齐全,我非常肯定),但是当我创建一个C++表单时,会出现comport pallete,但内部没有模块.

我还在Borland C++ Builder 6.0上安装了旧版本的comport,它运行得很好,所以我也想在Embarcadero的RAD上使用它.

有人知道我该如何解决它?我的意思是,如何让cport模块出现在C++表单模式中?

谢谢.

更新

只是注释,设置"生成所有C++ Builder文件(包括包libs)"的how-2路径如下:

  1. 在Delphi模式下,打开DsgnCPortDXE.bpl
  2. 设置

    项目>>选项>> Delphi编译器>>输出 - C/C++ >> C/C++输出文件生成>>生成所有C++ Builder文件(包括包libs)

delphi c++builder delphi-xe

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

可以处理多点触控吗?

我是Processing的新手,我想在Android模式下运行我的草图.我希望它同时支持多个触摸.

我想知道是否有人可以指导我这个问题:

如何让草图支持多次触摸?

processing android multi-touch

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

AVR上的多任务RTOS

我有一个AT90USB162 AVR芯片,我想运行多任务RTOS,所以我正在评估可能的RTOS与我的AVR芯片一起使用.AVR支持哪些多任务RTOS?也许是QNX?(是否可以在AVR微芯片上运行QNX内核?).

提前致谢.

avr real-time rtos qnx avr-gcc

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

如何使用 Ada 从 https 网站解析 JSON

我正在尝试为 https 网站推送制作一个简单的解析器,因此尝试遵循http://rosettacode.org/wiki/HTTP#Ada 中的示例,只需更改网站的地址即可。

所以我试过了

    with Ada.Text_IO; use Ada.Text_IO;
    with AWS.Client;
    with AWS.Response;
    procedure Main_Other is
    begin
       Put_Line (AWS.Response.Message_Body
                 (AWS.Client.Get
                    (URL => "https://google.com")));
    end Main_Other;
Run Code Online (Sandbox Code Playgroud)

但我有一个例外

引发的 PROGRAM_ERROR :aws-client.adb:398 finalize/adjust 引发的异常 [2020-04-02 10:41:20] 进程以状态 1 退出,经过时间:00.80s

那么,关于如何解决这个问题的任何想法?

我想解析网站中某些表的当前状态,类似于在 Python 中制作类似的东西

    import pandas as pd
    def retrieve_json(json_url):
        return pd.read_json(json_url)
Run Code Online (Sandbox Code Playgroud)

我想以最简单的方式编写此解决方案,甚至最好不要依赖 AWS。

请,谢谢。

rest https push ada http-post

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

带存储库版本的Svndump

我需要创建一个备份脚本(批处理和bash),我想创建一个自动svndump来创建文件名转储<repository_name>_<repository_rev>.zip.

示例:我的存储库名称是MySplice,它是在rev上.234(我不知道,我不想检查存储库路径),所以我想运行一个脚本backup.bat或者backup.sh它创建文件mysplice_r234.zip,这是我的存储库的转储.

那么,我该怎么做呢?谢谢.

svn bash tortoisesvn batch-file

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