#----- python ----
import sys
import serial
import time
import string
import binascii
import time
import os
try:
filename1 = "Power-Consumption"+time.strftime("%Y-%m-%d-%H%M%S")+".csv"
print filename1
on_time = 1 # in seconds
mac_v = 12
actual_v = 12
actual_a = 3 # Amp
sleep_cmd_int = 0.1 # time for gap between commands
v1 = 0 # currect mA
a1 = 0 # voltage V
ser = serial.Serial('COM14',38400,timeout=1)
print ser.portstr
#------------- enable remote management ---------------------------
a0 = 'AA';a1 = '00';a2 = '20';a3 = '01';a4 = '00';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
# ---- sleep ---
time.sleep(sleep_cmd_int)
#-------------------Set V---------------------
a0 = 'AA';a1 = '00';a2 = '23';a3 = 'E0';a4 = '2E';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
# ----
time.sleep(sleep_cmd_int)
#-----------------------set the current---------------------
a0 = 'AA';a1 = '00';a2 = '24';a3 = 'B8';a4 = '0B';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
# ----
time.sleep(sleep_cmd_int)
# ------- turn on ---
a0 = 'AA';a1 = '00';a2 = '21';a3 = '01';a4 = '00';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
# ------------
time.sleep(on_time)
#---- flush ---
ser.flush()
while 1==1:
ser.flush()
# ----------read current -------------
a0 = 'AA';a1 = '00';a2 = '26';a3 = 'B8';a4 = '0B';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
# ---- sleep ---
time.sleep(.1)
# --- flush ---
ser.flush()
# ---- sleep ---
time.sleep(.1)
msg2 = ser.read(1000)
btreceived1 = list(msg2)
#print btreceived1
if '\x26' in btreceived1:
a11 = btreceived1[btreceived1.index('\x26')+1:btreceived1.index('\x26')+3]
a12 = a11[1].encode('hex')+a11[0].encode('hex')
a1 = int(a12,16)
v11 = btreceived1[btreceived1.index('\x26')+3:btreceived1.index('\x26')+7]
v12 = v11[3].encode('hex')+v11[2].encode('hex')+v11[1].encode('hex')+v11[0].encode('hex')
print "..."
print str(a1)+"mA"+" @ "+str(float(int(v12,16))/1000)+"V"+" - "+time.strftime("%Y-%m-%d %H:%M:%S")
writettoofile = str(a1)+","+str(float(int(v12,16))/1000)+","+time.strftime("%Y%m%d%H%M%S")+"\n"
#--- open/close file ---
f1 = open(filename1,'a',0)
f1.write(writettoofile)
f1.close
#--- sleep ---
time.sleep(1)
except:
print "Something went wrong"
#--- sleep ---
time.sleep(2)
#----- turn off -------
a0 = 'AA';a1 = '00';a2 = '21';a3 = '00';a4 = '00';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
#--------------Disable remote -------
a0 = 'AA';a1 = '00';a2 = '20';a3 = '00';a4 = '00';a5 = '00';a6 = '00'
a7 = '00';a8 = '00';a9 = '00';a10 = '00';a11 = '00';a12 = '00';a13 = '00'
a14 = '00';a15 = '00';a16 = '00';a17 = '00';a18 = '00';a19 = '00';a20 = '00'
a21 = '00';a22 = '00';a23 = '00';a24 = '00';a25 = '00'
btsend1 = [int(a0,16),int(a1,16),int(a2,16),int(a3,16),int(a4,16),int(a5,16),int(a6,16),int(a7,16),int(a8,16),int(a9,16),int(a10,16),int(a11,16),int(a12,16),int(a13,16),int(a14,16),int(a15,16),int(a16,16),int(a17,16),int(a18,16),int(a19,16),int(a20,16),int(a21,16),int(a22,16),int(a23,16),int(a24,16),int('00',16)]
cksum1 = hex(sum(btsend1))[len(hex(sum(btsend1)))-2:len(hex(sum(btsend1)))]
btsend1[25] = int(cksum1,16)
s = bytearray(btsend1)
ser.write(s)
ser.write("\r\n")
Thursday, May 30, 2013
Wednesday, May 1, 2013
simplemediawiki edit example - python
# ---------------- python code start ----------------------
from simplemediawiki import MediaWiki
wiki = MediaWiki('http://192.168.20.20/mediawiki/api.php')
myUserName = "xxx"
myPassword = "xxx"
#logs in
loginData = wiki.call({'action':'login', 'lgname': myUserName,'lgpassword': myPassword})
print loginData
#resubmission of the login token
personalLoginData = wiki.call({'action':'login', 'lgname': myUserName ,'lgpassword': myPassword,'lgtoken': loginData['login']['token'$
print "[][][]]"
print personalLoginData
print "[][][][]"
returnData = wiki.call({'action':'query','prop':'info', 'titles':'Main_Page','intoken':'edit'});
print returnData
# get the edittoken:
edittoken = returnData['query']['pages']['1']['edittoken']
print "----"
print edittoken
print "----"
results = wiki.call({'action':'edit','title':"testwiki1_Page",'section':'new','text':"new page sample text",'token':edittoken})
print results
# ---------------- python code end ----------------------
Friday, March 22, 2013
CISCO IPv6 PPPOE server
I have been trying to test a CPE router with IPv6 PPPoE client, and finally manage to setup a PPPoE server in a cisco 7K witch supports IPv6. Now the set-up seems to establish an IPv6 link local address in the ppp0 interface in the CPE router and the br0 interface in the router is obtaining a global IPv6 address using DHCPv6. I will update this post with more details soon . CISCO running config is given below,
-----------------------
version 12.4
!
ipv6 unicast-routing
ipv6 cef
ipv6 dhcp pool Clients
prefix-delegation pool DhcpPool
!
ipv6 dhcp pool dhcpv6
prefix-delegation pool dhcpv6-pool1 lifetime 1800 600
address prefix 2001:1::/64
dns-server 2001:1::1
domain-name dhcpv6.com
!
!
multilink bundle-name authenticated
!
memory-size iomem 0
username cisco password 0 cisco
archive
log config
hidekeys
!
bba-group pppoe GROUP
!
bba-group pppoe GROUPA
virtual-template 1
!
!
interface Loopback0
ip address 10.12.0.1 255.255.255.0
ipv6 address 2001:6::1/64
ipv6 enable
!
interface Loopback1
no ip address
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
ipv6 address 2001:2::1/64
ipv6 enable
ipv6 nd managed-config-flag
ipv6 dhcp server dhcpv6
pppoe enable group GROUPA
!
interface FastEthernet0/1
ip address dhcp
duplex auto
speed auto
ipv6 address 2001:1::1/64
!
interface Virtual-Template1
ip unnumbered Loopback0
ipv6 unnumbered Loopback0
ipv6 enable
ipv6 nd managed-config-flag
ipv6 nd other-config-flag
ipv6 nd router-preference High
no ipv6 nd ra suppress
ipv6 dhcp server dhcpv6
peer default ip address pool ppppool1
peer default ipv6 pool dhcpv6-pool1
ppp authentication pap chap callin
!
ip local pool ppppool1 10.12.0.50 10.12.0.254
ip forward-protocol nd
no ip http server
no ip http secure-server
!
ipv6 local pool dhcpv6-pool1 2001:5::/32 48
!
-----------------------
version 12.4
!
ipv6 unicast-routing
ipv6 cef
ipv6 dhcp pool Clients
prefix-delegation pool DhcpPool
!
ipv6 dhcp pool dhcpv6
prefix-delegation pool dhcpv6-pool1 lifetime 1800 600
address prefix 2001:1::/64
dns-server 2001:1::1
domain-name dhcpv6.com
!
!
multilink bundle-name authenticated
!
memory-size iomem 0
username cisco password 0 cisco
archive
log config
hidekeys
!
bba-group pppoe GROUP
!
bba-group pppoe GROUPA
virtual-template 1
!
!
interface Loopback0
ip address 10.12.0.1 255.255.255.0
ipv6 address 2001:6::1/64
ipv6 enable
!
interface Loopback1
no ip address
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
ipv6 address 2001:2::1/64
ipv6 enable
ipv6 nd managed-config-flag
ipv6 dhcp server dhcpv6
pppoe enable group GROUPA
!
interface FastEthernet0/1
ip address dhcp
duplex auto
speed auto
ipv6 address 2001:1::1/64
!
interface Virtual-Template1
ip unnumbered Loopback0
ipv6 unnumbered Loopback0
ipv6 enable
ipv6 nd managed-config-flag
ipv6 nd other-config-flag
ipv6 nd router-preference High
no ipv6 nd ra suppress
ipv6 dhcp server dhcpv6
peer default ip address pool ppppool1
peer default ipv6 pool dhcpv6-pool1
ppp authentication pap chap callin
!
ip local pool ppppool1 10.12.0.50 10.12.0.254
ip forward-protocol nd
no ip http server
no ip http secure-server
!
ipv6 local pool dhcpv6-pool1 2001:5::/32 48
!
----------------------------------------------
Thursday, March 21, 2013
L2TP with MPPE
For my understanding L2TP usually use IPsec for security, but
today I tested a cpe router which has a L2TP client which use MPPE. I was puzzled
but then I figured out that CISCO ios support L2TP with MPPE. You just need to
add the line "ppp encrypt mppe auto" to the virtual template,
vpdn-group L2TP-pure
accept-dialin
protocol l2tp
virtual-template 52
interface Virtual-Template52
ip unnumbered Loopback1
ip nat inside
ip virtual-reassembly
peer default ip address pool L2TP-POOL
ppp encrypt mppe
auto
ip local pool L2TP-POOL
192.168.60.10 192.168.60.100
Subscribe to:
Posts (Atom)