Update parameters promoted to a mask inSimulink - matlab

So I am working on constructing a mask for a CAN unpack system. It's a basic mask with 2 promoted parameters and a browse button. The promoted parameters are the "CANdb" file field and the drop down menu, "MsgList", that follows it.
The basic mask it self works. I'm able to browse for a CAN ".dbc" file and its path is available in the promoted field, and even the drop down menu works where I'm able to select a message from those available in the ".dbc" file. But this is about all the functionality I'm getting.
My observation was that this problem is in 2 different parts. I'll try to explain them individually.
The first is with the "CANdb" promoted parameter. While on the outside it appears as though the parameter is changing (it changes in the mask), internally nothing changes: when i peak under the mask, there is no change on the values of the CANUnpack Block that i am using. Then CANUnpack block itself does update when I double click to open it. The new DBC and message list shows up but only on the block.
The second issue was with The list of messages, that is also promoted to the mask is also not updating. The list from the previous DBC file remains there, and does not change even if i run the simulation, update the model or refresh the block. When i close and reopen the model, it updates then.
These observations lead me to believe that i need to add some kind of code to update the mask, but i don not know what this code will be. I though that the issue may have to do with the fact that the value needs to propagate from the mask to the block and then updated all the parameters so maybe that prevents or hinders an update.
For this i then removed the promoted parameter for the DCB file and linked the browse button directly to the block parameter. The only difference this made is that the name of the new DBC file shows up on the CAN unpack block. Nothing else changes. Not even the messages of the "MsgList" till I double click to open the block. And as usual, the message list on the mask remains unchanged.
I am adding some images and the code for my browse button below to aid with trouble shooting. Thanks in advance.
pp = Simulink.Mask.get('NXP_CAN_Unpack/Subsystem/CANUnpack2');
p = pp.getParameter("CANdbFile");
[fName,pName] = uigetfile("*.dbc");
p.Value = [pName,fName] ;
Mask for system
Inside Mask
Block Parameters for CANUNpack

Related

Error handling in Sublime Text Plugin API

I'm creating my first sublime plugin to be used internally and was wondering if there's a way to stop the plugin from executing and display an error message on screen like an alert?
I took a look at view#show_popup() but this didn't render for me. Below is how I attempted to show it:
if "WebContent" in subdirectories:
directory = ROOT_DIR + "/WebContent"
elif "Content" in subdirectories:
directory = ROOT_DIR + "/Content"
else:
self.view.show_popup('Directory not found', location=-1)
Working Principle:
The plugin takes some data from one view and then pastes them in another view. The plugin has two TextCommands. One command takes the data from the first view, opens a new view and then executes the 2nd command on the new view. The above snippet is in the 2nd command.
I was unable to find any resources to help with show_popup() or any other error handling.
Does any one have possible ideas?
view.show_popup() is for showing things like hover popups next to the cursor; it's used for things like the built in functionality for going to references/definitions for functions:
While you could in theory use this for error messages, it may not be the sort of user experience that anyone would expect.
Your code above is technically valid, but since the content is expected to be minihtml it may be hard to see because as just a single string all you're going to see is just the text (i.e. you have no font style, padding, etc):
Perhaps more importantly, when location is -1, the popup appears at the point in the buffer closest to the first cursor position, so depending on your circumstance it may be appearing in a place you don't expect, and then vanishing away before you can scroll to see it, etc.
What you want here is sublime.error_message(); given a string, it will display that string in a dialog for the user to interact with, and it also logs the error into the Sublime console as well so that there's an additional trace.

Store pedestrian agents position in a txt

