I'm writing a model in NuSMV. However, there is a problem. When I try to simulate the model in using the interactive mode using ./NuSMV -int, it stucks on a state saying that there is not any further reachable states. But, this should not be true according the way I write the model and the transition from that state. For more information I put here the entire model, the execution trace and the entire last state of the trace.
For the model I put the link of pastebin Model. The intereseted part of the model is the MODULE PI and the transition from the pc = 53 to the pc = 54 in the TRANS section.
This is the trace of the simulation
Trace Type: Simulation
-> State: 13.1 <-
ca.x1 = None
ca.x2 = None
ca.PK = None
ca.x3 = None
ca.len = 0
cb.x1 = None
cb.PK = None
cb.x2 = None
cb.len = 0
IniCommitAB = FALSE
IniRunningAB = FALSE
ResRunningAB = FALSE
ResCommitAB = FALSE
p_initial.PIni_process1.slef = None
p_initial.PIni_process1.party = None
p_initial.PIni_process1.nonce = None
p_initial.PIni_process1.runable = FALSE
p_initial.PIni_process1.g1 = None
p_initial.PIni_process1.pc = 1
p_initial.PIni_process2.slef = None
p_initial.PIni_process2.party = None
p_initial.PIni_process2.nonce = None
p_initial.PIni_process2.runable = FALSE
p_initial.PIni_process2.g1 = None
p_initial.PIni_process2.pc = 1
p_initial.PRes_process.slef = None
p_initial.PRes_process.nonce = None
p_initial.PRes_process.g2 = None
p_initial.PRes_process.g3 = None
p_initial.PRes_process.runable = FALSE
p_initial.PRes_process.pc = 1
p_initial.PI_process.kNa = FALSE
p_initial.PI_process.kNb = FALSE
p_initial.PI_process.k_Na_Nb__A = FALSE
p_initial.PI_process.k_Na_A__B = FALSE
p_initial.PI_process.k_Nb__B = FALSE
p_initial.PI_process.x1 = None
p_initial.PI_process.x2 = None
p_initial.PI_process.x3 = None
p_initial.PI_process.pc = 1
p_initial.PI_process.runable = FALSE
p_initial.pc = 1
cb_is_empty = TRUE
ca_is_empty = TRUE
p_initial.PI_process.x3_I = FALSE
p_initial.PI_process.check = TRUE
-> Input: 13.2 <-
_process_selector_ = p_initial
running = FALSE
p_initial.running = TRUE
p_initial.PI_process.running = FALSE
p_initial.PRes_process.running = FALSE
p_initial.PIni_process2.running = FALSE
p_initial.PIni_process1.running = FALSE
cb.running = FALSE
ca.running = FALSE
-> State: 13.2 <-
p_initial.pc = 2
-> Input: 13.3 <-
-> State: 13.3 <-
p_initial.PIni_process1.slef = A1
p_initial.PIni_process1.party = I
p_initial.PIni_process1.nonce = Na
p_initial.PIni_process1.runable = TRUE
p_initial.pc = 4
-> Input: 13.4 <-
-> State: 13.4 <-
p_initial.PRes_process.slef = B
p_initial.PRes_process.nonce = Nb
p_initial.PRes_process.runable = TRUE
p_initial.pc = 5
-> Input: 13.5 <-
-> State: 13.5 <-
p_initial.PI_process.runable = TRUE
p_initial.pc = 6
-> Input: 13.6 <-
_process_selector_ = p_initial.PIni_process1
p_initial.running = FALSE
p_initial.PIni_process1.running = TRUE
-> State: 13.6 <-
p_initial.PIni_process1.pc = 4
-> Input: 13.7 <-
-> State: 13.7 <-
p_initial.PIni_process1.pc = 5
-> Input: 13.8 <-
-> State: 13.8 <-
p_initial.PIni_process1.pc = 6
-> Input: 13.9 <-
-> State: 13.9 <-
ca.x1 = A1
ca.x2 = Na
ca.PK = A1
ca.x3 = I
ca.len = 1
p_initial.PIni_process1.pc = 7
ca_is_empty = FALSE
-> Input: 13.10 <-
_process_selector_ = p_initial.PI_process
p_initial.PI_process.running = TRUE
p_initial.PIni_process1.running = FALSE
-> State: 13.10 <-
p_initial.PI_process.pc = 52
-> Input: 13.11 <-
-> State: 13.11 <-
ca.x1 = None
ca.x2 = None
ca.PK = None
ca.x3 = None
ca.len = 0
p_initial.PI_process.x1 = Na
p_initial.PI_process.x2 = A1
p_initial.PI_process.x3 = I
p_initial.PI_process.pc = 53
ca_is_empty = TRUE
p_initial.PI_process.x3_I = TRUE
While this is the entire last state of the execution
ca.x1 = None
ca.x2 = None
ca.PK = None
ca.x3 = None
ca.len = 0
cb.x1 = None
cb.PK = None
cb.x2 = None
cb.len = 0
IniCommitAB = FALSE
IniRunningAB = FALSE
ResRunningAB = FALSE
ResCommitAB = FALSE
p_initial.PIni_process1.slef = A1
p_initial.PIni_process1.party = I
p_initial.PIni_process1.nonce = Na
p_initial.PIni_process1.runable = TRUE
p_initial.PIni_process1.g1 = None
p_initial.PIni_process1.pc = 7
p_initial.PIni_process2.slef = None
p_initial.PIni_process2.party = None
p_initial.PIni_process2.nonce = None
p_initial.PIni_process2.runable = FALSE
p_initial.PIni_process2.g1 = None
p_initial.PIni_process2.pc = 1
p_initial.PRes_process.slef = B
p_initial.PRes_process.nonce = Nb
p_initial.PRes_process.g2 = None
p_initial.PRes_process.g3 = None
p_initial.PRes_process.runable = TRUE
p_initial.PRes_process.pc = 1
p_initial.PI_process.kNa = FALSE
p_initial.PI_process.kNb = FALSE
p_initial.PI_process.k_Na_Nb__A = FALSE
p_initial.PI_process.k_Na_A__B = FALSE
p_initial.PI_process.k_Nb__B = FALSE
p_initial.PI_process.x1 = Na
p_initial.PI_process.x2 = A1
p_initial.PI_process.x3 = I
p_initial.PI_process.pc = 53
p_initial.PI_process.runable = TRUE
p_initial.pc = 6
cb_is_empty = TRUE
ca_is_empty = TRUE
p_initial.PI_process.x3_I = TRUE
The problem is that NuSMV stucks on this state. I don't know why, since the condition to step in the next state is that (x3 = I) that is true, in fact p_initial.PI_process.x3_I = TRUE. Moreover, for every simulation it stops at most at the 11th state. These are the command that I give to execute
read_model -i <model>
flatten_hierarchy
encode_variables
build_model
pick_state -r
simulate -r -p -k 12
I know that it is not a simple problem. But I need help, I'm stucked on this problem since weeks.
My code:
import pandas
import requests
from bs4 import BeautifulSoup
from pywebio.input import *
from pywebio.output import *
from time import sleep
from pywebio import start_server
print("News web application successfully started!")
def app():
request = requests.get("https://news.google.com/topics/CAAqRggKIkBDQklTS2pvUVkyOTJhV1JmZEdWNGRGOXhkV1Z5ZVlJQkZRb0lMMjB2TURKcU56RVNDUzl0THpBeFkzQjVlU2dBUAE/sections/CAQqSggAKkYICiJAQ0JJU0tqb1FZMjkyYVdSZmRHVjRkRjl4ZFdWeWVZSUJGUW9JTDIwdk1ESnFOekVTQ1M5dEx6QXhZM0I1ZVNnQVAB?hl=en-US&gl=US&ceid=US%3Aen")
content = BeautifulSoup(request.content, 'html.parser')
find = content.find('div', class_='ajwQHc BL5WZb')
#open('test.html', 'w').write(findstr.find)
h3 = find.find_all('h3')
time = find.find_all('time')
link = find.find_all('article')#.find_all('a').get('href').replace('.', '')
result = []
#print('https://news.google.com' + link)
#put_html('<table border="1" width="100%" cellpadding="5">')
source = find.find_all('a', {'data-n-tid' : '9'})
time = find.find_all('time')
textoutput = []
textoutput1 = []
textoutput2 = []
takeoutput3 = []
#writer = open('news.csv', 'w')
#writer1 = csv.writer(writer, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for text in h3:
a1 = text.text
textoutput.append(a1)
for text2 in source:
a3 = text2.text
textoutput1.append(a3)
for text1 in time:
a5 = text1.text
textoutput2.append(a5)
#for result in link:
# alinks = result.find_all('a')
# alinks1 = []
# for alinks1 in alinks:
# alinks2 = alinks1.get('href')
# alinksreplace = str(alinks2)
# alinksreplace1 = alinksreplace.replace(".", "")
# alinksreplace2 = alinksreplace1.replace("None", "")
#
# if (alinksreplace2 != ''):
# if "publications" not in alinksreplace2:
# a = "https://news.google.com" + alinksreplace2
# takeoutput3.append(a)
pandas.set_option('display.max_colwidth', None)
frame = {'Title':textoutput, 'Time':textoutput2, 'Source' : textoutput1}
frame1 = pandas.DataFrame(frame)
#frame2 = {'Link' : takeoutput3}
#frame3 = pandas.DataFrame(frame2)
frametostring = frame1.to_string(index=False)
#frametostring1 = frame3.to_string(index=False)
#print(frametostring)
put_code(frametostring)
#put_code(frametostring1)
#writer1.writerow([textoutput, textoutput1, textoutput2])
start_server(app, 82)
it worked fine but today Google update something and now it don't start. And it's because Google add before you continue pop-up. How I can bypass this so my script continue to work?
If it was Selenium I've just clicked the button but here I don't know what to do
Thanks you helping!
Good Morning!
Currently I have set up my structure in Fiware saving my historical records in MongoDB, for this I have been using Mlab as a hosting.
I attache the configuration file of my agent, the problem comes in that due to the mandatory character "/" of the service path I can not access the generated historical data, since it is a character not allowed for collections in MongoDB.
agent_1.conf
cygnus-ngsi.sources = http-source
cygnus-ngsi.sinks = mongo-sink
cygnus-ngsi.channels = mongo-channel
cygnus-ngsi.sources.http-source.channels = mongo-channel
cygnus-ngsi.sources.http-source.type = org.apache.flume.source.http.HTTPSource
cygnus-ngsi.sources.http-source.port = 5050
cygnus-ngsi.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.NGSIRestHandler
cygnus-ngsi.sources.http-source.handler.notification_target = /notify
cygnus-ngsi.sources.http-source.handler.default_service = default
cygnus-ngsi.sources.http-source.handler.default_service_path = /sevilla
cygnus-ngsi.sources.http-source.handler.events_ttl = 2
cygnus-ngsi.sources.http-source.interceptors = ts
cygnus-ngsi.sources.http-source.interceptors.ts.type = timestamp
cygnus-ngsi.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.NGSIMongoSink
cygnus-ngsi.sinks.mongo-sink.channel = mongo-channel
cygnus-ngsi.sinks.mongo-sink.enable_encoding = false
cygnus-ngsi.sinks.mongo-sink.enable_grouping = false
cygnus-ngsi.sinks.mongo-sink.enable_name_mappings = false
cygnus-ngsi.sinks.mongo-sink.enable_lowercase = false
cygnus-ngsi.sinks.mongo-sink.data_model = dm-by-service-path
cygnus-ngsi.sinks.mongo-sink.attr_persistence = row
cygnus-ngsi.sinks.mongo-sink.mongo_hosts = ds******.mlab.com:35866
cygnus-ngsi.sinks.mongo-sink.mongo_username = my_user
cygnus-ngsi.sinks.mongo-sink.mongo_password = ********
cygnus-ngsi.sinks.mongo-sink.db_prefix = sth_
cygnus-ngsi.sinks.mongo-sink.collection_prefix = sth_
cygnus-ngsi.sinks.mongo-sink.batch_size = 1
cygnus-ngsi.sinks.mongo-sink.batch_timeout = 30
cygnus-ngsi.sinks.mongo-sink.batch_ttl = 10
cygnus-ngsi.sinks.mongo-sink.data_expiration = 0
cygnus-ngsi.sinks.mongo-sink.collections_size = 0
cygnus-ngsi.sinks.mongo-sink.max_documents = 0
cygnus-ngsi.sinks.mongo-sink.ignore_white_spaces = true
cygnus-ngsi.channels.mongo-channel.type = com.telefonica.iot.cygnus.channels.CygnusMemoryChannel
cygnus-ngsi.channels.mongo-channel.capacity = 1000
cygnus-ngsi.channels.mongo-channel.transactionCapacity = 100
Is there any way for Cygnus to remove the "/" character from the service path?
Error: http://www.subirimagenes.com/imagedata.php?url=http://s2.subirimagenes.com/imagen/9827048captura-de-pantalla.png
SOLUTION: You just have to change the enconding to true in the agent configuration
cygnus-ngsi.sinks.mongo-sink.enable_encoding = true
Thank you very much!
I am trying to create a query to dynamically update some values from a table Y from a table X.
I'm currenly dealing with a DB that hosts 10kk rows and I would like to optimize the amount of time of the processing.
Select:
SELECT cycle_completa.numcycle AS actual_cycle,
min(cycle_completa.pump1pre) AS min_pump1pre,
min(cycle_completa.pump2pre) AS min_pump2pre,
min(cycle_completa.pump3pre) AS min_pump3pre,
min(cycle_completa.slidevel) AS min_slidevel,
min(cycle_completa.slidepos) AS min_slidepos,
min(cycle_completa.slideforce) AS min_slideforce,
min(cycle_completa.slideservopilotpre) AS min_slideservopilotpre,
min(cycle_completa.slidecentralpre) AS min_slidecentralpre,
min(cycle_completa.slidelateralpre) AS min_slidelateralpre,
min(cycle_completa.slideringpre) AS min_slideringpre,
min(cycle_completa.slidepistonpre) AS min_slidepistonpre,
min(cycle_completa.slidey42pre) AS min_slidey42pre,
min(cycle_completa.cushionforce) AS min_cushionforce,
min(cycle_completa.cushionservopilotpre) AS min_cushionservopilotpre,
min(cycle_completa.cushionpistonpre) AS min_cushionpistonpre,
min(cycle_completa.cushionringpre) AS min_cushionringpre,
min(cycle_completa.pfillaccumpre) AS min_pfillaccumpre,
min(cycle_completa.pfillcentralpre) AS min_pfillcentralpre,
min(cycle_completa.pfilllateralpre) AS min_pfilllateralpre,
min(cycle_completa.pfillunlockingpre) AS min_pfillunlockingpre,
min(cycle_completa.reducedauxpumppre) AS min_reducedauxpumppre,
min(cycle_completa.tankoiltemp) AS min_tankoiltemp
FROM cycle_completa
WHERE slidestage = 17
GROUP BY cycle_completa.numcycle
UPDATE:
UPDATE cycle_parametros
SET seg3_min_valor_fmant_pump1pre = min_pump1pre,
seg3_min_valor_fmant_pump2pre = min_pump2pre,
seg3_min_valor_fmant_pump3pre = min_pump3pre,
seg3_min_valor_fmant_slidevel = min_slidevel,
seg3_min_valor_fmant_slidepos = min_slidepos,
seg3_min_valor_fmant_slideforce = min_slideforce,
seg3_min_valor_fmant_slideservopilotpre = min_slideservopilotpre,
seg3_min_valor_fmant_slidecentralpre = min_slidecentralpre,
seg3_min_valor_fmant_slidelateralpre = min_slidelateralpre,
seg3_min_valor_fmant_slideringpre = min_slideringpre,
seg3_min_valor_fmant_slidepistonpre = min_slidepistonpre,
seg3_min_valor_fmant_slidey42pre = min_slidey42pre,
seg3_min_valor_fmant_cushionforce = min_cushionforce,
seg3_min_valor_fmant_cushionservopilotpre = min_cushionservopilotpre,
seg3_min_valor_fmant_cushionpistonpre = min_cushionpistonpre,
seg3_min_valor_fmant_cushionringpre = min_cushionringpre,
seg3_min_valor_fmant_pfillaccumpre = min_pfillaccumpre,
seg3_min_valor_fmant_pfillcentralpre = min_pfillcentralpre,
seg3_min_valor_fmant_pfilllateralpre = min_pfilllateralpre,
seg3_min_valor_fmant_pfillunlockingpre = min_pfillunlockingpre,
seg3_min_valor_fmant_reducedauxpumppre = min_reducedauxpumppre,
seg3_min_valor_fmant_tankoiltemp = min_tankoiltemp
WHERE numcycle = actual_cycle
Thank you!
The following query should work:
WITH selected as (
SELECT cycle_completa.numcycle AS actual_cycle,
min(cycle_completa.pump1pre) AS min_pump1pre,
min(cycle_completa.pump2pre) AS min_pump2pre,
min(cycle_completa.pump3pre) AS min_pump3pre,
min(cycle_completa.slidevel) AS min_slidevel,
min(cycle_completa.slidepos) AS min_slidepos,
min(cycle_completa.slideforce) AS min_slideforce,
min(cycle_completa.slideservopilotpre) AS min_slideservopilotpre,
min(cycle_completa.slidecentralpre) AS min_slidecentralpre,
min(cycle_completa.slidelateralpre) AS min_slidelateralpre,
min(cycle_completa.slideringpre) AS min_slideringpre,
min(cycle_completa.slidepistonpre) AS min_slidepistonpre,
min(cycle_completa.slidey42pre) AS min_slidey42pre,
min(cycle_completa.cushionforce) AS min_cushionforce,
min(cycle_completa.cushionservopilotpre) AS min_cushionservopilotpre,
min(cycle_completa.cushionpistonpre) AS min_cushionpistonpre,
min(cycle_completa.cushionringpre) AS min_cushionringpre,
min(cycle_completa.pfillaccumpre) AS min_pfillaccumpre,
min(cycle_completa.pfillcentralpre) AS min_pfillcentralpre,
min(cycle_completa.pfilllateralpre) AS min_pfilllateralpre,
min(cycle_completa.pfillunlockingpre) AS min_pfillunlockingpre,
min(cycle_completa.reducedauxpumppre) AS min_reducedauxpumppre,
min(cycle_completa.tankoiltemp) AS min_tankoiltemp
FROM cycle_completa
WHERE slidestage = 17
GROUP BY cycle_completa.numcycle
)
UPDATE cycle_parametros cp
SET cp.seg3_min_valor_fmant_pump1pre = s.min_pump1pre,
cp.seg3_min_valor_fmant_pump2pre = s.min_pump2pre,
cp.seg3_min_valor_fmant_pump3pre = s.min_pump3pre,
cp.seg3_min_valor_fmant_slidevel = s.min_slidevel,
cp.seg3_min_valor_fmant_slidepos = s.min_slidepos,
cp.seg3_min_valor_fmant_slideforce = s.min_slideforce,
cp.seg3_min_valor_fmant_slideservopilotpre = s.min_slideservopilotpre,
cp.seg3_min_valor_fmant_slidecentralpre = s.min_slidecentralpre,
cp.seg3_min_valor_fmant_slidelateralpre = s.min_slidelateralpre,
cp.seg3_min_valor_fmant_slideringpre = s.min_slideringpre,
cp.seg3_min_valor_fmant_slidepistonpre = s.min_slidepistonpre,
cp.seg3_min_valor_fmant_slidey42pre = s.min_slidey42pre,
cp.seg3_min_valor_fmant_cushionforce = s.min_cushionforce,
cp.seg3_min_valor_fmant_cushionservopilotpre = s.min_cushionservopilotpre,
cp.seg3_min_valor_fmant_cushionpistonpre = s.min_cushionpistonpre,
cp.seg3_min_valor_fmant_cushionringpre = s.min_cushionringpre,
cp.seg3_min_valor_fmant_pfillaccumpre = s.min_pfillaccumpre,
cp.seg3_min_valor_fmant_pfillcentralpre = s.min_pfillcentralpre,
cp.seg3_min_valor_fmant_pfilllateralpre = s.min_pfilllateralpre,
cp.seg3_min_valor_fmant_pfillunlockingpre = s.min_pfillunlockingpre,
cp.seg3_min_valor_fmant_reducedauxpumppre = s.min_reducedauxpumppre,
cp.seg3_min_valor_fmant_tankoiltemp = s.min_tankoiltemp
FROM selected AS s
WHERE cp.numcycle = s.actual_cycle
Dears
I am using kannel 1.5.0 gateway with smpp on RHEL6 and when I receive an sms I get these errors:
2016-01-28 13:28:07 [8613] [6] WARNING: Could not convert GSM (0xd4) to Unicode.
2016-01-28 13:28:07 [8613] [6] WARNING: Could not convert GSM (0xf2) to Unicode.
.....
and I receive the messages incorrectly to my application, here is the request captured:
http://127.0.0.1:9091/services/smsReceive?msisdn=%2B353872849216&coding=0&smsText=%C3%85%3CH%C3%B9a%C3%91%C3%B9%25evM%C3%B9)zX%C3%ACp&DCS=-1&charset=UTF-8'
and this is my kannel configuration:
group = core
admin-port = 13001
smsbox-port = 13002
admin-password = bar
log-file = "/home/user/logs/kannellogs/SmscGateway.log"
log-level = 0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1;172.*.*.*;192.*.*.*;10.*.*.*"
admin-allow-ip = "127.0.0.1;172.*.*.*;192.*.*.*;10.*.*.*"
admin-deny-ip = "*.*.*.*"
access-log = "/home/user/logs/kannellogs/access.log"
# SMSBOX SETUP
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
log-file="/home/user/logs/kannellogs/smsbox.log"
log-level = 0
access-log="/home/user/logs/kannellogs/sms_access.log"
reply-couldnotfetch = "Service is down, please try again later.(notfetch)"
reply-couldnotrepresent = "Service is down, please try again later.(notrepresent)"
reply-requestfailed = "Service is down, please try again later.(failed)"
reply-emptymessage = ""
mo-recode = true
# SEND-SMS USERS
group = sendsms-user
username=test
password=test
user-allow-ip = "*.*.*.*"
concatenation = true
split-chars = "#!^&*("
max-messages = 10
# SMPP PARAMETERS for SMSC account
group = smsc
smsc = smpp
smsc-id =Smsc12345
smsc-username = Voda
smsc-password = 12345678
host = 123.222.111.11
port = 1040
system-type = Vodafone403
interface-version = 34
source-addr-autodetect = false
source-addr-ton = 0
source-addr-npi = 1
dest-addr-ton = 1
dest-addr-npi = 1
reconnect-delay = false
reconnect-delay = 10
transceiver-mode = true
throughput = 10
address-range = "^12345$"
max-pending-submits = 3
group = sms-service
accepted-smsc = "Smsc12345"
keyword = default
get-url = "http://127.0.0.1:9091/services/smsReceive?msisdn=%p&coding=%c&smsText=%a&DCS=%m&charset=%C"
catch-all=true
max-messages = 0
I am new to kannel please help if i am doing anything wrong
You should check Kannel docs;
for a "normal" message, it will be "GSM" (coding=0), "binary" (coding=1) or "UTF-16BE" (coding=2)
What I see in url is that
&coding=0
what should be:
&coding=2
and also take care that it is url encoded correctly and about length of unicode message (if you are using aggregators not all support concatenation and long messages)
Hope it helps.
Vedran