小编Mor*_*kel的帖子

Arduino的内存限制

我最近买了一个Arduino Uno,现在我正在试验它.我有几个18B20传感器和一个ENC28J60网络模块连接到它,然后我做了一个草图,允许我从浏览器连接到它,并读取温度,作为一个简单的网页或JSON.使网页的代码如下所示:

client.print("Inne: ");
client.print(tempin);
client.println("<br />");
client.print("Ute: ");
client.print(tempout);
client.print("<br /><br />");
client.println(millis()/1000);
//    client.print("<a href=\"/json\">j</a>");
Run Code Online (Sandbox Code Playgroud)

奇怪的是:如果我取消注释最后一行,草图编译得很好,上传很好,但我无法连接到电路板.如果我在其他一些打印输出中添加更多字符,也会发生同样的事情.因此,它看起来好像我遇到了某种内存限制(草图的总大小约为15 KB,代码中的其他地方还有一些其他字符串 - 是的,我知道,我会重写它使用数组来存储临时数据,我刚刚从一个例子中窃取了一些代码).

我可以使用多少内存来存储Arduino中的字符串,有没有办法解决这个问题?(在具有GCC-AVR 4.3.5和AVR Libc 1.6.8 的Debian PC 上使用GUI v 1.0.1 ).

arduino

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

日期显示为数字

我从 postgresql 中获取了一组日期,它们看起来是正确的:

[1] "2007-07-13" "2007-07-14" "2007-07-22" "2007-07-23" "2007-07-24"
[6] "2007-07-25" "2007-08-13" "2007-08-14" "2007-08-15" "2007-08-16"
etc.
Run Code Online (Sandbox Code Playgroud)

然后我想对它们运行一个循环来创建新的 sql 语句来获取其他一些数据集(是的,我知道我在做什么,不可能在数据库服务器中进行所有处理)

所以我试过了

for(date in geilodates)
 mapdate(date,geilo)
Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR:  invalid input syntax for type date: "13707"
LINE 1: ...id_date_location where not cowid is null and date='13707' or...
Run Code Online (Sandbox Code Playgroud)

mapdate 是我写的一个函数,里面日期的使用是

sql=paste('select * from gps_coord where cowid=',cowid," and date='",date,"'",sep='')
Run Code Online (Sandbox Code Playgroud)

所以,发生的事情是,在我尝试将 sql 粘贴在一起之前,R 默默地将我的格式化日期转换为它们的整数表示形式。

如何获得日期的原始文本表示?我试过

for(date in geilodates){
  d=as.Date(date,origin="1970-01-01")
  mapdate(d,geilo)
}
Error in …
Run Code Online (Sandbox Code Playgroud)

postgresql r date

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

python - 在守护进程中失去与postgresql的连接

我正在重写一个python脚本来存储postgresql数据库中的arduino数据,希望使用python-daemon将其作为deamon运行.原始脚本工作正常,但在deamon中,我无法写入数据库.第一次尝试最终结果是:

