CompactRIO Variable and IO Naming Channel Order Bug

Hi all,
I have found a bug related to named IO's and the illogical way of accessing them using fast array based methods. It creates a lot of work-around hackery & trickery to mitigate. Fixing this bug would be most appreciated from a code saneness and maintenance perspective.
Deployment looks like this(observe the scaling indicated in the name):
Running the code (with beforehand mentioned scaling) yields:'
This is a bit too strange for engineers used to the normal workings for example in the world class top notch implementation DAQmx of array based IO access.
Attached is the project source.
Br,
/Roger
Solved!
Go to Solution.
Attachments:
LV2011 Deployment Bugs.zip ‏14 KB

Craig_ wrote:
Hi Roger,
Thanks for the information. The Children[] output is always listing channels alphabetically no matter what the ordering is in the project so this confirms what you are seeing. I am currently looking into if this is expected behaviour and if not I will be filing a CAR on the topic.
You initially compared this to DAQmx, do you have a convenient comparison point from it?
DAQmx is a top notch daq abstraction driver framework.
I seldom get any "surprises" of obfuscated oddness there.
Not sure if that would be a good point of reference, though. 
However, merging the good networkeability and simplicity of shared variables with the power of DAQmx would for sure be fantastic. For example with device specific default DAQmx FPGA personalities with most common funtionality in terms of calibration, fifo's, scaling, trig, etc.. that is common to DAQmx.

