Development of a circular

I am not sure where to best post my question, so I thought this would be a good place to start.
I would like to make an inactive circular- something like you would see Best Buy,Office Depot, etc use on their online website as their weekly ad (turns pages when you click in the top right corner,etc.).
Anyone have any suggestions on which software that they use to make them with or steps in creating one of these?
Thanks for any help.

Before narrowing your focus to the tool to create such a circular, you need to be a bit more specific about how you expect people will see it.
This kind of interactivity has typically been done with SWF files, created by Flash.  However, there are major accessibility issues with Flash. The current trend is toward HTML5/CSS3 animation (created by Adobe Edge) but not every browser supports that. So then you are left with javascript animations from frameworks like jQuery and Spry.

Similar Messages

  • GeoRaptor 3.0 for SQL Developer 3.0 and 2.1 has now been released

    Folks,
    I am pleased to announce that, after 5 months of development and testing, a new release of GeoRaptor for SQL Developer 2.1 and 3.0 is now available.
    GeoRaptor for SQL Developer 3 is available via the SQL Developer Update centre. GeoRaptor 3 for SQL Developer 2.1 is being made available
    via a download fro the GeoRaptor website.
    No release notes have been compiled as the principal developer (oops, that's me!) is currently busy doing real work for a change (another 3 weeks), earning a living
    and keeping the wolves at bay. More extensive notes (with images) will be compiled when I get back. (Unless anyone is offering! See next.)
    We are still looking for people to:
    1. Provide translations of the English dialog menus etc.
    2. Write more extensive user documentation. If you use a particular part of GeoRaptor a lot and think
    you have found out all its functionality and quirks, contact us and offer to write a few pages of
    documentation on it. (Open Office or Microsoft Word is fine.) Easiest way to do this is to simply
    make screen captures and annotate with text.
    3. Conduct beta testing.
    Here are the things that are in the new release.
    New functionality:
    Overhaul of Validation Functionality.
    1. User can specify own validation SELECT SQL as long as it returns three required columns. The SQL is thus totally editable.
    2. Validation update code now allows user to associate a PL/SQL function with an error number which is applied in the UPDATE SQL.
    3. UPDATE SQL can use WHERE clause of validation SELECT SQL (1) to update specific errors.
       NOTE: The generated UPDATE statement can be manually edited. It is NEVER run by GeoRaptor. To run any UPDATE, copy the statement
       to the clipboard and run in an appropriate SQL Worksheet session within SQL Developer.
    4. Main validation table allows:
       a. Sorting (click on column header) and
       b. Filtering.
       c. Copying to Clipboard via right mouse click sub menu of:
          - Geometry's SDO_ELEM_INFO array constructor.
          - SDO_GEOMETRY constructor
          - Error + validation string.
       d. Access to Draw/Zoom functions which were previously buttons.
       e. Added a new right mouse click menu "Show Feature's Individual Errors" that gathers up all the errors
          it can process - along with the ring / element that is host to the error (if it can) - and displays
          them in the Attribute/Geometry tabs at the bottom of the Map Window (where "Identify" places its results).
          The power of this will be evident to all those who have wanted a way of stepping through errors in a geometry.
       f. Selected rows can now be deleted (select rows: press <DELETE> key or right mouse click>Delete).
       g. Table now has only one primary key column, and has a separate error column holding the actual error code.
       h. Right mouse click men added to table menu to display description of error in the new column (drawn from Oracle documentation)
       i. Optimisations added to improve performance for large error lists.
    5. Functionality now has its own validation layer that is automatically added to the correct view.
       Access to layer properties via button on validation dialog or via normal right mouse click in view/layer tree.
    Improved Rendering Options.
    1. Linestring colour can now be random or drawn from column in database (as per Fill and Point colouring)
    2. Marking of SDO_GEOMETRY objects overhauled.
       - Ability to mark or LABEL vertices/points of all SDO_GEOMETRY types with coordinate identifier and
         option {X,Y} location. Access is via Labelling tab in layer>properties. Thus, coordinate 25 of a linestring
         could be shown as: <25> or {x,y} or <25> {x,y}
       - There is a nice "stacked" option where the coordinate {x,y} can be written one line below the id.
       - For linestrings and polygons the <id> {x,y} label can be oriented to the angle between the vectors or
         edges that come in, and go out of, a vertex. Access is via "Orient" tick box in Labelling tab.
       - Uses Tools>Preferences>GeoRaptor>Visualisation>SDO_ORDINATE_ARRAY bracket around x,y string.
    3. Start point of linestring/polygon and all other vertices can be marked with user selectable point marker
       rather than previously fixed markers.
    4. Can now set a NULL point marker by selecting "None" for point marker style pulldown menu.
    5. Positioning of the arrow for linestring/polygons has extra options:
       * NONE
       * START    - All segments of a line have the arrow positioned at the start
       * MIDDLE   - All segments of a line have the arrow positioning in the middle.
       * END      - All segments of a line have the arrow positioning in the END.
       * END_ONLY - Only the last segment has an arrow and at its end.
    ScaleBar.
    1. A new graphic ScaleBar option has been added for the map of each view.
       For geographic/geodetic SRIDs distances are currently shown in meters;
       For all SRIDs an attempt is made to "adapt" the scaleBar units depending
       on the zoom level. So, if you zoom right in you might get the distance shown
       as mm, and as you zoom out, cm/m/km as appropriate.
    2. As the scaleBar is drawn, a 1:<DEMONINATOR> style MapScale value is written
       to the map's right most status bar element.
    3. ScaleBar and MapScale can be turned off/on in View>Properties right mouse
       click menu.
    Export Capabilities.
    1. The ability to export a selection from a result set table (ie result of
       executing ad-hoc SQL SELECT statement to GML, KML, SHP/TAB (TAB file
       adds TAB file "wrapper" over SHP) has been added.
    2. Ability to export table/view/materialised view to GML, KML, SHP/TAB also
       added. If no attributes are selected when exporting to a SHP/TAB file, GeoRaptor
       automatically adds a field that holds a unique row number.
    3. When exporting to KML:
       * one can optionally export attributes.
       * Web sensitive characters < > & etc for KML export are replaced with &gt; &lt; &amp; etc.
       * If a column in the SELECTION or table/view/Mview equals "name" then its value is
         written to the KML tag <name> and not to the list of associated attributes.
         - Similarly for "description" -> <description> AND "styleUrl" -> <styleUrl>
    4. When exporting to GML one can optionally export attributes in FME or OGR "flavour".
    5. Exporting Measured SDO_GEOMETRY objects to SHP not supported until missing functionality
       in GeoTools is corrected (working with GeoTools community to fix).
    6. Writing PRJ and MapInfo CoordSys is done by pasting a string into appropriate export dialog box.
       Last value pasted is remembered between sessions which is useful for users who work with a single SRID.
    7. Export directory is remembered between sessions in case a user uses a standard export directory.
    8. Result sets containing MDSYS.SDO_POINT and/or MDSYS.VERTEX_TYPE can also be written to GML/KML/SHP/TAB.
       Example:
       SELECT a.geom.sdo_point as point
         FROM (SELECT sdo_geometry(2002,null,sdo_point_type(1,2,null),sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2)) as geom
                 FROM DUAL) a;
       SELECT mdsys.vertex_type(a.x,a.y,a.z,a.w,a.v5,a.v6,a.v7,a.v8,a.v9,a.v10,a.v11,a.id) as vertex
         FROM TABLE(mdsys.sdo_util.getVertices(mdsys.sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2)))) a;
    9. A dialog appears at the end of each export which details (eg total) what was exported when the exported recordset/table contains more
       than on shape type. For example, if you export only points eg 2001/3001 from a table that also contains multipoints eg 2005/3005 then
       the number of points exported, and multipoints skipped will be displayed.
    10. SHP/TAB export is "transactional". If you set the commit interval to 100 then only 100 records are held in memory before writing.
        However, this does not currently apply to the associated DBASE records.
    11. SHP/TAB export supports dBase III, dBase III + Memo, dBase IV and dBase IV + Memo.
        Note: Memo allows text columns > 255 characters to be exported. Non-Memo formats do not and any varchar2 columns will be truncated
        to 255 chars. Some GIS packages support MEMO eg Manifold GIS, some do not.
    12. Note. GeoRaptor does not ensure that the SRID of SDO_GEOMETRY data exported to KML is in the correct Google Projection.
        Please read the Oracle documentation on how to project your data is this is necessary. An example is:
        SELECT OBJECTID,
               CODIGO as name,
               NOME as description,
               MI_STYLE,
               SDO_CS.TRANSFORM(shape,'USE_SPHERICAL',4055) as shape
          FROM MUB.REGIONAL;
    13. NOTE: The SHP exporter uses the Java Topology Suite (JTS) to convert from SDO_GEOMETRY to the ESRI Shape format. JTS does not handle
        circular curves in SDO_GEOMETRY objects you must "stroke" them using sdo_util.arc_densify(). See the Oracle documentation on how
        to use this.
    Miscellaneous.
    1. Selection View - Measurement has been modified so that the final result only shows those geometry
       types that were actually measured.
    2. In Layer Properties the Miscellaneous tab has been removed because the only elements in it were the
       Geometry Output options which have now been replaced by the new GML/KML/etc export capabilities.
    3. Shapefile import's user entered tablename now checked for Oracle naming convention compliance.
    4. Identify based on SDO_NN has been removed from GeoRaptor given the myriad problems that it seems to create across versions
       and partitioned/non-partitioned tables. Instead SDO_WITHIN_DISTANCE is now used with the actual search distance (see circle
       in map display): everything within that distance is returned.
    5. Displaying/Not displaying embedded sdo_point in line/polygon (Jamie Keene), is now controlled by
       a preference.
    6. New View Menu options to switch all layers on/off
    7. Tools/Preferences/GeoRaptor layout has been improved.
    8. If Identify is called on a geometry a new right mouse click menu entry has been added called "Mark" which
       has two sub-menus called ID and ID(X,Y) that will add the labeling to the selected geometry independently of
       what the layer is set to being.
    9. Two new methods for rendering an SDO_GEOMETRY object in a table or SQL recordset have been added: a) Show geometry as ICON
       and b) Show geometry as THUMBNAIL. When the latter is chosen, the actual geometry is shown in an image _inside_ the row/column cell it occupies.
       In addition, the existing textual methods for visualisation: WKT, KML, GML etc have been collected together with ICON and THUMBNAIL in a new
       right mouse click menu.
    10. Tables/Views/MViews without spatial indexes can now be added to a Spatial View. To stop large tables from killing rendering, a new preference
        has been added "Table Count Limit" (default 1,000) which controls how many geometry records can be displayed. A table without a spatial
        index will have its layer name rendered in Italics and will write a warning message in red to the status bar for each redraw. Adding an index
        which the layer exists will be recognised by GeoRaptor during drawing and switch the layer across to normal rendering.
    Some Bug Fixes.
    * Error in manage metadata related to getting metadata across all schemas
    * Bug with no display of rowid in Identify results fixed;
    * Some fixes relating to where clause application in geometry validation.
    * Fixes bug with scrollbars on view/layer tree not working.
    * Problem with the spatial networks fixed. Actions for spatial networks can now only be done in the
      schema of the current user, as it could happen that a user opens the tree for another schema that
      has the same network as in the user's schema. Dropping a drops only the network of the current connected user.
    * Recordset "find sdo_geometry cell" code has been modified so that it now appears only if a suitable geometry object is
      in a recordset.  Please note that there is a bug in SQL Developer (2.1 and 3.0) that causes SQL Developer to not
      register a change in selection from a single cell to a whole row when one left clicks at the left-most "row number"
      column that is not part of the SELECT statements user columns, as a short cut to selecting a whole row.  It appears
      that this is a SQL Developer bug so nothing can be done about it until it is fixed. To select a whole row, select all
      cells in the row.
    * Copy to clipboard of SDO_GEOMETRY with M and Z values forgot has extraneous "," at the end.
    * Column based colouring of markers fixed
    * Bunch of performance improvements.
    * Plus (happily) others that I can't remember!If you find any bugs register a bug report at our website.
    If you want to help with testing, contact us at our website.
    My thanks for help in this release to:
    1. John O'Toole
    2. Holger Labe
    3. Sandro Costa
    4. Marco Giana
    5. Luc van Linden
    6. Pieter Minnaar
    7. Warwick Wilson
    8. Jody Garnett (GeoTools bug issues)
    Finally, when at the Washington User Conference I explained the willingness of the GeoRaptor Team to work
    for some sort of integration of our "product" with the new Spatial extension that has just been released in SQL
    Developer 3.0. Nothing much has come of that initial contact and I hope more will come of it.
    In the end, it is you, the real users who should and will decide the way forward. If you have ideas, wishes etc,
    please contact the GeoRaptor team via our SourceForge website, or start a "wishlist" thread on this forum
    expressing ideas for future functionality and integration opportunities.
    regards
    Simon
    Edited by: sgreener on Jun 12, 2011 2:15 PM

    Thank you for this.
    I have been messing around with this last few days, and i really love the feature to pinpoint the validation errors on map.
    I has always been so annoying to try pinpoint these errors using some other GIS software while doing your sql.
    I have stumbled to few bugs:
    1. In "Validate geometry column" dialog checking option "Use DimInfo" actually still uses value entered in tolerance text box.
    I found this because in my language settings , is the decimal operators
    2. In "Validate geometry column" dialog textboxs showing sql, doesn't always show everything from long lines of text (clipping text from right)
    3. In "Validate geometry column" dialog the "Create Update SQL" has few bugs:
    - if you have selected multiple rows from results and check the "Use Selected Geometries" the generated IN-clause in SQL with have same rowid (rowid for first selected result) for all entries
    Also the other generated IN clause in WHERE-clause is missing separator if you select more than one corrective function
    4. "Validate geometry column" dialog stays annoyingly top most when using "Create Update SQL" dialog

  • Concept of circular interpolation

    Hi,
    I'm interested in knowing the concepts / formulas / algorithms invovled in circular interpolation. Suppose I give the position where the I have to reach in a 2-D plane and the radius of the circular arc, then the controller feeds the X-axis drive with a sequence of position commands which follow a mathematical function and at the same time, the controller also feeds another set of position commands to Y-axis, which follow another mathematical function. Also the velocities of X-axis and Y-axis follow two seperate mathematical functions. The combination of all these mathematical functions executed simultanously results in an interpolation. This is my understanding of circular interpolation. I am interested in knowing these four functions for X position, Y-position, X-Velocity and Y-Velocity. Kindly help me out with this. Kindly let me know if my understanding of the concept is wrong and what may be right approach to this problem. I do not want to use the arc vi provided by NI as it takes 'start angle', 'travel angle' and 'radius', but I want to feed 'start position', 'final position' and 'radius' to achieve th arc.
    Regards,
    Giridhar Rajan
    Automation Engineer
    Cruiser Controls
    Mumbai, India

    Hello,
    The National Instruments supported method for generating a circular arc move is to use Load Circular Arc.flx.  However, it is perfectly possible to generate your own interpolation algorithm.  I would suggest that you take a look at the following link for a starting point in generating move data:
    Command Generation
    http://www.control.com/control_com/Papers/CommandGeneration_html
    This is a third-party interpolation algorithm, but it may be helpful in developing your own method.
    Regards,
    Scott R.
    Applications Engineer
    National Instruments

  • How to check circular reference in data of millions of rows

    Hi all,
    I am new as an oracle developer.
    I have a table(say table1) of hierarchical data with columns child_id and parent_id. The table has around 0.5 million records. There are around 0.2 million root level records are present.
    I need to update some (the number variies on different conditions, might differ from 50K to 0.4 million) of the parent_ids from other table only if that do not cause any circular reference in data of table1.
    I am using Oracle9i.
    The approach I have tried is:
    I copied all data from table1 to a work table table3. Update the parent_id on columns that matches the condition and updated a column source_table to table2.
    I copied all the child_id from table2 that are to be updated into another table table4 and built tree for each of those childs. If it builds the tree successfully updated a column is_circular in the table3 to 0 and then deleted the child_id from table4.
    This whole process needs to run recursively until no tree is built successfully in an iteration.
    But this process is running slow and at the rate it is executing it would run for days for the 0.3 million records.
    Please suggest a better way to do this.
    The code I am using is :
    INSERT /*+ append parallel (target,5) */
    INTO table3 target
    select /*+ parallel (src,5) */
    child_id, parent_id, 'table1' source_table,null
    from table1 src;
    INSERT INTO table4
    select distinct child_id, parent_id
    from table2
    where status_cd is null;
    commit;
    Update dtable3 a
    set (parent_id,source_table) = (select parent_id,'table2' source_table
    from table4 b
    where b.child_id = a.child_id);
    WHILE v_loop_limit<>v_new_count
    LOOP
    select count(1)
    into v_loop_limit
         from table4;
    -+-----------------------------------------------------------
    --| You need to actually traverse the tree in order to
    --| detect circular dependencies.
    +-----------------------------------------------------------           
    For i in 1 .. v_new_count
    BEGIN
    select child_id
    into v_child_id from(
    select child_id, row_number() over (order by child_id) pri from table4)
    where pri = i;
    SELECT COUNT (*) cnt
    INTO v_cnt
    FROM table3 dl
    START WITH dl.child_id = v_child_id
    CONNECT BY PRIOR dl.child_id = dl.parent_id ;
    UPDATE table3SET is_circular = '0'
    where child_id= v_child_id
    and source_table = 'table2';
    delete from table3
    where child_id = v_child_id;
    select count(1)
    into v_new_count
         from table4;
    COMMIT;
    EXCEPTION WHEN e_infinite_loop
    THEN dbms_output.put_line ('Loop detected!'||v_child_id);
    WHEN OTHERS THEN
         dbms_output.put_line ('Other Exceptions!');
    END;
    END LOOP;
    END LOOP;
    Thanks & Regards,
    Ruchira

    Hello,
    First off, if you're so new to a technology why do you brush off the first thing an experienced, recognized "guru" tells you? Take out that WHEN OTHERS ! It is a bug in your code, period.
    Secondly, here is some code to try. Notice that the result depends on what order you do the updates, that's why I run the same code twice but in ASCENDING or DESCENDING order. You can get a circular reference from a PAIR of updates, and whichever comes second is the "bad" one.drop table tab1;
    create table TAB1(PARENT_ID number, CHILD_ID number);
    create index I1 on TAB1(CHILD_ID);
    create index I2 on TAB1(PARENT_ID);
    drop table tab2;
    create table TAB2(PARENT_NEW number, CHILD_ID number);
    insert into TAB1 values (1,2);
    insert into TAB1 values (1,3);
    insert into tab1 values (2,4);
    insert into TAB1 values (3,5);
    commit;
    insert into TAB2 values(4,3);
    insert into TAB2 values(3,2);
    commit;
    begin
    for REC in (select * from TAB2 order by child_id ASC) LOOP
      merge into TAB1 O
      using (select rec.child_id child_id, rec.parent_new parent_new from dual) n
      on (O.CHILD_ID = N.CHILD_ID)
      when matched then update set PARENT_ID = PARENT_NEW
      where (select COUNT(*) from TAB1
        where PARENT_ID = n.CHILD_ID
        start with CHILD_ID = n.PARENT_NEW
        connect by CHILD_ID = prior PARENT_ID
        and prior PARENT_ID <> n.CHILD_ID) = 0;
    end LOOP;
    end;
    select distinct * from TAB1
    connect by PARENT_ID = prior CHILD_ID
    order by 1, 2;
    rollback;
    begin
    for REC in (select * from TAB2 order by child_id DESC) LOOP
      merge into TAB1 O
      using (select rec.child_id child_id, rec.parent_new parent_new from dual) n
      on (O.CHILD_ID = N.CHILD_ID)
      when matched then update set PARENT_ID = PARENT_NEW
      where (select COUNT(*) from TAB1
        where PARENT_ID = n.CHILD_ID
        start with CHILD_ID = n.PARENT_NEW
        connect by CHILD_ID = prior PARENT_ID
        and prior PARENT_ID <> n.CHILD_ID) = 0;
    end LOOP;
    end;
    select distinct * from TAB1
    connect by PARENT_ID = prior CHILD_ID
    order by 1, 2;One last thing, be sure and have indexes on child_id and parent_id in your main table!

  • Circular Linked List Help

    Hi,
    I'm developing a circular linked list class.. However everytime I add to the front of the list it overwrites the first element in the list.. I pretty confused at the moment. If anyone could assist me in what I'm doing wrong it would be greatly appreciated..
    My Class:
    public class CNode<T>
         public T nodeValue;          //data held by the node
         public CNode<T> next;     //next node in the list
         //default constructor; next references node itself
         public CNode()
              nodeValue = null;
              next = this;
         //constructor; initializes nodeValue to item
         //and sets the next to reference the node itself
         public CNode(T item)
              nodeValue = item;
              next = this;
    }My addFirst:
    public static <T> void addFirst(CNode<T> header, T item)
              CNode<T> curr;
              CNode<T> newNode = new CNode<T>(item);
              //header.next = newNode;
              //newNode.next = header;
              curr = header;
              newNode.next = header;
              curr.next = newNode;
         }

    You need a Node class and a class that manages the nodes. The class the manages the nodes is typically called something like MyLinkedList. The MyLinkedList class will typically have a member called 'head' or 'first' and another member called 'last', 'end', or 'tail'. Those members will contain references to the first node and the last node respectively.
    The methods like add(), remove(), find(), etc. will be members of the MyLinkedList class--not the Node class. The add() method of the MyLinkedList class will create a node, set the value of the node, and then set the next member to refer to the proper node or null if the node is added to the end of the list. Therefore, there is really no need for a default constructor in the node class. The MyLinkedList class will always set the value of the node, and then set it's next member to refer to something.
    You might want to try to write a linear linked list first, and get that working, and then modify it to make it a circular linked list. In addition, you should be drawing pictures of nodes with arrows connecting the different nodes to understand what's going on. Whenver the next member of a node refers to another node, draw an arrow starting at the next member and ending at the node it refers to. The pictures will be especially helpful when you write functions like add().
    Message was edited by:
    7stud

  • SQL Developer export forgot to check to include semicolons in DDL

    Hi,
    I used the SQL Developers Export-function (select tables and right click on them, then select export) to backup tables.
    However, I forgot to set the 'Abschlusszeichen' (sorry for the german). That apparently means my create table statements are not finished by an ';', and they sinmply don't execute using the @script.sql method, or the sql developers import-function.
    One sql-file is 2 GB in size, so I currently have no idea how to edit it and add the semicolons manually. Is there any hope to rescue the data?
    I'm running sql developer 3.2.20.09, oracle Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production as well as Windows 8.1
    For clarification, this is how the create table part looks:
    --  Datei erstellt -Montag-September-30-2013  
    --  DDL for Table ZZ_BEN_0
      CREATE TABLE "PIERUSCHM"."ZZ_BEN_0"
       (    "BENUTZER_ID" NVARCHAR2(30),
        "NAME" NVARCHAR2(30),
        "GUELT_VON" NVARCHAR2(30),
        "GUELT_BIS" NVARCHAR2(30),
        "IST_KORREKTUR" NVARCHAR2(30),
        "IST_HALBTAGSKRAFT" NVARCHAR2(30),
        "LADE_DAT" DATE
    --  DDL for Table ZZ_BEN_1
      CREATE TABLE "PIERUSCHM"."ZZ_BEN_1"
       (    "BENUTZER_ID" NVARCHAR2(30),
        "NAME" NVARCHAR2(30),
        "GUELT_VON" NVARCHAR2(30),
        "GUELT_BIS" NVARCHAR2(30),
        "IST_KORREKTUR" NVARCHAR2(30),
        "IST_HALBTAGSKRAFT" NVARCHAR2(30),
        "LADE_DAT" DATE
    --  DDL for Table ZZ_BEN_10

    Also i'd like to add that the file begins with table definitions but then contains the actual (and randomly generated) data as well.
    You still need to have the file regenerated or you should expect to have problems with ANY method you use to try to automatically 'fix' the problem.
    1. No experienced developer that I have worked with would EVER try to execute such a monolithic script because there is virtually NO chance that a 2 GB script will EVER run successfully without an error of some sort. Objects have to be created in the proper order when dependencies exist between them. For example, you can't create an index if the table hasn't been created yet. There can even be circular references that will prevent all objects from being VALID even if they are created.
    2. There is virtually NO chance that ANY method you use will put terminators in EXACTLY the right place without causing a problem of some sort.
    3. When there is an error the script may continue to try to executed and that usually causes further errors. It also creates garbage objects that are not valid but will keep the script from working correctly the next time since the objects will already exist.
    You need to create a SET of scripts that are of manageable size so that you can control the process of executing them in the proper order.
    If you don't take the time to do that, up front, you are going to wasted a tremendous amount of time when the script fails trying to cut and paste the pieces you need out of that 'master' script.
    There are NO SHORTCUTS: take the time to do it right the first time.

  • How to buil a circular buffer of message

    Hi, I have a GPS that sends me their information every 30 seconds, I'm receiving this information for the serial port and I should send this information by another serial port, but every 90 seconds or more, the transfer time is variable according to the performs of the microcontroller, we need to know how buil a circular buffer of tx message so as not to miss any reading that I sent me the GPS.

    One way would be to have the serial port read in one loop, placing the received messages onto a queue, with the writing done in another loop, popping the messages off the queue as needed. Of course, if you are "loading" the queue every 30 seconds, and "unloading" the same amount only every 90 seconds, you will eventually run out of storage, filling up the predefined queue size. So you will need to determine how long that would be, and how you want to handle it. This is a problem that will occur with whatever method you use, also understanding that the longer you run, the further behind the actual GPS location data you will be. In LabVIEW 8.x, click "File" and New, there is an example of a producer/consumer architecture.
    Message Edited by LV_Pro on 01-27-2009 01:28 PM
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • I WOULD LIKE TO DEVELOP A VI WITH DIAL AND BARGRAPH WHERE INDICATOR IS CONSTANT AND VALUES WILL BE MOVING

    I WOULD LIKE TO DEVELOP A VI USING ROTARY DIAL OR BARGRAPH WHERE THE POINTER IS STATIONARY AND VALUES WILL BE SCROLLING FROM 0-360DEGREES IN CIRCULAR SHIFT? PLEASE ADVICE

    Please don't type in all CAPS.  There is no need to yell.
    Please don't make your subject the same as your message body.  The subject should just provide a quick highlight of what you want.
    You can use property nodes of the scale of the dial indicator to set the position of the scale values about the entire rotation.
    Also search the forums for "compass" or "compass rose".  Some people doing some aircraft simulation need to do the same thing with their compass display.

  • Are there any general guidelines/algorithm to perform arc/circular motion?

    My system consists of a PC with a IEEE488.2 from NI that connects to 2 Newport MM4006 controllers, which, in turn control a high-precision stage.
    I would like to know if you can provide me with any guidance/algorithm to learn about programming arc/circular motion.
    I learned that there is advanced feature not included in my version such as Draw Pictures and Draw circles under Pictures. Are these features merely for plotting on computer screen and NOT actually for commanding the controllers to physically build arc or circles.
    Any advice or suggestion for arc or circular motion?
    Thanks

    You are restricted to the types of moves which are allowed by your Newport MM4006 controllers. Some controllers have built in advanced trajectory generation just for arcs, curves, and countoured moves (such as the PCI-7344). Other boards are restricted to a series of straight line moves. The tools you are given to perform an arc depend on the functionality of your controller. If you can only do straight line moves, you'll need to develop an algorithm which will break up an arc into a series of many small straight line moves. I am not aware of any such already built algorithms here.
    Jack Arnold
    Application Engineer
    National Instruments

  • How can I put some text on a circular shape and make it visible in a Picture?

    I work with LabVIEW 5.1.1 (FDS), the Picture Control Toolkit and IMAQ 4.1.1.
    I'd like to make some text to flow on a circular shape of given radius just like I can do with the most common graphic programs like CorelDraw!
    How can I do?

    A new overlay VI was developed to address the need to add text to an image easily.
    IMAQ Overlay Text (Functions >> Vision Utilities >> Overlay).
    - It is available in IMAQ Vision 6.0 (which requires LabVIEW 5.1 or greater).
    It will allow you to rotate text, but it currently does not support circular shapes.

  • Circular reference during serialization error

    I am getting the following error when invoking an operation on my web service that returns a 'Make' object:
    ERROR OWS-04046 circular reference detected while serializing: com.edmunds.vehicle.definition.Make circular reference detected while serializing: com.edmunds.vehicle.definition.Make
    I am running oc4j-101310.
    I can successfully call a 'createMake' operation as it returns 'void' so i know the WS is deployed correctly. The only values I am using to create the make are "Make.name" & "Manufacturer.name" so there isn't much to it. I know there are object graphs with 'models' and a parent reference to 'Manufacturer so I don't know if this has anything to do with it.
    One weird thing is that this worked the first time i deployed it but then started breaking on subsequent re-deployments (maybe I'm smoking crack)...
    Any help is appreciated!!
    Make object:
    public class Make implements Serializable {
    private Long id;
    private Set models;
    private String name;
    private Manufacturer manufacturer;
    public Set getModels() {
    return models;
    public void setModels(Set models) {
    this.models = models;
    public void setName(String name) {
    this.name = name;
    public String getName() {
    return name;
    public void setManufacturer(Manufacturer manufacturer) {
    this.manufacturer = manufacturer;
    public Manufacturer getManufacturer() {
    return manufacturer;
    public void setId(Long id) {
    this.id = id;
    public Long getId() {
    return id;
    Here is the SOAP request:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.matchbox.edmunds.com/">
    <soapenv:Header/>
    <soapenv:Body>
    <ws:findMakeElement>
    <ws:Long_1>22</ws:Long_1>
    </ws:findMakeElement>
    </soapenv:Body>
    </soapenv:Envelope>
    Here is the SOAP response:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://ws.matchbox.edmunds.com/" xmlns:ns1="http://definition.vehicle.edmunds.com/" xmlns:ns2="http://www.oracle.com/webservices/internal/literal" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <env:Body>
    <env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>Internal Server Error (circular reference detected while serializing: com.edmunds.vehicle.definition.Make)</faultstring>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    Here is my WSDL:
    <?xml version="1.0" encoding="UTF-8" ?>
    <definitions
    name="VehicleService"
    targetNamespace="http://ws.matchbox.edmunds.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://ws.matchbox.edmunds.com/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:tns0="http://definition.vehicle.edmunds.com/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns1="http://www.oracle.com/webservices/internal/literal"
    >
    <types>
    <schema elementFormDefault="qualified" targetNamespace="http://definition.vehicle.edmunds.com/"
    xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.oracle.com/webservices/internal/literal"
    xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://definition.vehicle.edmunds.com/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <import namespace="http://ws.matchbox.edmunds.com/"/>
    <import namespace="http://www.oracle.com/webservices/internal/literal"/>
    <complexType name="Make">
    <sequence>
    <element name="manufacturer" nillable="true" type="tns:Manufacturer"/>
    <element name="models" nillable="true" type="ns1:set"/>
    <element name="name" nillable="true" type="string"/>
    <element name="id" nillable="true" type="long"/>
    </sequence>
    </complexType>
    <complexType name="Manufacturer">
    <sequence>
    <element name="makes" nillable="true" type="ns1:set"/>
    <element name="name" nillable="true" type="string"/>
    <element name="id" nillable="true" type="long"/>
    </sequence>
    </complexType>
    </schema>
    <schema elementFormDefault="qualified" targetNamespace="http://www.oracle.com/webservices/internal/literal"
    xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://www.oracle.com/webservices/internal/literal" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <import namespace="http://ws.matchbox.edmunds.com/"/>
    <import namespace="http://definition.vehicle.edmunds.com/"/>
    <complexType name="set">
    <complexContent>
    <extension base="tns:collection">
    <sequence/>
    </extension>
    </complexContent>
    </complexType>
    <complexType name="collection">
    <sequence>
    <element maxOccurs="unbounded" minOccurs="0" name="item" type="anyType"/>
    </sequence>
    </complexType>
    </schema>
    <schema elementFormDefault="qualified" targetNamespace="http://ws.matchbox.edmunds.com/"
    xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://definition.vehicle.edmunds.com/"
    xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://ws.matchbox.edmunds.com/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <import namespace="http://www.oracle.com/webservices/internal/literal"/>
    <import namespace="http://definition.vehicle.edmunds.com/"/>
    <element name="createMakeElement">
    <complexType>
    <sequence>
    <element name="String_1" nillable="true" type="string"/>
    <element name="String_2" nillable="true" type="string"/>
    </sequence>
    </complexType>
    </element>
    <element name="createMakeResponseElement">
    <complexType>
    <sequence/>
    </complexType>
    </element>
    <element name="findMakeElement">
    <complexType>
    <sequence>
    <element name="Long_1" nillable="true" type="long"/>
    </sequence>
    </complexType>
    </element>
    <element name="findMakeResponseElement">
    <complexType>
    <sequence>
    <element name="result" nillable="true" type="ns1:Make"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="RemoteTestVehicleServiceWS_createMake">
    <part name="parameters" element="tns:createMakeElement"/>
    </message>
    <message name="RemoteTestVehicleServiceWS_createMakeResponse">
    <part name="parameters" element="tns:createMakeResponseElement"/>
    </message>
    <message name="RemoteTestVehicleServiceWS_findMake">
    <part name="parameters" element="tns:findMakeElement"/>
    </message>
    <message name="RemoteTestVehicleServiceWS_findMakeResponse">
    <part name="parameters" element="tns:findMakeResponseElement"/>
    </message>
    <portType name="RemoteTestVehicleServiceWS">
    <operation name="createMake">
    <input message="tns:RemoteTestVehicleServiceWS_createMake"/>
    <output message="tns:RemoteTestVehicleServiceWS_createMakeResponse"/>
    </operation>
    <operation name="findMake">
    <input message="tns:RemoteTestVehicleServiceWS_findMake"/>
    <output message="tns:RemoteTestVehicleServiceWS_findMakeResponse"/>
    </operation>
    </portType>
    <binding name="HttpSoap11Binding" type="tns:RemoteTestVehicleServiceWS">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="createMake">
    <soap:operation soapAction="http://ws.matchbox.edmunds.com//createMake"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    <operation name="findMake">
    <soap:operation soapAction="http://ws.matchbox.edmunds.com//findMake"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="VehicleService">
    <port name="HttpSoap11" binding="tns:HttpSoap11Binding">
    <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
    </service>
    </definitions>

    Graph and Circular dependencies cannot be model with document-literal message format with POJO development style. You will need to invent your own model to break the cycle and uses a mechanism similar to href, as with RPC-encoded message format.
    All the best,
    -Eric

  • LR 3 beta-Beef up develop and print modules

    Time is costly and we really need some Photoshop retouching tools where LR is very weak.The CS4 clone tool with opacity adjustment,patch tool,and healing brushes are better  than the circular clone tool in LR which cannot deal with irregular shapes.For whatever reason,the LR clone/heal tool slows up LR where it almost freezes when a lot of dust needs to be dealt with whereas CS4 spot healing brush copes well.The curves feature needs to be made more sensitive with points added.
    I have not seen the ability to rename files in the develop mode to avoid having to transfer back to the Library module to rename.Also it would be better when making changes to an image in stages, particularly if the image has been sent to Photoshop a few times,if each variation could be clearly marked automatically in the film strip tool bar in the sequence the changes took place.The edit tags currently used get a bit confusing (although renaming the file with a description of the editing carried out does help)
    Sharpening is a bit better but a texture enhancer for say clothing or in landscapes- rocks and stone like in third party plugins would be beneficial.The problem is that the masking slider is good at eliminating oversharpening but smoothes out texture too much.
    In the Library and develop modules there is no file size or picture dimension information.When exporting from LR,there should be a targeted file size in MB which is required by some users.
    Full support for Video files need to be added to process the latest SLR  technology.
    In the Print module,the abilty to position text with title to the left instead of centred should be possible.Sometimes text might be set out in say ,two or three paragraphs as explanation of the picture without text being centered.This is very difficult to achieve at present.An international copyright symbol (not available on keyboard) should be added as a prefix option for use with the Identity plate (adjustable with the size and opacity slider) to prefix the photographer's name and date.
    There appears to be no ability to print to the edge of the paper even at zoom to fill.

    Jeff,
    Thanks for the clarification and link to Bruce's article. I'm acquainted with the 3 pass approach and am trying to use LR as much as I can without ducking in and out of other applications.
    I've heard that LR is good for output of small prints, but for anything intented for the wall, I would be better served by PS or Qimage.
    I look forward to LR improving sharpening so that for images that don't need localized adjustments, I can stay in LR. (Did Mark ever give you a commitment for localized adjustments in LR 2.0? I'll have to listen to Podcast #29)
    I've always considered sharpening one of the most important parts of the workflow. I'll be taking Mac and John's workshop at the end of June, so I'll get their additonal insight on sharpening.
    Reid

  • The Quality of Oracle Developer

    The following is the body of an email I sent into Oracle Technet.
    Does anyone else agree?
    I would like to take this time to talk about
    Oracle Developer. I am using version 6 (with patches) and I
    unfortunately have nothing but bad things to say about this
    product.
    I have used other development tools, and I have never seen so
    many unexceptable bugs and features (that exist from poor design)
    like I have seen while using this product. Reports that print
    with undesired and sporadic results. Built-Ins that do not work
    as intended. Deployment that is unreliable. GUI design that is
    poor and non-standard (using the Microsoft Window standards --
    which are industry-acceptable standards). Form and canvas
    navigation that is unreliable.
    Most software vendors would not let a product of this quality out
    of the alpha stage, and what is truly disappointing is that
    Oracle, who is the developer of a fabulous database, would risk
    tarnishing their image by releasing what my colleagues and I
    refer to as "crap". What makes this product even more of a
    tragedy is the fact that is probably the most expensive
    development product on the market today.
    Being an Information Technology professional, many companies
    value my opinions and toolset recommendations. Oracle Developer
    would be on the top of my "DON'T BUY" list. For the company's
    sake, I truly hope that this e-mail does NOT merely end up in the
    area that many individuals refer to as the "circular file".
    Thank you for your time.
    null

    Ben Klein (guest) wrote:
    : The following is the body of an email I sent into Oracle
    Technet.
    : Does anyone else agree?
    : I would like to take this time to talk about
    : Oracle Developer. I am using version 6 (with patches) and I
    : unfortunately have nothing but bad things to say about this
    : product.
    : I have used other development tools, and I have never seen so
    : many unexceptable bugs and features (that exist from poor
    design)
    : like I have seen while using this product. Reports that print
    : with undesired and sporadic results. Built-Ins that do not
    work
    : as intended. Deployment that is unreliable. GUI design that is
    : poor and non-standard (using the Microsoft Window standards --
    : which are industry-acceptable standards). Form and canvas
    : navigation that is unreliable.
    : Most software vendors would not let a product of this quality
    out
    : of the alpha stage, and what is truly disappointing is that
    : Oracle, who is the developer of a fabulous database, would
    risk
    : tarnishing their image by releasing what my colleagues and I
    : refer to as "crap". What makes this product even more of a
    : tragedy is the fact that is probably the most expensive
    : development product on the market today.
    : Being an Information Technology professional, many companies
    : value my opinions and toolset recommendations. Oracle
    Developer
    : would be on the top of my "DON'T BUY" list. For the company's
    : sake, I truly hope that this e-mail does NOT merely end up in
    the
    : area that many individuals refer to as the "circular file".
    : Thank you for your time.
    Ben:
    I was starting to think it's just me. With ORACLE being "the"
    database for years now, I figured their development tools would
    have a little more to offer.
    I maintain a contractor-developed web app developed exclusively
    with Oracle products - Developer, Web Server, Database, etc. I
    find the user interfaces of these products horrible, and their
    functionality even worse. Very buggy and unpredictable. Oracle
    doesn't seem to realize that MS Windows/NT is the platform they
    should concentrate on - maybe send their developers to some MS
    schooling to learn proper windows programming techniqes and
    standards. Who really cares anymore that their products can be
    used across many different platforms? I especially hate the
    events used in developing forms. Very hard to understand
    exactly what they do or when they're fired.
    The reason why I'm on this site today is that I destroyed my
    8.0.3 database by putting Developer 6.0 on it! Now tech-support
    (which we prabably paid thousands for) Oracle tells me that the
    two can't co-exist on the same machine.
    I'm with you - I'd steer any developer away from any Oracle
    product in a heartbeat, except maybe for their core database.
    Jeff Whippo
    null

  • Circular interpolation in NI motion controllers

    Hi all,
    This is a question for all the experienced motion control programmers using NI's motion controllers with LabVIEW. This is about circular interpolation. NI provides a VI for making a circular arc. Now, The issue is that this VI takes in angles instead of co-ordinates. For any user who wishes to give a command to a two axis system, visualizing something in terms of angles is very difficult. Also having an interpolation command in terms of angles is unconventional for a motion controller. It should always and always be in terms of co-ordinates. Why has NI gone for this unconventional approach for such a simple feature and how can I suggest this necessary improvement to NI.
    Regards,
    Giridhar Rajan
    Automation Engineer, Design
    Cruiser Controls
    Mumbai, India

    Giridhar,
    As you noted there are numerous ways to calculate arc moves and in the development of our algorithms NI chose to use angular notation to characterize a circular arc move.  I would agree with you completely that it would be very useful to have a function that would take coordinates instead of angles to calculate a circular arc move.  National Instruments is always interested in receiving feedback on our products and welcome them as part of our dedication to continual improvement.  I will file this product suggestion through our channels here and would request that you also submit a product suggestion.  You can do so by going to ni.com and clicking on the gray "Contact NI" button and filling out the product feedback form.   Thank you for your time and for this valuable suggestion.
    Regards,
    S. Arves S.
    National Instruments
    Applications Engineer

  • Circular arc challenge

    Hi,
    This is an amazing motion control challnge that I'm putting forward to u guys. I am currently using NI PCI7344 motion controller for 3 axis + spindle motion control system. Before this I have used Fanuc and Fagor CNC controllers which understand G-codes and M-codes. Now, in my application, I want to do simple two axis circular interpolation to draw an arc. LabVIEW provides a VI for drawing an arc. We need to provide the "Start angle", "Travel angle" and "Radius" for drawing an arc using that VI. I'm trying to develop a VI, where I feed the "target position", "radius" and "Clock Wise/Anticlock Wise" to draw an arc. The fanuc and fagor controllers provide this facility. Lets see how NI can compete with them. My application involves parsing and transalation of G-codes and M-codes. If this is done, then using my application, a user can feed the same G-codes and M-codes that are understood by Fanuc and Fagor CNC controllers. This will help eliminate CNC and make people buy PC Based controllers. In this way engineers all over the world, who are conversant with G-codes and M-codes can easily shift towards PC Based control which is much easy to use and upgrade. Hence its a challenge for all motion control guys in NI to try implement this one and proide me with a VI.  
    Regards,
    Giridhar Rajan
    Automation Engineer,
    Cruiser Controls
    Mumbai, India

    Hi Giridhar,
    It sounds like you have a great understanding of how our arc move VI's work.  Using LabVIEW it is definitely possible to write and implement code that would translate target position, radius, and direction parameters to the start angle, travel angle, and radius parameters need to perform arc moves using our functions.  We at National Instruments provide LabVIEW as a flexible tool that can be used to write programs that can take user input and convert that data to parameters that can be used by our hardware.  We in the Applications Engineering department are here to support the software, functions, and hardware that we provide, but we can't write custom programs for our customers.  With your understanding of how our motion VI's work, it should be a simple matter of adding extra LabVIEW code to your VI to translate the parameters.  Good luck and have a great day.
    Michael Chaney
    Systems Engineer - TestStand
    National Instruments

Maybe you are looking for