小编eep*_*pty的帖子

LwIP - netconn API - 在进程被阻止时发送TCP数据包?

我正在使用FreeRTOS + LwIP开发基于以太网的床边护士呼叫设备.在阅读了一些示例和文档后,我想使用LwIP的netconn API在TCP下发送和接收数据,因为我不熟悉BSD样式API,原始API可能很难.

我知道该netconn_accept()函数将阻止进程,直到来自远程主机的连接请求到达,并且该netconn_recv()函数还将在等待数据到达时阻止进程...这两个函数都将阻止进程,这对服务器有利然而,接收数据时,我的设备还需要充当客户端,当患者按下按钮时需要触发对护士中心的"呼叫".那么在它还在等待远程主机的连接(阻塞进程)时,它如何启动发送TCP数据包呢?

我需要发送TCP,因为我必须使用SIP(会话启动协议)来发起呼叫,它应该是可靠的,因为它是一个医疗设备.非常感谢你


@Kyle Heironimus,@ werewindle我将你添加到我的问题中,因为我知道你有LwIP的经验,希望不会给你带来不便,希望你能提供帮助,谢谢.

embedded voip network-programming lwip freertos

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

C中任何更快的RMS值计算?

我正在用C编写一个小型8位微控制器的软件.部分代码是读取电流互感器(ZCT)的ADC值,然后计算RMS值.流过ZCT的电流是正弦曲线但可能会失真.我的代码如下:

float       adc_value, inst_current;
float       acc_load_current;           // accumulator = (I1*I1 + I2*I2 + ... + In*In)
double      rms_current;

// Calculate the real instantanous value from the ADC reading
inst_current = (adc_value/1024)*2.5;    // 10bit ADC, Voltage ref. 2.5V, so formula is: x=(adc/1024)*2.5V                           

// Update the RMS value with the new instananous value:
// Substract 1 sample from the accumulator (sample size is 512, so divide accumulator by 512 and substract it from the accumulator)
acc_load_current -= (acc_load_current / 512);       
inst_current *= …
Run Code Online (Sandbox Code Playgroud)

c algorithm performance microcontroller

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

LWIP + RTOS - 如何避免netconn永远阻塞线程?

当调用LwIP netconn_accept()netconn_recv()函数时,如果我们使用RTOS,它将阻塞线程并等待连接直到超时或永远,取决于设置LWIP_SO_RCVTIME0.超时持续时间等于SYS_ARCH_TIMEOUT.

SYS_ARCH_TIMEOUT被定义为0xffffffff的核心包括了LwIP堆栈的一部分,所以我想是不是有望得到改变.

实际上,我希望它检查是否建立了连接,如果没有,则继续该线程.但是,如果我调用netconn_accept()它,它将只是阻塞线程并在那里永远等待(或很长时间)...我不想jsut更改定义值SYS_ARCH_TIMEOUT因为我需要在不同的情况下不同的超时...

这样做的好方法是什么?谢谢.

c embedded network-programming rtos lwip

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

Android:在哪里可以找到Seekbar可绘制对象“ scrubber_control_normal_holo”

我的主要问题是我想增加Seekbar拇指的大小,所以我找到了这篇文章:更改seekbar拇指的大小

从那里说,我可以创建thumb_size.xml并在其中添加以下代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_normal_holo"/>
Run Code Online (Sandbox Code Playgroud)

但是,然后Android Studio给我错误消息,提示它找不到

scrubber_control_normal_holo

然后我找到了这篇文章:Android:在哪里可以找到RadioButton Drawable?

但是,在我的SDK文件夹/ p​​latforms / android-17 / data / res / drawable文件夹中,我仍然找不到此文件,只能找到类似以下内容的文件:

seek_thumb.xml

但是当我尝试使用它时,它仍然给我错误。

android seekbar seekbar-thumb

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

收到的 UDP 数据包是否在 LwIP 堆栈中排队?

我正在使用LwIPFreeRTOS为嵌入式设备编写一个C程序,微控制器是 Atmel AVR32。

LwIP中,通过设置udp接收回调函数后udp_recv(),我知道一旦收到UDP数据报就会调用该回调函数。然后我可以process_udp_packet()在回调函数中执行类似的操作。但是,如果在回调函数完成之前收到另一个UDP数据包,那么第二个数据包是否会在缓冲区中排队?或者第一个回调函数还没有执行完,回调函数就会立即再次被调用?

非常感谢。

c lwip

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