The analysis table of Boolean in FPGA
Hi all
Although I programmed in LabVIEW several times, I am quite a novice when it comes to programming on an FPGA, and I learned that I will (which, so far, has worked with little problem). However, I have solved my most recent problem and more I read on the FPGA, less certain I am that what I try to do possible.
The task is to read in a number of bits of the digital input/output lines of the FPGA and the analysis of these bits in specific words / "bytes." For the application of the VI that I have attached, I rigged reading in a certain number of bits by providing three words of 26 bits (for a total of 78 bits) that have been defined on the front panel. After providing the bits specified, I try to analyse the bit array in the specific words that are given by the following logic:
1. find a start bit of 0 (false bit).
2. once the start bit of 0 (false bit) is the word that seeks to analyze is the next 10 bits.
3. after the start bit and 10-bit of data is a 1 (true bit) stop bit.
4. Repeat steps 1-3, five times.
The logic above, should be six words analyzed in total for the provided VI. Unfortunately, I can not simply take 12 bits (1 start bit, 10 data bits, and 1 stop bit) at a time, as the number of bits of padding between successive words is variable. The VI I provided is a version of how I proposed to perform the logic above, but I can not compile the project/VI, I get constantly mistakes "Tables to be fixed size." To my knowledge, all the tables in the VI have been allocated in advance, and seems to be deterministic.
If anyone has any suggestions as to why this VI is not compiled, I would greatly appreciate. Thank you in advance for taking the time to look at it, and I look forward to resolving this issue.
With gratitude,
Gregory
Unfortunately, you'll have to rework this VI to run on an FPGA. You cannot move tables in memory in an FPGA the way you can on a PC. You have an array of variable size as the exit to remove the table, because the entry of length is not fixed at compile time. In addition, two-dimensional arrays are not allowed. Remember when coding for an FPGA you actually write the material - each value in a table is basically a circuit (that's my oversimplified understanding). The compiler cannot affect the right number of sons to carry a table if it cannot determine the size of the array. The table is not in memory, so there is no way to reorder running.
There are two ways you can work around this problem, which will require an iteration through each element of the input array. You could use a FPGA FIFO and just put the values in the FIFO which are given (that is to say, in a loop until what you have touched a start bit, putting the next 10 values in the FIFO). Then across the FIFO, possibly in a separate loop, read 10 bits at a time to get your words out of data. Another approach is to reorganize the table as you go. Keep track of the current location in the input array. When you hit a start bit, away from the 10-bit (you may need to do this one at a time) to the current location in the input array, incrementing the current location every time. When you have completed all entries, all data will be at the beginning of the table in units of 10 bits, which you can split out as needed.
Tags: NI Software
Similar Questions
-
generate the subset of the decimal table to an array of Boolean
I have a decimal table 1 2 3 4 5 6, and I have a boolean with the same table size 0 1 0 1 1 0.
How can I retrieve the subset of the decimal table of the corresponding "1" position of the table of Boolean (in this case 5 4 2)?
The value of the Boolean table are editable (casting either 1 00100), so the size of the array decimal subset is not fixed (1, 4).
(I assume you mean digital Board. "Décimal" is just a specification of formatting and irrelevant for this)
Try something like the following (the FALSE case has just wired table in the whole unchanged):
(In case you're dealing with huge paintings, a few performance modifications should be made so that everything goes more in place.)
(Sorry for the spelling errors, ignore them )
-
How to convert the string with numbers in the table of Boolean 2D
Hello
I have input a string with comma separated numbers 1,192 (starting at 1).
This string must be converted to a table 2D-boolean. Each number that appears should be true, not true rest.
The 2D table consists of 4 times of 0.47 Boolean values.
1.48--> [0.47] numbers [0]
49.96--> [0.47] numbers [1]
Numbers 97.144--> [0.47] [2]
145.192--> [0.47] numbers [3]If a '1, 49, 97 145' input string put all [0] [0.3] true.
How can it be easy/fast resolved?
Thanks for help
Break the string of numbers in a table of numbers. (Spreasheet String to Array).
In a loop For, index with each issue of this table. Use in the range and Coerce to see if it is in the range of numbers. (You can put this in a loop For as auto good indexing through the ranges). If it's in the range, then use subset replace table to activate the corresponding item in a real. If this is not the case, do nothing. Maintain the table of Boolean in a shift register.
Repeat this step for each number in your table.
(What is a class assignment?)
-
How to set up a chart and store data points in a table to allow me to do the analysis with him
Hello
I am relatively inexperienced, with the help of labview and I try to do the following with the help of an oscilloscope Tektronix TDS 2001 C but have no idea how start.
(1) load a previously saved regarding the volts/div and setting s/div on oscilloscope
(2) pass everything that appears on the o-scope on my computer screen
(3) save the data table so that I can do a scan with it
I watched some of the diagrams of block of example provided with the driver I downloaded for this particular unit but am still very confused. Any help would be greatly appreciated
Hello Chron0,
I know I guess a little here, but have you downloaded a specific device of ni.com/idnet driver? This is a good place to find the built-in drivers for third-party devices, and there is one for this particular model. That being said, when I looked at the examples in the downloaded zip file, I saw a couple of predefined options that look like they should satisfy question #2 of your project based on the method to use to acquire a waveform (permanently, several waveforms, etc.). Similarly, in the Public folder is a configuration of channel VI which I think should satisfy what you are wanting to do to the #1 question.
Depending on what you are willing to do data analysis, with regard to the software used, functions, etc., there are several reporting tools in LabVIEW which will allow you to save the table and manipulate later. A good place to begin with, it will be to search for "File i/o" in the search bar helps LabVIEW and select the option under the heading "Palette." There are several options here that I think might be useful, including writing in the file.vi worksheet.
It will be also good to be familiar with the Finder example OR in LabVIEW. There are examples of spreadsheets / saving data, as well as VISA, which you can do some reading on, because the interface VISA, it's how you communicate with this device (Fortunately, the driver already download it!)
Good luck to go ahead and keep us informed here on your project!
-Dave C
Technical sales engineer
National Instruments
-
Single SQL query for the analysis of the date of customs declaration under the table of Stock codes
Dear all,
Please tell us a single SQL query for the below,
We have a Table of Stock as shown below,
STOCK_TABLE
ITEM_CODE
(item code)
BAT_NO
(lot no.)
TXN_CODE
(transaction code)
DOC_NO
(number)
BOE_DT
(date of the customs declaration)
I1
B1
I1
I2
I3
B70
I4
B80
I5
B90
T102
1234
JULY 2, 2015
I6
B100
We have to find the date of customs declaration (i.e. the date when the items have come under this particular table) for items that are not attached to any document (that is, who have TXN_CODE, DOC_NO and BOE_DT fields with a NULL value).
For each item in the table of actions, which is not attached to any document, the customs declaration date is calculated as follows.
- If (code section, lot number) combination is present under HISTORY_TABLE, the date of customs declaration will receive the UPDT_DT, the transaction code (TXN_CODE) is an IN or transactions (which can be analyzed from the TRANSACTIONS table).
- If (code section, lot number) combination is NOT currently at the HISTORY_TABLE (or) the transaction code respective to item - batch number combination code is an operation then customs declaration date will be the date of the document (DOC_DT) that we receive from one of the 3 tables IN_TABLE_HEAD that contains the element of that particular lot.
- If the case 1 and case 2 fails, our customs declaration date will be the last date of document (DOC_DT) that we receive from one of the 3 tables IN_TABLE_HEAD containing that particular item and the BAT_NO in expected results will be that corresponding to this document, as appropriate, to another NULL.
- If the case 1 or case 2 is successful, the value of the last field (in the output expected, shown further below) BATCH_YN will be 'Y', because it fits the lot. Otherwise it will be 'n'.
-
Caveat "the formula uses a Boolean value instead of a number" would dismiss
Hello!
I do a "Calculator" to get estimates of price for the projects, according to which processes the customer wants.
Rates for each process are added in another table, and I use the list of control buttons to enable or disable the various processes.
Here is an example of a formula:
D3 determines if the part of the project modeling is performed, so the price will be or will not be calculated.
If D3 is true, the result is multiplied by 1, give me a positive amount. If false, the result will be multiplied by 0, 0, so nothing to add to the final cost he send me some.
Same for B4 in the same formula.
This formula is repeated all over the chart, with minor changes to add more complex options, but it's all the same.
Everything works fine, but I got those blue triangles warning me of "the formula uses a Boolean value instead of the number". That's fine with me, I like the use of the Boolean types, and they make my formulas work well in my calculator. How can I reject the blue triangles?
They are a little annoying. And they do not really correspond with the general style of my calculator.
I saw someone talking other types of formulas, with SEARCH and yews, but who is really complicated and I don't know how to do... Especially for a simple calculator
Is there a way to simply do not display warnings?
Using the version 3.6.2 on a MacBook Pro, OSX El Capitan 10.11.5
Thank you!
Hi Sinshassan,
I don't know a way to escape your blue flags except to make a formula which is consistent with the expected numbers. It is not difficult.
My formula D2 = yew (AND(D1,B2), C2, 0)
The IF statement tests the two D1 AND B2. If they are true, then it indicates the value of C2 your carbon Modeling::High Poly #1, if one or both are false (unchecked) then 0 is displayed.
Give it a try.
Quinn
-
You try to run the scan mode and mode interface fpga at the same time is causing errors
I'm reading a 9236 9237 and a 9215 with the scanning engine and read from two 9211 modules with the fpga. It's because I need to acquire to 200 Hz with the 9236 9237 9215 but maximum rate of the scan engine is limited by the slower module in the system, which in this case is the max of 15 hz the 9211.
So to use both interfaces (scan engine and fpga), I followed the percisely given in this article for instructions.
1. the project has created and added the peripheral crio using the interface of the scan engine.
2. Add the target fpga and drag and drop the 9211 inside modules
3. has created the fpga in interface file with and compiled with no error.
4. interfaced with the file fpga at almost exactly the way the sample project of "getting started with 9211' by using the engine of analysis in the interface with the other modules.
5. after the errors to discover that I created a VI that tests for just the portion 9211 code (called "thermocouple FPGA method Test.vi")
The data returned by the interface fpga was nothing else than zeros on all channels, even if thermocouples were hooked on some of them. (all zeros as entries in the convert temperature vi gives-410, 6160 degrees F, if you happen to have the material to try this.)
I get the following error from the open fpga vi reference:
code error-61141
"Thermocouple method Test.vi FPGA.
Activities FPGA:Open FPGA interface reference.
Reserved outside LabVIEW FPGA: turns The RIO Scan Interface. You must set the mode Interface FPGA chassis in order to unlock the FPGA. »It's extremely frustrating, because as I explained, I've been very attentive not only follow the instructions for concurrent fpga and analysis but also to model my VI by the example of VI, even if only for the moment, just to try to work things out.
Any help would be appreciated as I need to fix this for the further development and I am somehow in a lack of time. I opened a support ticket (reference #7256226), but the app engineer had no time to answer.
My system:
cRIO-9014 controller RT with crio-9104 bottom of basket.
LabVIEW 2009
Latest drivers and peripheral software pc and rio (RIO scan 3.2 engine support june2009)
rex1030 wrote:
I'm reading a 9236 9237 and a 9215 with the scanning engine and read from two 9211 modules with the fpga. It's because I need to acquire to 200 Hz with the 9236 9237 9215 but maximum rate of the scan engine is limited by the slower module in the system, which in this case is the max of 15 hz the 9211.
This should not be the case. 9211 data will not update with each sweep, but you should be able to run the scan faster than 15 Hz without problem. Do you have specific issues with this?
So to use both interfaces (scan engine and fpga), I followed the percisely given in this article for instructions.
1. the project has created and added the peripheral crio using the interface of the scan engine.
2. Add the target fpga and drag and drop the 9211 inside modules
3. has created the fpga in interface file with and compiled with no error.
4. interfaced with the file fpga at almost exactly the way the sample project of "getting started with 9211' by using the engine of analysis in the interface with the other modules.
5. after the errors to discover that I created a VI that tests for just the portion 9211 code (called "thermocouple FPGA method Test.vi")
You can try making sure that the chassis is set to mode Interface FPGA and the setting is deployed. I wrote that article that you referenced says will select the deploy option later and not explicitly speak to deploy the chassis later. Run a VI with a reference open FPGA vi not automatically deploy chassis settings if you need to do it explicitly. Try the following steps.
1. right click on the frame element and select Properties. Make sure that the Interface FPGA option button is selected. \
2. right click on the frame element and select deploy.
3. repeat your VI.
The data returned by the interface fpga was nothing else than zeros on all channels, even if thermocouples were hooked on some of them. (all zeros as entries in the convert temperature vi gives-410, 6160 degrees F, if you happen to have the material to try this.)
I get the following error from the open fpga vi reference:
code error-61141
"Thermocouple method Test.vi FPGA.
Activities FPGA:Open FPGA interface reference.
Reserved for LabVIEW FPGA outside: The RIO Scan Interface is running. You must set the mode Interface FPGA chassis in order to unlock the FPGA. »The likely cause of this error is that the setting of the FPGA Interface on the chassis has not been deployed. If the chassis is still Mode Scan fixed personality bitfile will be loaded on startup and the FPGA will be locked.
It's extremely frustrating, because as I explained, I've been very attentive not only follow the instructions for concurrent fpga and analysis but also to model my VI by the example of VI, even if only for the moment, just to try to work things out.
I'm sorry that you have had difficulties. Assuming that I'm wrong about the source of your problem, it seems we have to update less than Ko to include the deployment step.
Any help would be appreciated as I need to fix this for the further development and I am somehow in a lack of time. I opened a support ticket (reference #7256226), but the app engineer had no time to answer.
My system:
cRIO-9014 controller RT with crio-9104 bottom of basket.
LabVIEW 2009
Latest drivers and peripheral software pc and rio (RIO scan 3.2 engine support june2009)
-
How do I reverse Split 1-d Array of recombining the splitting table?
How do I reverse Split 1-d Array of recombining the splitting table? IE I have two Boolean charts A and B, and I want them in a Boolean array: a followed by B items (NO interlacing) array elements
Thank you
Hi ysma.
-You cannot convert SGL data directly on the Boolean chart that shows you the Red CoercionDot...
-always do not concatenate you the berries (despite all the comments on this subject), but instead to create a 2D array...
Try this:
-
The analysis of the Variables of e/s channel properties
I have a situation in which I would like to configure the Daq on a cRIO since an interface of configuration on a Windows host. In particular, I would like to get IO addresses Variable for all analytical engine channels configured on the cRIO. The Setup program runs on the Windows host and impossible to deploy any demon on the RT which could question the material. He needs run as if the cRIO is not present.
The configuration program is part of the same project as the cRIO, so my thought was to analyse the project to find corresponding topics. Here's a post that does something very similar:
https://decibel.NI.com/content/docs/doc-16630
However, this has several problems. This example was written in 2011. I am using 2015. Apparently, the properties have changed since then. Children' find' (it is no longer named "children []") does not give me the chassis on my 9068 reference. Instead, I could use the property "Items Owned []", which gives a bunch of things, and then I search the TypeString of these things until I have find one that is "Chassis". Fair enough. Then the ref chassis gives me the Modules and the Modules of give me the channels. Seems pretty good. But all I get are the names of channel. I can't find all the properties that define the type of module or the direction of IO. For example, I would like to know if a variable is a Boolean or real, and if it is a path of entry or exit. You can deduct that the names 'standards', if the project has not been changed to allow giving them a meaningful name to create or. But it looks like there should be a way to find these properties directly.
Any ideas?
TIA,
DaveT
I think that the analysis of the project tree is a quite fragile strategy that you should know already. AFAIK the OR sanctioned for this sort of thing for a few years now is to use the API of the System Configuration. Yes, it's a pretty involved API and need you a little time to learn how to get the specific information you are interested in. Fortunately there are some examples that you can use to start with.
-
Number of 1s or 0s in a table of Boolean
How to find the number of 1s or 0s to an array of Boolean. for example in 101011, ago four 1s and 0 two s.
Hello
Thanks to you all.
I just got an idea and his work. It's better, I want to share with you.
- Convert the table of Boolean 0, 1 (available in boolean labiew)
- Just to summarize these 0, 1, using arithmetic sum
- Comapre the sum with half of the number of channels.
- If the sum is greater than or equal to, its ok
Thank you.
-
Until a few days ago, this problem didn't exist - I know. My CD/DVD drive is no longer recognized in Windows Explorer, BIOS or Device Manager. It doesn't, however, appears briefly in Windows Explorer in the analysis of the security of the computer. It allows to open/close, etc. and when it is visible, I am able to open the drive and see the contents of the CD. Then it disappears again. The light flashes indicating that he works and I can hear it trying to read the CD. I uninstalled iTunes because I read somewhere that this may have been the issue - but that didn't work. I tried the system restore, registry cleaners, removal of upper/lower case filters from the registry, used the program Fixit found on the site Web of Microsofts etc and still no luck. Any ideas? The computer is a gateway SX2850 (?) with Windows 7 Home Premium installed.
Hello
Follow these steps to remove corruption and missing/damaged file system repair or replacement.
Start - type in the search box - find command top - RIGHT CLICK – RUN AS ADMIN
sfc/scannow
How to fix the system files of Windows 7 with the System File Checker
http://www.SevenForums.com/tutorials/1538-SFC-SCANNOW-Command-System-File-Checker.htmlThen run checkdisk (chkdsk).
How to run check disk in Windows 7
http://www.SevenForums.com/tutorials/433-disk-check.html==========================================================
After the foregoing:
References to Vista also apply to Windows 7.
Step 1: Please do all the same underneath if you did some before as is often total
a process that solves the problem.Try this - Panel - Device Manager - CD/DVD - double click on the device - driver tab.
Click on update drivers (this will probably do nothing) - RIGHT click ON the drive - uninstall.
RESTART this will refresh the default driver stack. Even if the reader does not appear to continue
below.
Then, work your way through these - don't forget the drive might be bad, could be a coward
cable or slight corrosion on the contacts (usually for a laptop) and other issues.Your CD or DVD drive is missing or is not recognized by Windows or other programs
http://support.microsoft.com/kb/314060 - a Mr FixitTry this fix manually if the Fixit 314060 does not work
http://www.pchell.com/hardware/cd_drive_error_code_39.shtmlYour CD or DVD drive is missing or is not recognized by Windows or other programs-
a Mr Fixit
http://support.Microsoft.com/kb/982116The DVD player does not work after installing Windows 7
http://support.Microsoft.com/kb/975270/The CD drive or the DVD drive does not work as expected on a computer that you upgraded to
Windows Vista
http://support.Microsoft.com/kb/929461When you insert a CD or a DVD, Windows Vista may not recognize the disc
http://support.Microsoft.com/kb/939052Your CD or DVD drive cannot read or write media - A Mr Fixit
http://support.Microsoft.com/GP/cd_dvd_drive_problemsCD/DVD drive does not appear in Windows Vista, or you receive this error during Windows Vista
Setup after booting from the DVD (AHCI)
http://support.Microsoft.com/kb/952951
Drive CD - R or CD - RW Drive is not recognized as a recordable device
http://support.Microsoft.com/kb/316529/Hardware devices not detected or not working - A Mr Fixit
http://support.Microsoft.com/GP/hardware_device_problemsAnother possibility is that the cables are loose. Remove ALL power, then make sure that the cables in both
ends. Remove and replace, do not just tight. For laptops, you can often clean power and
contacts data with a pencil eraser.Some DVD players do not use the Windows default drivers so check with the manufacturer of system and
manufacturer of device to see if there is a firmware or drivers for your drive if necessary.===============================
Step 2: You have disc problems as the CD/DVD is actually 4 discs in 1 case (CD & DVD
Burn and CD and DVD read). So it is not unusual for 1 or 2 operational so that other parts
do it right.Did you follow the Troubleshooting Guide for the reader who still does not work? There are
the entries in registry that the troubleshooter does not solve and those who "might" be the cause.Check with your Maker system and a device for the two possible firmware updates and the
correct registry entries for your car.Here are the keys that I of course are those in question - for the subkeys of the CD/DVD drive
as there will be other subkeys in these keys. Do not forget to ask specific keys involved as well as
the parameters.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\IDE
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\ {4D36E965-E325-11CE-BFC1-08002BE10318}
-----------------------------------------------------------------------
You can probably find more info here and maybe even the exact registry settings for your
CD/DVD drive someone with the same model.Forums - a lot of expert real help
http://Club.myce.com/CD/DVD units
http://www.myce.com/storage/Use DevManView to locate the CD/DVD in the registry (be careful and do a prior Restore Point)
nothing change) - find the DevManView device and then make a right click on it free in RegEdit.DevManView - free - an alternative to the standard Windows Device Manager, which displays
all devices and their properties in flat table, instead of the tree viewer
http://www.NirSoft.NET/utils/device_manager_view.htmlI hope this helps.
-
The analysis of lists in PL/JSON
I'm working on parsing a json string that is stored in a CLOB table in oracle 11g. This process belongs to a long analysis of routine which analyzes the data and stores the values in another table, and I just noticed that part of my data is not out. The json analysis and valid with JSONLint. So I simplified the analysis to try to find out where I'm wrong.
So my json out of my table looks like this.
{
'JSON_data': {}
"plant_id": "3006."
"transmit_time": "2015-12-18 11:57:45."
'messages': [{}
'work_msg': {}
"msg_time": "2015-06-23 04:54:17", ".
"trigger_type':"interval. "
'vert_correction': 358,3,
'ch_latitude': 37.916302,
'ch_longitude':-87.487365,
'ch_heading': 212,3,.
'ch_cable_port': 1029.79,
'ch_cable_stbd': 348.63,.
'ch_depth':-27.03,
'slurry_velocity': 25.71,.
'slurry_density': 1.02,.
'ch_rpm': 205.49,.
'ch_psi': 540.89.
'prod_instantaneous': 0,
'prod_cumulative': 1216.100000,
'outfall_latitude': 37.915967,
'outfall_longitude':-87.484369,
'outfall_heading': 120,7,.
"pump_entries": [{}
'pump_name': 'main ',.
'empty': 12.73.
'outlet_psi': 22,88
}],
"spud_entries": [{}
'position': 6
}]
},
'pipe_length_event': {}
"msg_time": "2015-06-23 04:54:17", ".
"length_floating": 970
}
}]
}
}
My analysis is properly find and do his thing with the data "work_msg". It's the data 'pipe_length_event' that I don't get to. Here is my pl/sql procedure.
DECLARE
vCONTENT CLOB.
v_parent_json json;
v_json_message_list json_list;
v_json_message_list_value json_value;
v_parent_json_value json_value;BEGIN
SELECT CONTENT IN SJM_TEMP4 vCONTENT;
v_parent_json: = json (vCONTENT);
v_parent_json: = json (v_parent_json.get (1));v_json_message_list: = json_list (v_parent_json.get ('messages'));
DBMS_OUTPUT. Put_line (v_json_message_list. (Count);
for message_loop_counter in 1... loop v_json_message_list. Count
v_parent_json_value: = json (v_json_message_list.get (message_loop_counter)) .get (1);If v_parent_json_value.mapname = "work_msg" then
DBMS_OUTPUT. Put_line ('FOUND: work_msg');
on the other
DBMS_OUTPUT. Put_line (v_parent_json_value.mapname);
end if;END LOOP;
END;
My dbms_output first gives me a sublist from 1 account. 2. not so my analysis does not yet recognize the 'pipe_length_event' as a sublist of "messages".
How can I get data 'pipe_length_event' by using this procedure? I am almost sure that it worked in the past, so my first thought is that json is formatted differently. Is the json in the wrong format?
Thanks in advance.
They moved their forums to StackOverflow. I had posted my question there before here. In any case, I found my own answer. JSON is not properly formatted. The 'work_msg' was not closed correctly, and "pipe_length_event" has not been opened in a new list. So once I had that all squared away he analysed very well.
For reference, the correct formatting is below.
{
'JSON_data': {}
"plant_id": "3006."
"transmit_time": "2015-12-18 11:57:45."
'messages': [{}
'work_msg': {}
"msg_time": "2015-06-23 04:54:17", ".
"trigger_type':"interval. "
'vert_correction': 358,3,
'ch_latitude': 37.916302,
'ch_longitude':-87.487365,
'ch_heading': 212,3,.
'ch_cable_port': 1029.79,
'ch_cable_stbd': 348.63,.
'ch_depth':-27.03,
'slurry_velocity': 25.71,.
'slurry_density': 1.02,.
'ch_rpm': 205.49,.
'ch_psi': 540.89.
'prod_instantaneous': 0,
'prod_cumulative': 1216.100000,
'outfall_latitude': 37.915967,
'outfall_longitude':-87.484369,
'outfall_heading': 120,7,.
"pump_entries": [{}
'pump_name': 'main ',.
'empty': 12.73.
'outlet_psi': 22,88
}],
"spud_entries": [{}
'position': 6
}]
}
}, {
'pipe_length_event': {}
"msg_time": "2015-06-23 04:54:17", ".
"length_floating": 970
}
}]
}
}
-
Parsing xml and store the details in the hierarchical tables
Hi all
I'm trying to parse a xml code and store the details in the hierarchical tables, however, I am unable to analyze the child attributes of tags and store the details in relational format.
Oracle - 11.2.0.4 version
My XML looks like in below:
<Root> <ParentTag name="JobName" attrib1="Text" attrib2="SomeOtherText"> <ChildTag childAttrib1="SomeValue1" childAttrib2="SomeValue2" /> <ChildTag childAttrib1="SomeValue3" childAttrib2="SomeValue4" /> <ChildTag childAttrib1="SomeValue5" childAttrib2="SomeValue6" /> <OtherChildTag childAttrib1="SomeValue1" childAttrib2="SomeValue2" /> </ParentTag> </Root>
The table structure is as follows:
create the table parent_details
(
job_id number primary key,
VARCHAR2 (100) job_name,.
job_attrib1 varchar2 (100),
job_attrib2 varchar2 (100)
);create the table child_details
(
child_id number primary key,
number of parent_job_id
child_attrib1 varchar2 (100),
child_attrib2 varchar2 (100),
Constraint fk_child_details foreign key (parent_job_id) refers to parent_details (job_id)
);After analysis, I would expect the data to be stored in the format below:
Table Name:- parent_details ID Name Attribute1 Attribute2 1 JobName Text SomeOtherText ChildTable (Store Child Tag details) ID Parent ID Attribute1 Attribute2 1 1 SomeValue1 SomeValue2 2 1 SomeValue3 SomeValue4 3 1 SomeValue5 SomeValue6
I tried following SQL, but it does not work. Please suggest if the same SQL can be improved to get the details in the expected format or should I use another solution.
select job_details.* from test_xml_table t, xmltable ('/Root/ParentTag' passing t.col columns job_name varchar2(2000) path '@name', attribute1 varchar2(2000) path '@attrib1', attribute2 varchar2(2000) path '@attrib2', childAttribute1 varchar2(2000) path '/ChildTag/@childAttrib1' ) job_details;
I'm not forced to have a SQL solution, but would if it can be in SQL.
Kind regards
Laureline.
Post edited by: Jen K - added the SQL, I tried to build.
Well, the XML contains hierarchical data, and SQL is a "dish" of data, so it's up to you to treat lines that are coming out of the flat style and determine how to get that in separate tables.
Suppose that we have several nodes of ParentTag each containing several nodes of ChildTag...
SQL > ed
A written file afiedt.buf1 with t (xml) as (select xmltype ('))
') of double)
2
3
4
5
6
7
8
9
10
11
12
13
14-
15 end of test data
16-
17 select x.p
18, x.name, x.attrib1, x.attrib2
19, including
20, y.childattrib1, y.childattrib2
21 t
22, xmltable ('/ Root/ParentTag ')
23 passage t.xml
p 24 columns for ordinalite
25, path name varchar2 (10) '. / @name'
26, path of varchar2 (10) of attrib1 '. / @attrib1 '
27, way to varchar2 (10) of attrib2 '. / @attrib2 '
28 children xmltype road '.'
29 ) x
30, xmltable ('/ ParentTag/ChildTag ')
passage 31 x.children
c 32 columns for ordinalite
33, path of varchar2 (10) of childattrib1 '. / @childAttrib1 '
34 road of varchar2 (10) of childattrib2 '. / @childAttrib2 '
35* ) y
SQL > /.P NAME ATTRIB1 ATTRIB2 C CHILDATTRI CHILDATTRI
---------- ---------- ---------- ---------- ---------- ---------- ----------
1 text JobName SomeOtherT 1 SomeValue1 value2
1 text JobName SomeOtherT 2 SomeValue3 SomeValue4
1 text JobName SomeOtherT 3 SomeValue5 SomeValue6
JobName2 TextX SomeOtherT 1 SomeValue6 SomeValue8 2
JobName2 TextX SomeOtherT 2 SomeValue7 SomeValue9 2Using the 'ordinalite' gives us the line number for this node in the XML file, so that you can identify each parent as well as to say who is the first record of this parent (because it will have a child with the ordinalite 1).
An INSERT ALL tuition assistance we can insert into two different tables at the same time to keep related data... for example
SQL > create table tbl1 (pk number, name varchar2 (10), attrib1 varchar2 (10), attrib2 varchar2 (10))
2.Table created.
SQL > create table tbl2 (parent_pk number, attrib1 varchar2 (10), attrib2 varchar2 (10))
2.Table created.
SQL > insert all
2 when c = 1 then
3 in the tbl1 (pk, attrib1, attrib2)
4 values (p, attrib1, attrib2)
When 5 1 = 1 then
6 in the tbl2 (parent_pk, attrib1, attrib2)
7 values (p, childattrib1, childattrib2)
8 with t (xml) as (select xmltype (')) ') of double)
9
10
11
12
13
14
15
16
17
18
19
20
21 select x.p
22, x.name, x.attrib1, x.attrib2
23, including
24, y.childattrib1, y.childattrib2
25 t
26, xmltable ('/ Root/ParentTag ')
27 passage t.xml
p 28 columns for ordinalite
29, path name varchar2 (10) '. / @name'
30, path of varchar2 (10) of attrib1 '. / @attrib1 '
31, path of varchar2 (10) of attrib2 '. / @attrib2 '
32 children xmltype road '.'
33 ) x
34, xmltable ('/ ParentTag/ChildTag ')
passage 35 x.children
c 36 columns for ordinalite
37, path of varchar2 (10) of childattrib1 '. / @childAttrib1 '
38, path of varchar2 (10) of childattrib2 '. / @childAttrib2 '
39 ) y
40.7 lines were created.
SQL > select * from tbl1;
PK ATTRIB1 ATTRIB2 NAME
---------- ---------- ---------- ----------
1 text JobName SomeOtherT
2 JobName2 TextX SomeOtherTSQL > select * from tbl2.
PARENT_PK ATTRIB1 ATTRIB2
---------- ---------- ----------
1 SomeValue1 value2
1 SomeValue3 SomeValue4
1 SomeValue5 SomeValue6
SomeValue6 2 SomeValue8
SomeValue7 2 SomeValue9 -
lov (list of values) on the analysis in OBIEE filter option
Dear OBIEE users,
Kindly help me.
Our users of analysis, applying the filter, click on general
strikes at our 5 done row Bn collect distinct values and therefore blocks the bandwidth network.
Then give me suggestions on the improvement of the performance?
I have options
1. I can remove the option. (- Not a good idea to hide the feature)
Please guide me how/where to do?
2. I can provide tables/views LOV (cached) to get distinct values that will be added under table separate dim (1 col) that are attached to did the same collar and finally, expose the LOV table instead of the column column. (- Not a good idea as again once, we need to hit the very fact not used and above all, there is a JOIN that is not obviously useless for whole system.)
3. as you invite, if the default option is available, Please tell me
4. suggest me the best way if Oracle provided ha / you've used.
Thank you
Dilip Kumar Mohapatro
I expect to get
-
Just the total table in a narrative view
I have a table view... I would like to see in a narrative view... just the totals for col1, col2, etc... Whenever I build using @1, @2... all rows with values are displayed... I want just the totals...
Pls any help?
Antonio
You can add another more than 2 columns in the analysis by the sum (c1), (c2) of the sum and the sum of application of narrative view of the @3,@4 values to display these 3 and 4! also if you do not want that 3 and 4 columns to display! You can access the properties of the column and hide!
HISTORY_TABLE
ITEM_CODE | BAT_NO |
TXN_CODE
DOC_NO
UPDT_DT
I1
B1
T1
1234
JANUARY 3, 2015
I1
B20
T20
4567
MARCH 3, 2015
I1
B30
T30
7890
FEBRUARY 5, 2015
I2
B40
T20
1234
JANUARY 1, 2015
TRANSACTION
TXN_CODE | TXN_TYPE |
T1 | IN |
T20 |
OFF
T30
ALL THE
T50
IN
T80
IN
T90
IN
T60
ALL THE
T70
ALL THE
T40
ALL THE
IN_TABLE_HEAD_1
H1_SYS_ID (primary key) | TXN_CODE | DOC_NO |
DOC_DATE
H1ID1
T1
1234
JANUARY 1, 2015
H1ID2
T70
1234
FEBRUARY 1, 2015
IN_TABLE_ITEM_1
I1_SYS_ID |
H1_SYS_ID
(foreign key referencing H1_SYS_ID in IN_TABLE_HEAD_1)
ITEM_CODE
I1ID1
H1ID1
I1
I1ID2
H1ID1
I100
I1ID3
H1ID2
I3
IN_TABLE_BATCH_1
B1_SYS_ID | TXN_CODE DOC_NO (now in IN_TABLE_HEAD_1) | BAT_NO |
B1ID1
T1
1234
B1 / can be empty
B1ID2
T70
1234
B70
IN_TABLE_HEAD_2
H2_SYS_ID (primary key) | TXN_CODE |
DOC_NO
DOC_DATE
H2ID1
T30
4567
FEBRUARY 3, 2015
H2ID2
T60
1234
JANUARY 3, 2015
IN_TABLE_ITEM_2
I2_SYS_ID | H2_SYS_ID (foreign key referencing H2_SYS_ID in IN_TABLE_HEAD_2) | ITEM_CODE |
I2ID1 | H2ID1 |
I1
I2ID2
H2ID1
I200
I2ID3
H2ID2
I2
IN_TABLE_BATCH_2
B2_SYS_ID |
I2_SYS_ID
(foreign key referencing I2_SYS_ID in IN_TABLE_ITEM_2)
BAT_NO
B2ID1
I2ID1
B30 / null
B2ID2
I2ID2
B90
B2ID2
I2ID3
B60
IN_TABLE_HEAD_3
H3_SYS_ID (primary key) | TXN_CODE | DOC_NO | DOC_DATE |
H3ID1 |
T50
1234
JANUARY 2, 2015
H3ID2
T80
1234
JANUARY 3, 2015
H3ID3
T90
1234
JANUARY 4, 2015
H3ID4
T40
1234
AUGUST 5, 2015
IN_TABLE_ITEM_3
I3_SYS_ID |
H3_SYS_ID
(foreign key referencing H3_SYS_ID in IN_TABLE_HEAD_3)
ITEM_CODE
BAT_NO
I3ID1
H31D1
I2
B50
I3ID2
H3ID2
I4
B40
I3ID3
H3ID3
I4
I3ID4
H3ID4
I6
There is no IN_TABLE_BATCH_3
Please find below the expected results.
OUTPUT
ITEM_CODE | BAT_NO | TXN_CODE | DOC_NO |
BOE_DT
BATCH_YN
I1
B1
T1
1234
JANUARY 3, 2015
THERE
I1
B30
T30
7890
FEBRUARY 5, 2015
N
I2
B60
T60
1234
JANUARY 3, 2015
N
I3
B70
T70
1234
FEBRUARY 1, 2015
THERE
I4
T90
1234
JANUARY 4, 2015
N
I6
T40
1234
AUGUST 5, 2015
N
Controls database to create the tables above and insert the records.
CREATE TABLE stock_table()item_code VARCHAR2()80),bat_no VARCHAR2()80),txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), boe_dt DATE );
INSERT EN stock_table
VALUES ('I1', 'B1', '', '', '');
INSERT EN stock_table
VALUES ('I1', '', '', '', '');
INSERT IN stock_table
VALUES ('I2', '', '', '', '');
INSERT EN stock_table
VALUES ('I3', 'B70', '', '', '');
INSERT EN stock_table
VALUES ('I4', 'B80', '', '', '');
INSERT EN stock_table
VALUES ('I5', 'B90', 'T102', '1234', '02-JUL-2015');
INSERT EN stock_table
VALUES ('I6', 'B100', '', '', '');
SELECT *
FROM stock_table
CREATE TABLE history_table()item_code VARCHAR2()80),bat_no VARCHAR2()80),txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), updt_dt DATE );
INSERT IN history_table
VALUES ('I1', 'B1', 'T1', '1234', '03-JAN-2015');
INSERT IN history_table
VALUES ('I1', 'B20', 'T20', '4567', '03-MAR-2015');
INSERT IN history_table
VALUES ('I1', 'B30', 'T30', '7890', '05-FEB-2015');
INSERT IN history_table
VALUES ('I2', 'B40', 'T20', '1234', '01-JAN-2015');
SELECT *
FROM history_table
CREATE TABLE transaction1()txn_code VARCHAR()80),txn_type VARCHAR()80));
INSERT INTO transaction1
VALUES ('T1', 'IN');
INSERT INTO transaction1
VALUES ('T20', 'OUT');
INSERT INTO transaction1
VALUES ('T30', 'ALL');
INSERT INTO transaction1
VALUES ('T40', 'ALL');
INSERT INTO transaction1
VALUES ('T50', 'IN');
INSERT INTO transaction1
VALUES ('T60', 'ALL');
INSERT INTO transaction1
VALUES ('T70', 'ALL');
INSERT INTO transaction1
VALUES ('T80', 'IN');
INSERT INTO transaction1
VALUES ('T90', 'IN');
SELECT *
FROM transaction1
CREATE TABLE in_table_head_1()h1_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
CREATE TABLE in_table_head_2()h2_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
CREATE TABLE in_table_head_3()h3_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
INSERT IN in_table_head_1
VALUES ('H1ID1', 'T1', '1234', '01-JAN-2015');
INSERT IN in_table_head_1
VALUES ('H1ID2', 'T70', '1234', '01-FEB-2015');
INSERT IN in_table_head_2
VALUES ('H2ID1', 'T30', '4567', '03-FEB-2015');
INSERT IN in_table_head_2
VALUES ('H2ID2', 'T60', '1234', '03-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID1', 'T50', '1234', '02-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID2', 'T80', '1234', '03-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID3', 'T90', '1234', '05-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID4', 'T40', '1234', '05-AUG-2015');
CREATE TABLE in_table_item_1()i1_sys_id VARCHAR2()80) PRIMARY KEY,
h1_sys_id VARCHAR2 (80) REFERENCES in_table_head_1()h1_sys_id),item_code VARCHAR2()80));
CREATE TABLE in_table_item_2()i2_sys_id VARCHAR2()80) PRIMARY KEY,
h2_sys_id VARCHAR2 (80) REFERENCES in_table_head_2()h2_sys_id),item_code VARCHAR2()80));
CREATE TABLE in_table_item_3(i3_sys_id VARCHAR2(80) PRIMARY KEY,
h3_sys_id VARCHAR2 (80) REFERENCES in_table_head_3()h3_sys_id),item_code VARCHAR2()80),
bat_no VARCHAR2 (80));
INSERT IN in_table_item_1
VALUES ('I1ID1', 'H1ID1', 'I1');
INSERT IN in_table_item_1
VALUES ('I1ID2', 'H1ID1', 'I100');
INSERT IN in_table_item_1
VALUES ('I1ID3', 'H1ID2', 'I3');
INSERT IN in_table_item_2
VALUES ('I2ID1', 'H2ID1', 'I1');
INSERT IN in_table_item_2
VALUES ('I2ID2', 'H2ID1', 'I200');
INSERT IN in_table_item_2
VALUES ('I2ID3', 'H2ID2', 'I2');
INSERT IN in_table_item_3
VALUES ('I3ID1', 'H3ID1', 'I2','B50');
INSERT IN in_table_item_3
VALUES ('I3ID2', 'H3ID2', 'I4','B40');
INSERT IN in_table_item_3
VALUES ('I3ID3', 'H3ID3', 'I4','');
INSERT IN in_table_item_3
VALUES ('I3ID4', 'H3ID4', 'I6','');
SELECT *
FROM in_table_item_1
SELECT *
FROM in_table_item_2
SELECT *
FROM in_table_item_3
CREATE TABLE in_table_batch_1()b1_sys_id VARCHAR2()80) PRIMARY KEY,
txn_code VARCHAR2 (80), doc_no VARCHAR2 (80), bat_no VARCHAR2 (80));
CREATE TABLE in_table_batch_2()b2_sys_id VARCHAR2()80) PRIMARY KEY,
i2_sys_id VARCHAR2 (80) REFERENCES in_table_item_2()i2_sys_id),bat_no VARCHAR2()80));
INSERT IN in_table_batch_1
VALUES ('B1ID1', 'T1', '1234', 'B1');
INSERT IN in_table_batch_1
VALUES ('B1ID2', 'T70', '1234', 'B70');
INSERT IN in_table_batch_2
VALUES ('B2ID1', 'I2ID1', 'B30');
INSERT IN in_table_batch_2
VALUES ('B2ID2', 'I2ID2', 'B90');
INSERT IN in_table_batch_2
VALUES ('B2ID3', 'I2ID3', 'B60');
Please advise a solution for the same.
Thank you and best regards,
Séverine Suresh
very forced (question subfactoring used to allow easy testing/verification - could work with these test data only)
with
case_1 as
(select s.item_code,
s.bat_no,
h.txn_code,
h.doc_no,
h.updt_dt boe_dt,
cases where s.bat_no = h.bat_no then 'Y' else ' n end batch_yn.
cases where h.txn_code is not null
and h.doc_no is not null
and h.updt_dt is not null
then 'case 1' '.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, boe_dt
of w_stock_table
where bat_no is null
or txn_code is null
or doc_no is null
or boe_dt is null
) s
left outer join
w_history_table h
On s.item_code = h.item_code
and s.bat_no = h.bat_no
and exists (select null
of w_transaction1
where txn_code = nvl (s.txn_code, h.txn_code)
and txn_type in ('IN', 'ALL')
)
),
case_2 as
(select s.item_code,
NVL (s.bat_no, h.bat_no) bat_no.
NVL (s.txn_code, h.txn_code) txn_code.
NVL (s.doc_no, h.doc_no) doc_no.
NVL (s.boe_dt, h.updt_dt) updt_dt.
cases where s.bat_no = h.bat_no then 'Y' else ' n end batch_yn.
cases where h.txn_code is not null
and h.doc_no is not null
and h.updt_dt is not null
then 'case 2'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, boe_dt
of case_1
where refers_to is null
) s
left outer join
w_history_table h
On s.item_code = h.item_code
and exists (select null
of w_transaction1
where txn_code = nvl (s.txn_code, h.txn_code)
and txn_type in ('IN', 'ALL')
)
and not exists (select null
of case_1
where item_code = h.item_code
and bat_no = h.bat_no
and txn_code = h.txn_code
and doc_no = h.doc_no
and updt_dt = h.updt_dt
)
),
case_31 as
(select s1.item_code,
NVL (S1.bat_no, W1.bat_no) bat_no.
NVL (S1.txn_code, W1.txn_code) txn_code.
NVL (S1.doc_no, W1.doc_no) doc_no.
NVL (S1.updt_dt, W1.doc_dt) updt_dt.
cases where s1.bat_no = w1.bat_no then 'Y' else ' n end batch_yn.
cases where w1.txn_code is not null
and w1.doc_no is not null
and w1.doc_dt is not null
then "case 31'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s1
left outer join
(select i1.item_code, h1.txn_code, h1.doc_no, h1.doc_dt, b1.bat_no
of w_in_table_item_1 i1
inner join
w_in_table_head_1 h1
On i1.h1_sys_id = h1.h1_sys_id
inner join
w_in_table_batch_1 b1
On h1.txn_code = b1.txn_code
and h1.doc_no = b1.doc_no
) w1
On s1.item_code = w1.item_code
),
case_32 as
(select s2.item_code,
NVL (S2.bat_no, W2.bat_no) bat_no.
NVL (S2.txn_code, W2.txn_code) txn_code.
NVL (S2.doc_no, W2.doc_no) doc_no.
NVL (S2.updt_dt, W2.doc_dt) updt_dt.
cases where s2.bat_no = w2.bat_no then 'Y' else ' n end batch_yn.
cases where w2.txn_code is not null
and w2.doc_no is not null
and w2.doc_dt is not null
then "case 32'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s2
left outer join
(select i2.item_code, h2.txn_code, h2.doc_no, h2.doc_dt, b2.bat_no
of w_in_table_item_2 i2
inner join
w_in_table_head_2 h2
On i2.h2_sys_id = h2.h2_sys_id
inner join
w_in_table_batch_2 b2
On i2.i2_sys_id = b2.i2_sys_id
) w2
On s2.item_code = w2.item_code
),
case_33 as
(select s3.item_code,
w3.bat_no,
NVL (S3.txn_code, w3.txn_code) txn_code.
NVL (S3.doc_no, w3.doc_no) doc_no.
NVL (S3.updt_dt, w3.doc_dt) updt_dt.
cases where s3.bat_no = w3.bat_no then 'Y' else ' n end batch_yn.
cases where w3.txn_code is not null
and w3.doc_no is not null
and w3.doc_dt is not null
then "case 33'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s3
left outer join
(select i3.item_code, h3.txn_code, h3.doc_no, h3.doc_dt, i3.bat_no
of w_in_table_item_3 i3
inner join
w_in_table_head_3 h3
On i3.h3_sys_id = h3.h3_sys_id
) w3
On s3.item_code = w3.item_code
)
Select item_code, bat_no, txn_code, doc_no, boe_dt, batch_yn
of case_1
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_2
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn,
ROW_NUMBER() over (partition by item_code of updt_dt desc order) rn
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_31
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_32
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_33
where refers_to is not null
)
)
where rn = 1
ITEM_CODE | BAT_NO | TXN_CODE | DOC_NO | BOE_DT | BATCH_YN |
---|---|---|---|---|---|
I1 | B1 | T1 | 1234 | JANUARY 3, 2015 | THERE |
I1 | B30 | T30 | 7890 | FEBRUARY 5, 2015 | N |
I2 | B60 | T60 | 1234 | JANUARY 3, 2015 | N |
I3 | B70 | T70 | 1234 | FEBRUARY 1, 2015 | THERE |
I4 | - | T90 | 1234 | JANUARY 5, 2015 | N |
I6 | - | T40 | 1234 | AUGUST 5, 2015 | N |
Concerning
Etbin
Maybe you are looking for
-
Sorry for the long question. The issue is that totally impossible to install Firefox 9.0.1, so it can be used by the two user accounts on this desktop computer. I tried several times to download the update and install when running the second user acc
-
Filter of keyboard for Windows 7
Which continues with the release of a filter of compatible keyboard for Windows 7. I use the full retail version, not beta. I have a dv5-1235dx.
-
Hard drive Compitabilty for Qosmio G20
Hi I have a Qosmio G20-139 with a drive of 80 GB H., can I use a standard 2.5 "in this laptop or what model should I use? I noticed that the connector of the standard 2.5 "is different from the one installed in the G20-139
-
My Apple iBook G3 can not connect to the internet. It backs do not detect local networks. Apple does not support it as it is "obsolete". Verizon could not help me. It should automatically detect the local Wi - Fi networks and give me the option of th
-
How can I hide the photos in my iPhone... Or lock an application
How to hide the photos I have my phone nd I asking for too much...