我最近买了一个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 ).
我从 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) 我正在重写一个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 …
我正在从数据库查询中获取一组名称,然后将其重新格式化为逗号分隔的列表。当我在我的应用程序中的几个地方使用这个功能时,我尝试将它编写为获取 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) 我正在运行一个查询,我在那里寻找一条记录,另一条记录在一段时间之后.
表定义:
(
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) 我有一些数据集,动物每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) 我被困在某个地方......我正在编写一个用于记录放牧奶牛行为观察的应用程序.我的想法是,在屏幕的底部,我有一些字段可以识别各个动物.要注册观察,该字段将被拖动到顶部的一个字段,即将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进行开发)