<class 'psycopg2.DatabaseError'>, DatabaseError('SSL SYSCALL error: EOF detected\n'
Run Code Online (Sandbox Code Playgroud)

然后:

<class 'psycopg2.InterfaceError'>, InterfaceError('cursor already closed',)
Run Code Online (Sandbox Code Playgroud)

在工作脚本中,我做:

connstring="dbname='"+dbdatabase+"' user='"+dbusername+"' host='"+dbhost+"'password='"+dbpassword+"'"
try:
  conn = psycopg2.connect(connstring)
  cur=conn.cursor()
except:
  my_logger.critical(appname+": Unable to connect to the database")
  sys.exit(2)
sql="insert into measure (sensorid,typeid,value) VALUES(%s,%s,%s)"
< more to set up serialport, logging and so on>
while 1:
  < fetch a data set and split it to a list >
  for (i,val) in enumerate measures:
     try:
       cur.execute(sql,(sensors[i],typeid[i],val)) 
       conn.commit()
     except:
       self.logger.error(appname+": error 106 :"+str(sys.exc_info()))
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,这可能是我最初使用串行连接时遇到的一些问题,串口在重写的Python代码中不起作用,所以我试图摆弄files_preserve …

python linux postgresql daemon psycopg2

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

声明字符串变量时需要对象错误

我正在从数据库查询中获取一组名称,然后将其重新格式化为逗号分隔的列表。当我在我的应用程序中的几个地方使用这个功能时,我尝试将它编写为获取 sql-query 并返回字符串的函数。

Public Function String_from_query(StrSQL As String) As String

 Dim dbs As Database
 Dim rs As Recordset
 Set dbs = CurrentDb
 Dim results As String
 results = ""
 Set rs = dbs.OpenRecordset(StrSQL)
 If Not (rs.EOF And rs.BOF) Then
    rs.MoveFirst
    Do While Not rs.EOF
        If results > "" Then
            results = results & ", "
        End If
        results = results & rs("Navn")
        rs.MoveNext
    Loop
 End If
 Set String_from_query = results
End Function
Run Code Online (Sandbox Code Playgroud)

然后从事件处理程序调用它:

Private Sub Detalj_Format(Cancel As Integer, FormatCount As …
Run Code Online (Sandbox Code Playgroud)

ms-access vba

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

PostgreSQL时间戳 - 索引

我正在运行一个查询,我在那里寻找一条记录,另一条记录在一段时间之后.

表定义:

(
  id integer primary key,
  gpsstatus character(2),
  datetime timestamp without time zone,
  lat numeric(9,6),
  lon numeric(9,6),
  alt numeric(9,4),
  time integer,
  datafileid integer,
  shape geometry,
  speed double precision,
  dist double precision,
  shape_utm geometry,
  lokalitet character(128),
  cowid integer
)
Run Code Online (Sandbox Code Playgroud)

在datetime,lokalitet,cowid,gpsstatus,gist-index on shape和shape_utm上有索引.

应该每隔5秒对这些点进行采样,所以我试着这样做

select <something more>,p1.timestamp 
from table p1, table p2 
where p1.timestamp + interval '5 secound' = p2.timestamp
Run Code Online (Sandbox Code Playgroud)

这样运行得相当快,但后来我发现由于采样中的抖动导致我丢失了很多点,所以这些点可能相隔4到6秒.

然后我尝试了:

where    (p2.timestamp, interval'0 second')
overlaps (p1.timestamp + interval '4 second', interval '2 second')
Run Code Online (Sandbox Code Playgroud)

这花了很多年.我也尝试过更简单的解决方案:

WHERE p1.timestamp + interval '4 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql timestamp range

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

提取时间戳的部分内容

我有一些数据集,动物每5秒钟记录一次.数据存储在postgis中,我使用R来分析和绘制数据.我想在图上刊登一些显示每小时位置的标记.我将数据集的子集拉到R中,使数据框中包含每个点的时间戳和x和y坐标.

我的数据集的summary()的一部分(总共大约10000行):

 id             datetime                        date           
Min.   :2664295   Min.   :2009-08-21 05:00:04   Min.   :2009-08-21  
1st Qu.:2666819   1st Qu.:2009-08-21 08:30:15   1st Qu.:2009-08-21  
Median :2669342   Median :2009-08-21 12:00:03   Median :2009-08-21  
Mean   :2669342   Mean   :2009-08-21 11:30:10   Mean   :2009-08-21  
3rd Qu.:2671866   3rd Qu.:2009-08-21 14:22:44   3rd Qu.:2009-08-21  
Max.   :2674390   Max.   :2009-08-21 16:59:58   Max.   :2009-08-21  

 lokalitet             cowid           x                y          
Length:10          Min.   :553   Min.   :455329   Min.   :6712350  
Class :character   1st Qu.:553   1st Qu.:455718   1st Qu.:6712744  
Mode  :character   Median :553   Median :456154   Median :6713068  
                   Mean   :553   Mean   :456011   Mean   :6713074 …
Run Code Online (Sandbox Code Playgroud)

postgresql r

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

平均划分屏幕宽度和一些布局问题

我被困在某个地方......我正在编写一个用于记录放牧奶牛行为观察的应用程序.我的想法是,在屏幕的底部,我有一些字段可以识别各个动物.要注册观察,该字段将被拖动到顶部的一个字段,即将240拖到Grazing以显示现在是奶牛#240放牧.

我的观察记录器应用程序的屏幕截图

使用许多线性布局构建屏幕布局.基本上布局是

<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="250dp"
       android:orientation="vertical">
       <LinearLayout
          android:layout_width="100dp"
          android:layout_height="150dp"
          android:background="@drawable/shape">
         <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:text="Grazing" />
         </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

然后,linearlayout/textview模式在顶部重复三次,底部使用类似的模式(编辑xml的显示部分)

目前我遇到了三个不同的问题:

1)如何在四个拖曳区域和下降区域之间平均分割顶部和底部的屏幕空间?我试图使用重量而不是宽度的固定值,但如果我尝试,应用程序崩溃. - 顺便说一下,区域的数量可能略有不同.

2)如何将文本置于区域中心.当我搜索时,我被告知我必须使用layout_gravity ="center",但这不起作用 - 据我理解布局,将textview放在线性布局的中心 - 我如何确保文本位于textview的中间?

3)为什么底部区域部分"掉下屏幕"?它们等于上部区域,表示它们被包裹在layout_gravity ="bottom"的线性布局中 - 我认为这会导致它们在屏幕底部有底部.

(如果重要的话,我正在手机上使用Aide进行开发)

android android-layout

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

标签 统计

postgresql ×4

r ×2

android ×1

android-layout ×1

arduino ×1

daemon ×1

date ×1

linux ×1

ms-access ×1

psycopg2 ×1

python ×1

range ×1

sql ×1

timestamp ×1

vba ×1