×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
・raspberypy python3 CGIサーバーの構築画面からのsubmit(その2) 2017/08
1.送信用HTMLの作成
--------------------------------------
name:[ ]
adrdr:[ ]
[送信]
-------------------------------------
cgitest1.html
1.送信用HTMLの作成
--------------------------------------
name:[ ]
adrdr:[ ]
[送信]
-------------------------------------
cgitest1.html
<html>
<head>
<title>Python3 CGI test1</title>
</head>
<body>
<h1>Python3 CGI test1</h1><hr><p>
<form name = "Form1" method="POST" action="/cgi-bin/cgitest1.py">
name: <input type="text" size=30 name="name"><p>
addr: <input type="text" size=30 name="addr"><p>
<input type="submit" value="送信" name="button1"><p>
</form>
</body>
</html>
2.受信用のCGIの作成
ルート>>cgi-binにcgi-bin/cgitest1.py
2.受信用のCGIの作成
ルート>>cgi-binにcgi-bin/cgitest1.py
#!/usr/bin/env python
import cgi
print "Content-Type: text/html\n\n"
print "<html><body>"
form = cgi.FieldStorage()
if form.has_key("name") and form.has_key("addr") :
print "<h2>Result</h2><hr><p>"
print "<p><b>name: </b>", form["name"].value
print "<p><b>addr: </b>", form["addr"].value
else :
print "<h1>ERROR</h1>"
print "</body></html>"
cgi-bin内でchmod 755で権限変更
3.結果
-----------------------------------------
name:入力値
addr:入力値
----------------------------------------
cgi-bin内でchmod 755で権限変更
3.結果
-----------------------------------------
name:入力値
addr:入力値
----------------------------------------
PR
・raspberypy3で python3を使ってシンプルサーバーとCGIサーバーの構築する 2017/08
1.手動での起動
python3 -m http.server 8000
2.ルートにindex.htmlを作って
http://127.0.0.1:8000/にアクセス
3.起動をpythonでコーディング
シンプルなサーバー simpleserver.py
import http.server
1.手動での起動
python3 -m http.server 8000
2.ルートにindex.htmlを作って
http://127.0.0.1:8000/にアクセス
3.起動をpythonでコーディング
シンプルなサーバー simpleserver.py
import http.server
import sys
try:
server_address = ("", 8000)
handler_class = http.server.SimpleHTTPRequestHandler
simple_server = http.server.HTTPServer(server_address, handler_class)
simple_server.serve_forever()
except KeyboardInterrupt:
sys.exit()
4.cgiサーバーをpythonでコーディング
4.cgiサーバーをpythonでコーディング
import http.server
import sys
try:
server_address = ("", 8000)
handler_class = http.server.CGIHTTPRequestHandler
server = http.server.HTTPServer(server_address, handler_class)
simple_server.serve_forever()
except KeyboardInterrupt:
sys.exit()
5.サブディレクトリを作成
mkdir cgi-bin
6.実行用のCGIを作成 cgitest.py
7.アクセス権
cd cgi-bin
chmod 755 cgitest.py
8.実行
http://127.0.0.1:8000/cgi-bi/cgitest.pyにアクセス
5.サブディレクトリを作成
mkdir cgi-bin
6.実行用のCGIを作成 cgitest.py
#!/usr/bin/env python3
import datetime
html_body = """
<html><body>
{0.year:d}/{0.month:d}/{0.day:d} {0.hour:d}:{0.minute:d}:{0.second:d}
</body></html>"""
now=datetime.datetime.now()
print("Content-type: text/html\n")
print(html_body.format(now))
7.アクセス権
cd cgi-bin
chmod 755 cgitest.py
8.実行
http://127.0.0.1:8000/cgi-bi/cgitest.pyにアクセス
MCP3208の値取得(2017/7月現在)
・SPIを設定>>Raspberypiの設定でSPIを有効にする
・SPIやWiringPIはすでに組み込まれているのでgetは不要
ピンケーブルの不良
チャネルが間違っている、
・SPIを設定>>Raspberypiの設定でSPIを有効にする
・SPIやWiringPIはすでに組み込まれているのでgetは不要
import spidev
import time
import sys
spi= spidev.SpiDev() #SPIデバイスのオープン
spi.open(0,0) #ce0ポート使用
def adc_read12(ch): #12ビット
r= spi.xfer2([4|2|(ch >> 2), (ch & 3 ) << 6,0])
r= spi.xfer2([4|2|(ch >> 2), (ch & 3 ) << 6,0])
v=((r[1] & 0xF) << 8 ) + r[2]
return v
def conv_volts(data,places):
volts = (data *3.3)/float(4096)
volts=round(volts,places)
return volts
def conv_volts5(data,places):
volts = (data *5.0)/float(4096)
volts=round(volts,places)
return volts
のシフト演算の値が間違っているwhile True:
try:
d=adc_read12(0)
print("adc 0 : {:8} ".format(d))
v=conv_volts(d,4)
print("volts: {:8.2f}".format(v))
time.sleep(1)
except KeyboardInterrupt:
break
spi.close()
・値が不安定の時は、
結線が間違っている
r= spi.xfer2([4|2|(ch >> 2), (ch & 3 ) << 6,0])
・値が不安定の時は、
結線が間違っている
r= spi.xfer2([4|2|(ch >> 2), (ch & 3 ) << 6,0])
ピンケーブルの不良
チャネルが間違っている、
PT-P900WでVB.NETからWIFIで印刷できない
vb.netはvb2013 ターゲットはframework3.5
結論
・p-touchEditerでレイアウトファイルを作成時に指定したプリンター名に
ピリントQが出力される
つまりUSB用とWiFI用に2種類レイアウトファイルを作成して
おのおのに印刷設定でプリンター名を指定しておく必要がある
なお、サポートによると
プリンター名を
doc.GetPrinterNameでゲットして
setPrinterで組み込み以外を指定してろいうアドバイスをもらったが
できるようであるがテストではうまく設定できない
ヘルプでは
Dim doc As bpac.DocumentClass = New bpac.DocumentClass ' プリンターリストを取得
Dim printers() As Object = doc.Printer.GetInstalledPrinters() ' プリンター名を取得
Dim InstalledPrinterName As String = printer(0).ToString ’これでは一件目になるのでNG
である。
なお、サポートと直接やりとりしたが、どうもVB.NETの情報はVB2005止まりの
ようで、VB2013では、ヘルプの記載通りでは動作しない場合があった。
特に参照設定するとコンパイルが通らない問題がある。
先のブログで対応方法を記載しているが、これをすると今度はVB6から
VB2008にVB内部ツールで返還したソースがエラーの山になる、
vb.netはvb2013 ターゲットはframework3.5
結論
・p-touchEditerでレイアウトファイルを作成時に指定したプリンター名に
ピリントQが出力される
つまりUSB用とWiFI用に2種類レイアウトファイルを作成して
おのおのに印刷設定でプリンター名を指定しておく必要がある
なお、サポートによると
プリンター名を
doc.GetPrinterNameでゲットして
setPrinterで組み込み以外を指定してろいうアドバイスをもらったが
できるようであるがテストではうまく設定できない
ヘルプでは
Dim doc As bpac.DocumentClass = New bpac.DocumentClass ' プリンターリストを取得
Dim printers() As Object = doc.Printer.GetInstalledPrinters() ' プリンター名を取得
Dim InstalledPrinterName As String = printer(0).ToString ’これでは一件目になるのでNG
である。
なお、サポートと直接やりとりしたが、どうもVB.NETの情報はVB2005止まりの
ようで、VB2013では、ヘルプの記載通りでは動作しない場合があった。
特に参照設定するとコンパイルが通らない問題がある。
先のブログで対応方法を記載しているが、これをすると今度はVB6から
VB2008にVB内部ツールで返還したソースがエラーの山になる、