Similar Messages

  • Problem regarding Same Sender interface and Diff receiver channels

    Hi Friends,
    i am usina IDOC-File Scenario. I have 9 different target strctures for which same idoc type has to be mapped.
    the problem came when same business system and with one interface XI doesnt allow to create multiple receiver determinations.
    i have 9 communication channels for 9 diff structures which belong to same business system(Target) as i am using variable substitution for naming.
    How Could i over come this problem of defining several communication channels in one receiver determination..or any other alternate sollution kindly suggest please

    Later part of 9 interfaces in one interface determination has been done already..
    But while specifying receiver determination we need to enter the receiver agreement rite? out of these 9 recvr agreements what needs to be filled in there?

  • [svn:fx-trunk] 8474: * Fixed the AST generation code path of Vector typed variables and

    Revision: 8474
    Author:   [email protected]
    Date:     2009-07-09 07:20:32 -0700 (Thu, 09 Jul 2009)
    Log Message:
    Fixed the AST generation code path of Vector typed variables and
      properties with Bindable.
    tests Passed: checkintests
    Needs QA: YES
    Needs DOC: NO
    Bug fixes: SDK-21587
    API Change: NO
    Reviewer: Peter D.
    Code-level description of changes:
       AbstractSyntaxTreeUtil.java
         Modified generateParameter(*) to use generateTypeExpression().
       binding/BindableSecondPassEvaluator.java
         Modified generateGetter() to use AbstractSyntaxTreeUtil.generateTypeExpression().
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-21587
    Modified Paths:
        flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java
        flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEva luator.java

    I got again a total system freeze today when I wanted to launch firefox using only the openbox menu, without wbar running.
    So I decided to try now the 'nouveau.noaccel=1' kernel command line parameter, and to use again wbar for my frequently used applis.
    In the Xorg log, the differences are:
    without 'nouveau.noaccel=1'
    [ 30.761] (II) UnloadModule: "nv"
    [ 30.761] (II) Unloading nv
    [ 30.761] (--) Depth 24 pixmap format is 32 bpp
    [ 30.762] (II) NOUVEAU(0): Opened GPU channel 0
    [ 30.765] (II) NOUVEAU(0): [DRI2] Setup complete
    [ 30.765] (II) NOUVEAU(0): [DRI2] DRI driver: nouveau
    [ 30.765] (II) NOUVEAU(0): [DRI2] VDPAU driver: nouveau
    [ 30.776] (II) EXA(0): Driver allocated offscreen pixmaps
    [ 30.777] (II) EXA(0): Driver registered support for the following operations:
    [ 30.777] (II) Solid
    [ 30.777] (II) Copy
    [ 30.777] (II) Composite (RENDER acceleration)
    [ 30.777] (II) UploadToScreen
    [ 30.777] (II) DownloadFromScreen
    [ 30.777] (==) NOUVEAU(0): Backing store disabled
    [ 30.777] (==) NOUVEAU(0): Silken mouse enabled
    with 'nouveau.noaccel=1'
    [ 1191.621] (II) UnloadModule: "nv"
    [ 1191.621] (II) Unloading nv
    [ 1191.621] (--) Depth 24 pixmap format is 32 bpp
    [ 1191.621] (EE) NOUVEAU(0): Error creating GPU channel: -19
    [ 1191.621] (EE) NOUVEAU(0): Error initialising acceleration. Falling back to NoAccel
    [ 1191.621] (==) NOUVEAU(0): Backing store disabled
    [ 1191.621] (==) NOUVEAU(0): Silken mouse enabled
    [ 1191.621] (==) NOUVEAU(0): DPMS enabled
    So now 3D acceleration is disabled.
    I will see now if the system is stable enough for my daily usage and gives satisfactory performances.
    I am almost sure that the mesa nouveau dri driver is the cause of the freezes.
    Last edited by berbae (2013-03-27 10:07:42)

  • What is the difference between variable and Define

    WHAT IS THE DIFFERENCE BETWEEN
    these different declarations when it is done using the keyword "variable" and "define"
    and both of these are done OUTSIDE "DECLARE"
    VARIABLE g_monthly_sal NUMBER
    DEFINE p_annual_sal =5000
    -- I understand that p_annual_sal will be taken as a CHAR.
    -- ALSO IF DEFINE variable acts as macro variable, SO is it necessary to give it some value whenever we define it.
    if not what value would be substituted for it?
    OR does that mean whenever we want to specify data type for a bind varible we should use VARIABLE and
    when we do not want to specify type we use DEFINE?
    THANK YOU
    Edited by: user6287828 on Feb 24, 2009 11:03 AM
    Edited by: user6287828 on Feb 24, 2009 11:04 AM

    Both are SQL*plus commands. In a real programming environment you will not use such constructs (except a few rare scripting cases).
    The difference is how the construct is later used. DEFINE is more like a copy&paste string. Whereever the name of this substitution variable is found it will be pasted into the sql*plus session.
    VARIABLE creates a real variable. You can change the value and if follwos the usual principles of variables (including binding).
    Example can be found the docs:
    from the docs
    Where and How to Use Substitution Variables
    You can use substitution variables anywhere in SQL and SQL*Plus commands, except as the first word entered. When SQL*Plus encounters an undefined substitution variable in a command, SQL*Plus prompts you for the value.
    You can enter any string at the prompt, even one containing blanks and punctuation. If the SQL command containing the reference should have quote marks around the variable and you do not include them there, the user must include the quotes when prompted.
    SQL*Plus reads your response from the keyboard, even if you have redirected terminal input or output to a file. If a terminal is not available (if, for example, you run the script in batch mode), SQL*Plus uses the redirected file.
    After you enter a value at the prompt, SQL*Plus lists the line containing the substitution variable twice: once before substituting the value you enter and once after substitution. You can suppress this listing by setting the SET command variable VERIFY to OFF.
    Using Bind Variables
    Bind variables are variables you create in SQL*Plus and then reference in PL/SQL or SQL. If you create a bind variable in SQL*Plus, you can use the variable as you would a declared variable in your PL/SQL subprogram and then access the variable from SQL*Plus. You can use bind variables for such things as storing return codes or debugging your PL/SQL subprograms.
    Because bind variables are recognized by SQL*Plus, you can display their values in SQL*Plus or reference them in PL/SQL subprograms that you run in SQL*Plus.
    Creating Bind Variables
    You create bind variables in SQL*Plus with the VARIABLE command. For example
    VARIABLE ret_val NUMBER
    This command creates a bind variable named ret_val with a datatype of NUMBER. See the VARIABLE command for more information. (To list all bind variables created in a session, type VARIABLE without any arguments.)
    Referencing Bind Variables
    You reference bind variables in PL/SQL by typing a colon (:) followed immediately by the name of the variable. For example
    :ret_val := 1;
    To change this bind variable in SQL*Plus, you must enter a PL/SQL block. For example:
    BEGIN
    :ret_val:=4;
    END;
    /

  • Bind Variables and Shared Component Report Query

    I have a query in a region report which I have replicated to a shared component report query.
    Both queries reference page items as bind variables in the where clause.
    The report region on screen shows the correct results but the report query shows "no data". This is the case when running "Test Query" and "Download XML data" from the shared component report query definition. If I hardcode the variable names I get rows returned, If I use bind variables - and specify the values for these variables I get no data. THe XML file contains the tags for each bind variable I have specified but has no data between the tags. I have Ticked the box to include application and session state but it appears that the bind variables are not being used.
    When I use my report query in the application (URL tied to a button) I get the same problem, the binds are not being passed to the report query.
    Can someone please clarify if this is a bug or not? And if not, how can I get it to work.
    I am using Apex 4.0.2
    Thanks
    Kathryn

    Hi
    To confirm, yes I selected the bind variables. I used these in the report layout, but the xml file has them as empty i.e.
    <P0_START_DATE><P0_START_DATE/> with nothing in between.
    IN the Test Query section, if I put real values in the boxes for the bind variables, I get no data found. If I hardcode the values into the query, I get the data.
    I've repeated the create report query many times and have created a report layout in RTF. I can use the layout with my region - in the print attributes and the layout works with the query but I need to create a PDF using 2 queries - ROWSET1 and ROWSET2. I can generate the XML but the values in the rows are all empty. When I use the layout with a report query instead of the region, I get no data even though I have used the same sql and have selected the bind variables. I was using variables from page items on page zero but have also tried using page items on the current page, the result is the same.
    I need to use a report query and a report layout as I need data from 2 queries in the PDF.
    I looked at your demo - what happens if you add a second sql query to the report query - is there any chance I can look at the back end (developer access?)
    Thanks for your input
    Kathryn

  • Using Shared Variables and Initialize Front Panel Binding (to PSP)

    Hi,
    I use LV DSC RT 8.2.1
    I have a Vacuum System That includes signals from - Pumps failure, Valves status, Vacuum gauge, start Pump ...
    Each signal is read by a FieldPoint. 
    All the relevant FieldPoint Channels are read by the Server (a computer in the Ethernet Network) and published to the network in the form of Shared Variables.
    I have a client VI that is reading the Shared Variables published by the Server using Front Panel Binding.
    Problem : 
    Some of the Bindings are in the mode 'Write &Read' and that causes some initialization problems.
    For example - Valve #1 is Open, and then a User start running the Client VI, (the Valve #1 Status mode is 'Write & Read")
                           if in the VI the status of Valve #1 is closed (before running it) then the Valve status is changing to Closed.
    I want the Client VI to first read the Physical status of the instrument and then to change the Value if the User changes it.
    But that's seems to be a problem when using Front Panel Binding... (is it?)
    I know I can Deploy a lvlib in the Client Side and Item Bind to the Shared Variables or Use DataSocket.
    (Is DataSocket is a Reliable method when connecting to Shared Variables? What are the disadvantages when using DataSocket?) 
    What is recommended by those of you that are experienced or by NI ?
    Sincerely Yours,
    Amitai Abramson.

    Amitai Abramson,
    Hello and thanks for using the NI Forums.
    I'm glad that you've read the Using the LabVIEW Shared Variable Tutorial on our website. Check out these other resources:
    Network Variable Technical Overview
    Troubleshooting Network-Published Shared Variables
    Why Do I See Unexpected Value Change Events for Shared Variables Using LabVIEW DSC?
    All You Need to Know About Shared Variables
    Creating a Value Change Event for Shared Variables
    Alternative Method for Using Shared Variables Between Systems in LabVIEW 8.x
    What Is The Difference Between Using Shared Variables And DataSocket VIs To Access OPC Tags?
    The issue that you are seeing by having "Write & Read" bound items on both the server and client side is essentially a race condition, you don't know which one is being read/written at what time. To resolve this issue I would take a look at some of the documents below.
    Using a Local, Global, or Shared Variable in Parallel Loops Can Cause Race Conditions
    Using Local and Global Variables Carefully
    Tutorial: Local Variable, Global Variable, and Race Conditions
    Locking a Shared Resource or Variable in LabVIEW Using Semaphores
    You mentioned not wanting to have two sets of shared variables (one on each side), but this is a great method to resovle this issue, that, or you can develope some sort of hand shaking to prevent these race conditions.
    I would suggest that in the future when using these forums you try to ask only one question per thread and make it more concise. It's hard to tackle multiple questions and such broad questions as "I want to know all the ways that I can connect to Shared Variables, and I want to know the advantages and disadvantages." I suggest this because we want you to get your questions answered and more concise questions will result in quicker and better answers. 
    Message Edited by Ben S on 10-01-2009 06:05 PM
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

  • ITunes 10.6.3 keeps generating incomplete downloads AND it rearranges the order of the playlist when I burn a playlist to an mp3 cd

    iTunes 10.6.3 keeps generating incomplete downloads AND it rearranges the order of the playlist when I burn a playlist to an mp3 cd.
    I purchased an album on iTues from my MAC book Pro & the song downloads were incomplete. The song length shows correctly in the column, but they cut off between 1/4 & 1/2 way through the songs. Now, I dwonloaded it on my iPhone 4 through my itunes account after the purchase & the songs play fine. This happened with the very next song I purchased, as well.
    I got around this issue, then created mp3 versions of all the songs, put them in their own playlist, then "Burned an mp3 disc." When it completed, the songs were in a different order.
    Are there any fixes for either of these problems/bugs?

    iTunes: How to set the play order of songs on an MP3 CD - http://support.apple.com/kb/HT2455

  • Chnfind unable to find the decimal type by variable and sometimes "Round" command

    Dear all,
    During the work with Diadem I got two troubles. Could you please take a look and show me the wrong if you find the issue?
    1.) Here is my trouble as we see the photo below. It is most important problem which I have. I really have no idea why it could happened. It is alway happened to find a value with decimal type's variable, and even that variable is changed  to "str()".
    setlocale("en-gb")
    dim Min_point,Index_low,result
    Min_point=val(Data.Root.ChannelGroups(1).Channels("CopyYangle").Properties("minimum").Value)
    Min_point=round(Min_point,6)
    Min_point=str(Min_point)
    msgbox("The Min.Value is: "&Min_point)
    Index_low=Chnfind("ch(""CopyYangle"")<="&Min_point&"", 1)
    msgbox("Index No. of Min. Value is: "&Index_low)
    Index_low=Chnfind("ch(""CopyYangle"")<=-0.11374 ", 1)
    msgbox("Index No. of Min. Value is: "&Index_low)
    2.) Still the problem with ChnFind()  or  ChnFindreverse().   If I change the Rounds off a number to the nearest integer with the function "Round()" it might not work in ChnFindreverse(). Such like it works under 4, 6, 8 and even 7 but doesn't work with 3 and 5. Is this logical?
    setlocale("en-gb")
    Dim XE, Xchannel, Ychannel,round_N0
    Xchannel = "[2]/Right"
    T1 = Xchannel
    R1 =val(Data.Root.ChannelGroups(2).Channels("Right").Properties("maximum").Value)
    round_N0=4 ' <========= 3 and 5 Not work, 4, 6, 7, 8 .... work
    R1 =round(R1,round_N0) ' <=========
    msgbox("Max. point is: " &R1 &VbCrlf& "Round Nr is: "&round_N0)
    L1 = ChnFindReverse ("Ch(T1)>=R1",0)
    msgbox("Index number for Max.Point is: "&L1 &VbCrlf& "Round Nr is: "&round_N0)
     .tdx is a valid extensions for an attachement?
    If you couldn't open the TMD file. Please remove ".tdv" the attacments file name to make sure it is "ChnFind.tdx" but not "ChnFind.tdx.tdv".
    Kind regards / Mit freundlichen Grüßen
    J.Huang
    Attachments:
    ChnFind.TDM ‏5 KB
    ChnFind.tdx.tdv ‏39 KB

    Hello J.Huang,
    I downloaded the files and was able to get it to work. It looks like when you format the minimum value to a string, you loose precision and then ChnFind doesn't find the value your are looking for. He is an example which worked for me :
    Set oChnY = Data.Root.ChannelGroups(2).Channels("Right")
    sgValue = str(oChnY.Properties("minimum").Value,"d.ddddddddddddddd")
    Index = ChnFindReverse("Y<="&sgValue,,Array("Y"),Array(oChnY))
    LogFileWrite(Index)
     Using symbols (parameters 3 and 4) is not necessary to get the solution. The key is teh second value for "str" which formats using more digits. As soon as you reduce the number of digits, you may no longer get a result.
    Ther is an alternative to ChnFind, in case there is only one occurance in teh signal which has the minimum value
    Set oChnY = Data.Root.ChannelGroups(2).Channels("Right")
    Index = PNo(oChnY,oChnY.Properties("minimum").Value)
    LogFileWrite(Index)
     I hope one of the two options works for you. I tested the approach with teh first channel too and it worked as well

  • Error -200452 depends on channel order

    LV 2010, NI-DAQ 9.2.2, Win Vista, cDAQ 9172 chassis, NI-9211, NI-9219.
    My client has the same issue with LV 8.6.1, NI-DAQ 9.1.5, Win XP, same hardware.
    I am getting an error -200452 (Property not applicable) in a case where I don't understand why.
    I'm assigning the user's channels to tasks in preparation for DAQ.
    Chan A:  is Device 1, module 1 (NI-9211), channel 1, in TC mode
    Chan B is Device 1, module 6( NI-9219), channel 1, in RTD mode.
    Since these are on the same DEVICE, they are being assigned to the same TASK.
    I am using the property ADC TIMING MODE to get rid of 60 Hz powerline variations in the signal (even sampling at a multiple of 60 Hz doesn't reject it as well as this property does.
    The error occurs at the PROPERTY NODE function.
    The thing is, if I assign chan A to the task -->BEFORE<--- channel B, then the error occurs.
    If I assign chan B --> BEFORE<-- chan A, the error does NOT occur, and all seems well.
    I have never imposed any restrictions on my client about having to configure things in a certain order, I don't want to start now.
    Why is the order being imposed on me?
    The error:
    The TC code on 9211:
    The RTD code on 9219:
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

    I think the problem stems from the fact that the 9211 does not support the ADC timing property
    --- I just found that out when I added the property to the 9211 case, thinking that it was the CHANGE in property value that was triggering the complaint.
    and when you are using that property you are assigning it to all of the channels in the task.
    --- I'm not sure I understand that.  If I use the property when the task contains A, then B, I get the error.
    If I use the property when the task contains B (9219), and then add channel A (9211), I get no error.
    Perhaps a clearer way to state it would be:
    when you are using that property you are assigning it to all of the channels ALREADY CONFIGURED in the task.
    If THAT is the rule, then that would explain it.  If A(9211) is ALREADY in the task when I use the property, then it's trying to apply the property to all channels already in the task, and failing.  If B(9219) is the ONLY one in the task, then the property is legal.  Adding the 9211 later does NOT try to apply the property to it.
    Does that sound right?
    Why don't you trying using the 'ActiveChans' property node to specify what channel you need:
    --- I was hoping to be done with each channel as I process it.  (I am processing a list of channels that the user has specified, in no particular order, and I have to configure NI-DAQ from that list).
    I suppose I can add each non 9211 channel to a list, and then use the ACTIVE CHANS along with ADC TIMING MODE to specify.
    Or maybe I can use the ACTIVE CHANS list AS I APPLY IT.  That would mean several calls to the TIMING MODE property, one for each non-9211 channel.
    What's confusing me is the statement "You must use the same ADC timing mode for all channels on a device" from the HELP for ADC TIMING MODE.
    If one of those channels is a 9211 and another is not, then that statement is obviously not true.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • If I get a user to enter their name as a variable and I am linking one movie to another using a button, is there a way to carry the user name forward into the second movie?

    If I get a user to enter their name as a variable and I am linking one movie to another using a button, is there a way to carry the user name forward into the second movie?

    Hi there
    See if the link below helps
    Click here
    Cheers... Rick
    Helpful and Handy Links
    Captivate Wish Form/Bug Reporting Form
    Adobe Certified Captivate Training
    SorcerStone Blog
    Captivate eBooks

  • Object, variable, function, listener naming in multiple frames

    Hi,
    I am building, block by block a project that will have about 350 frames. There are similarities and differences between frames that would allow copying and pasting large blocks of frames to create new blocks. Navigation would be within blocks. After completing a block, there would be a need to go to the next block.
    In the first several frames that I've set up, (a frame 1, frame 2 and 9 additional frames representing a small version of a block, I've noticed that a dynamic text box, button, variables seem to need unique names for each key frame (they're all key frames). If I accidently duplicate a frame, and fail to rename (instance names) items, functions I get debug errors: identifying duplicate items. So it appears that each frame (in what will be 350) will need the script edited and changing names for any of these items.
    That's the question: assuming that I will need to stay with my 350 frame design, are there any possble economies of naming that I can use? The discreet blocks are (in number of frames) 16, 16, 70, 70, 70, 70 (plus a landing frame before each block, and a few frames at the end, after the last block for scores, results, discussion.
    Any suggestions appreciated.
    Regards,

    If you need to repeat code in different frames, then you need to come up with unique names for variables and functions.  How you go about naming tthem is your call, whatever makes sense to your way of thinking.
    One thing to consider though... if you think you need to create the same functions in different frames, there is agood possibility that you do not have to.  You can usually work out some way of having the same single set of functions and variables working for you along the entire timeline, only needing to define them once in frame 1.  In your other posting today you saw that extending the variable along the timeline makes it available for that whole extent.  The same applies to functions, and you can often write functions generically so that they can serve the same purpose at different locations along the timeline.
    Instance names won't be a problem except if you have the same objects in adjacent frames and try to change the names between them.  Instance names are inherited by same objects in preceding adjacent frames.

  • Make list of names in local variable list appear in alphabetical order?

    When you select a variable name from the drop down list of a local variable the list appears to be in chronological order. Is there any to make this list appear in alphabetical order?
    George

    Hi George:
    You said that local variables list appears in chronological order, but you wanted to appear in alphabetic order.
    You just need to set apropiate names and then use SetTabbingOrder
    You can use SetTabbingOrder to order all controls and indicators of your front panel, treating every control you see in the block diagram as one
    (A cluster is one of the controls you can order, but the elements inside the cluster must be ordered with ReorderControlsInCluster right-clicking the cluster)
    Returning. To SetTabbingOrder you have to click on VI's EDIT menu and select Set Tabbing Order.
    The front panel will turn it's color to somethin darker, and every control will be shown with a number.
    That number is it's tabbing index.
    At the beginning you see a 0 in the top, that means that if you click in a control, that control will become number 0, and then the number it the top will pass to be 1, so you can select the next control in order.
    If your first 23 elements are ordered, you don't need to click all 23, you can just set the top number to 23 and continue ordering.
    When you reorder an element, all elements before that remain the same, and the rest are added by one.
    When you are don, click on OK, or discard changes with x
    This SetTabbingOrder you can do with elements in your front panel, can be done with elements into a cluster and elements into a Tab Control. Only change de name (in clusters is "Reorder controls in cluster" and in Tabs is "Reorder controls in page"), but they work the same
    You might be interested in reordering in groups than reordering alphabetically?
    Hope it helps,
    Aitortxo.

  • The odd tale of Quickmask and the alpha channel

    I'm posting this in hope rather than expectation - as I keep requesting this is fixed, but I seem to be a lone voice.
    I understand that this code was written back in the 90's - and I get the impression (from a senior Photoshop engineer no less) that no one really understands it...
    The odd tale of Quickmask and the alpha channel
    Try this:
    With Quickmask set to it's defaults (double click the quickmask icon and ensure it's set to 'colour indicates : masked areas'), paint in black to create a 'red' quickmask area. Hit Q to return to the selection border. You should see two selection borders - one at the edge of the image defining the outer edge of the selected area, and one defining the inner edge of the masked area that you painted.
    Now hit the 'save selection as channel' button at the bottom of the channel palette to create an alpha channel.Everything's as expected - the alpha is black ('unselected') where you painted.
    Now repeat the process, but with the Quickmask mode set to 'colour indicates : selected areas'.
    In this case where you paint in QM mode should be selected. Paint a patch and hit the Q key - it is. You have a single selected area. Now hit the 'save selection as channel' button at the bottom of the channel palette to create another alpha channel.
    This time the alpha is incorrect - it's the inverse of what it should be.
    And it gets worse:
    Ctrl / Cmd click on the alpha thumbnail to load the alpha as a selection -
    notice that it even loads the black area as a selection.
    It's been like this as long as I can remember... and I really wish it was fixed.
    I'm a Photoshop ACI. QM is a tool I'd like to get my students to use more, but this behaviour makes it 'difficult' to teach Quickmask to users, particularly in conjunction with alpha channels. In my experience it seems that most users find it more natural to 'paint on' a selection, rather than than 'paint off' a mask.
    So most users would prefer to set 'colour indicates : selected areas'
    I've been around long enough to know the rubylith heritage upon which Quickmask is modelled, however I now think it's time that baggage was left behind. I wonder what proportion of current Photoshop users even know what rubylith was?
    There are two points here:
    1. There should be NO connection between the QM paint state and the subsequent creation (or loading) of an alpha channel.
    Whether you choose to label it  a feature or a bug, it's clearly wrong to toggle out of QM mode, see a selection on screen, make an alpha channel - and find your alpha is reversed.
    And in addition to that - it's a 'freak' alpha that subsequently loads reversed...
    2. I think it's time to drop the rubylith baggage and set the QM paint mode to a default of set 'colour indicates : selected areas'.

    Charles,
    Thanks to your replies I've now discovered another twist to this tale...
    When I'm saving a selection, I typically use the 'save selection as alpha' button in the channels panel. That shows the issue I'm referring to.
    However, I've just discovered - thanks to your comments - that if instead you use the 'Select > Save selection' menu command you get a 'correct' alpha.
    If you care to try that second example again you'll find you can get two different alpha's from the same selection - depending upon which saving option you choose!
    This is now getting so complex, I'll have to put a pdf together explaining it and send it to our fiends at Adobe.

  • Quotation Creation and Billing for Service Orders--node details needed

    Hi ,
    I need to work on node "Quotation Creation and Billing for Service Orders" ....I see lot of integration with SD and FICO . Can any one give details about integrations required and what is done in this node ....
    Regards
    NPB

    There are different steps to be done for that.
    1. Create DIP Profile in ODP1 & check the consistency in ODP2 - DIP will be used to bill the customer based on resource (labor & material) usage. Creation of DIP profile has been discussed many times in this forum. Please check.
    2. Assign the Quotation document type & Billing type used in DIP profile to your sales area - Your document type should be assigned to your sales organisation, distribution channel & division combination.

  • Channel Order from FP Get Configuration Info.vi

    Why does the get server list function of this VI return the Channels in alphabetical order instead of physical channel order 0,1,2...? The channels are also sorted in FieldPoint Explorer in this way.

    Looking at my FieldPoint data (8 temp sensor channels), the FP Advise (item name = all) is retrieving the data in channel order (0, 1, 2, ...), but the labels are returned by FP Get Configuration Info.vi in some version of alphabetical order (taN preceeds taBot, so it doesn't seem to be quite alphabetical.) Is the only way I can relate item labels to retrieved data is by creating a tag for each individually and FP Reading each individually?

Maybe you are looking for