I'm new on AnyLogic, I'm a universitary student, I'm working in my title project and I still can't get to save the coordinates of my agents in time. I've been working with this tool for near 3 months and just started to seek for help.
I tried with traceln(getX and getY), propperly written, but it only shows me the entrance position, how could I create a function to store this information onto a txt file? Or how could I create a new agent type to apply the steps above described
Please your help
Here is a simple example to show you how to do this.
I have a custom pedestrian agent that gets created in the ped source block and a population, which starts of empty where all the pedestrians that gets created get added to.
This is just so that I can have the event to record the location inside the agent and the file object to write to is on main. So we need to access main from inside the agent.
In the file object, I just set it to write and selected a blank .txt file that I created.
You can read more about using the text file from the help - https://anylogic.help/anylogic/connectivity/text-file.html
Inside the pedestrian agent, I have an event that simply saves the location to the file in a new line.
I make use of the "\t" so that the txt file is tab-separated. You can use whatever separator you prefer.
You must remember to call the close command on the text file when you have finished writing to it. I simply called it on the destroy code of main. So it only "writes" the data to the text file when you close the model.
Here is the output from this very simple example
Calling getX() and getY() on agents does definitely give their current coordinates (assuming they are in a continuous space and not GIS/discrete space) so it's likely you're calling this on the wrong agents (e.g., calling it for your instance of Main instead of for some agents living in a population inside it).
Or you're not actually calling it at different simulation times (via, say, a cyclic event), so you're only getting the initial values.

Powershell IE automation how to pass flags to navigate method?

How can I pass flags to the InternetExplorer navigate method
Specifically, no cache or read or write to history
https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa768360%28v%3dvs.85%29
What Ive tried so far, but just basing this off the BrowserNavConstants enum. Im not sure how one would pass more than one flag, nor if this is even taking effect, as my script seems to be pulling a page from previous execution.
https://learn.microsoft.com/en-us/previous-versions/dd565688(v%3Dvs.85)
$brFlgs = 4
$ie.navigate("my-url-here",$brFlgs )

How can I create a Hierarchical block with GNURadio Companion?

I am trying to create a Hierarchical block using the GNURadio Companion GUI. Answers I've found in other posts say to select the blocks you want to incorporate, then go to More -> Create Hier. Then a new screen is supposed to appear. However, doing "Create Hier" with any combinations of blocks selected seems to do nothing.
Am I doing something wrong, or is there a problem with my GRC?
It's very simple. You just start with a new flow graph in GRC, and use Pad Sources as input, and Pad Sinks as output.
If you want to let the user configure something, use a Parameter GRC block.
You must set the Generate Options in the Options block to Hier Block, and set a sensible ID there, too – don't stick with top_block, but use something (without spaces or -; it needs to work as a python name) that won't conflict with something else.
Here's an example:
You can then Generate button (or press [F5]), and then, after you've done a rescan of your block library with the refresh button you can find (and use) your new block in the Block Category you specified.

Code Review - Clearcase - How to get a list of files a user modified since another label?

I'd like to create a dynamic view that only shows the files a user created/modified for a particular label.
Right now, I am listing all of the files in the label and comparing that with the previous label.
If I have to use cleartool to find the files, that is fine with me. I'd like the process to be more automated than it currently is.
Another option too is, can I simply see the diffs for a particular user? That way, I am more likely to understand the file's history. If a developer had attempted something one way and found that didn't work, it might be helpful to see that trial and error.
config spec:
#element * REL_2010.2.2.006
element * .../pgh_rel_4.0.0_dot_rel/{created_by(pp50773)&&lbtype(REL_2010.2.2.006)}
# first stop rule
element -directory * .../pgh_rel_4.0.0_dot_rel/{lbtype(REL_2010.2.2.006)}
# second stop rule
element -directory * main/LATEST
This config spec doesn't fetch my changes - It fetches empty directories. It is also important to note that while I made the changes to the actual file, another guy is responsible for applying the label weekly. So, if it goes by whose name is on the label, that won't work.
If I remove the created_by constraint, it works fine listing all of the changes for the label, but I want only files in that label for a given user.
Walter
According to the version selector rules, you can do that, but I would recommend:
2 dynamic views (easy to setup and refresh, since their content is not downloaded on your hard drive, but accessed through the network)
one one for one label
one for the other
to not forget to add stop rules for directories (if directories are not created by your user, they won't be selected, meaning your view won't be able to select any version within it.
The config spec for one of those view would be something like:
element * .../MyBranch/{created_by(myuser)&&lbtype(MY_LABEL)}
# first stop rule
element -directory * .../MyBranch/LATEST
# second stop rule
element -directory * main/LATEST
When you have two views correctly configured, you can compare their content with a tool like WinMerge.