Transfering a struct in a struct form LabVIEW to a dll and get it back to LabVIEW

Hi everyone,
actually I've a big problem.
I'm calling a dll function through LabVIEW. The called function is defined isw defined as followed:
fcbGetEnumFlexCards( fcInfo** pInfo);
fcInfo is a struct:
typedef struct fcInfo

fcDword FlexCardId;
fcVersion Version;
fcInfo* pnext;
} fcInfo;
The Parameter fcDword is an unsigned int 32, but the Parameter Version which is decleared as fcVersion is also a struct:
typedef struct fcVersion

fcVersionNumber BaseDll;
fcVersionNumber DeviceDriver;
fcCCtype CCType;
fcDword Reserved[4];
} fcVersion;
but the next Problem is that the fcVersionNumber declaration is also a struct:

typedef struct fcVersionNumber


fcDword Major;

fcDword Minor;


My first thought to solve the Problem was to build a cluster in a cluster, in a cluster and then pass it to the C-Function.

That worked without any Problem, but all defined Parameters in the Cluster were still unwritten except the first one?!

But I know that all the other parameters should be written too?

Is �there any possibility to solve this probleme through LabVIEW?


Thanks for helping....
7/21/2006 9:10:08 AM
comp.lang.labview 35213 articles. 1 followers. vasusachin24 (1) is leader. Post Follow

0 Replies

Similar Articles

[PageSpeed] 8


Similar Artilces:

build a DLL in LabVIEW & Use the DLL in LabVIEW
I am trying to build a DLL for the simple vi with LabVIEW and want to use the DLL in LabVIEW. is it impossible?   I wrote a vi and it have 2 terminals. one is the input for numeric dbl data type and one another is the output for numeric dbl 1D array data type.   It was built with the Application builder for LabVIEW 8.0 and DLL was created successfully.   I want to use this DLL in new vi with LabVIEW.   Call library function used. I wrote a new vi to use that DLL.   In config dialog I config each parameter for dll and connected terminals. but it doesn't work   pleas refer to the attatched file and let me know what I missed.   Array1D.zip: http://forums.ni.com/attachments/ni/170/235977/1/Array1D.zip ...

Calling a LabView DLL from a Labview VI
Hi, I have a vi that is calling a Labview DLL and they both have a same subVI. If I drop that SubVI into the block diagram first then drop in the Call Library Function Node, when I run the VI, the DLL would not work and it did not give me any error. Does anyone know how fix this problem with Labview? or is there some configuration that I can force the all of that SubVI points into the DLL. Thanks for your help, Dan ...

change a LabVIEW array outside LabVIEW and keep updated in LabVIEW
change a LabVIEW array outside LabVIEW and keep updated in LabVIEW hi, I am Interfacing a FrameGrabber with LabVIEW using a frame grabber SDK(dll). The memory managment of this FG allow you to allocate your own Array and to give a pointer to this Array to the memory manager. Then when you acquire with the frame grabber, the acquired image will be directly accessible in your array. 1.I give to the FG memory manager a pointer to the Labview array through a SDK Dll function. 2. I run the acquisition 3. I display the array My problem is that the Array is allways displayed with it initial val...

Is LabVIEW Runtime required for a DLL created by LabVIEW ?
Hi   Could some one advice me on this matter please. I am trying to build a DLL for a set of functions created in LabVIEW. Now I am  wondering if I need to use it with some other language like VB or C++, do I need to install the LabVIEW runtime of the same version as the original functions ?   Any settings required while creating the DLL ? I am trying to create it in LV 7.0   Thanks in advance Deepu.   Hi Deepu, yes, if you want to use a dll, which is created with LabView you have to install the runtime engine. Mike Alright Mike, Thanks ! I was hoping it would work without the LabVIEW runtime. Anyway, thanks for the quick reply. Rgds Deepu. ...

labview crashing when calling labview-built dll
Hello I need some help with regard to calling a LabVIEW-built DLL in LabVIEW.I have created a vi in LabVIEW. I made the DLL for this vi. I called this VI as a re-entrant in another vi.This vi(calling DLL) has been working fine till yesterday. Since yesterday, it started crashing LV.I need some help in this regard.I am attaching the screenshots of the Application Builder configuration window, the B.D of the vi using DLL and that of the configuration window which pops up when i call the DLL.I made a vi which performs FRA. I built its DLL.I have around 10 inputs. I output 3 one-dimensional arrays, and a string from the DLL.When i build the DLL, the builder defines the outputs 'gain', 'phase' and 'frequency' as arrays of 8-byte double.When i call this DLL in my vi, the configuration window sets them as 'numeric' outputs.Why does this happen? What is the solution to this?When i try to set them as 'array' in this configuration window, i get a warning that i am trying to change the data types which do not match with the data type found in the DLL. Is this the problem with my code or with the Application Builder?Now, after i change the 3 output datatypes to Arrays, and set their minimum length(i assumed that this value means the size of the array ), the vi runs and crashes LV. I am nto sure when it crashes, why it crashes. It runs fine at one time. It crashes at another time. I am nto sure if these arrays are teh reason why L...

Error 1073 when building LabVIEW app which calls LabVIEW dll
I am trying to use application builder to build an application that calls a dll created in LabVIEW. I get an error referencing a vi within the dll (Parse Stored String(multibyte).vi) saying that "This property is writable or this method is available only when the VI is in edit mode." The only option is to Continue which cancels the build. I had sucessfully built this application prior to including vis that call the dll and the program runs fine in the development environment. Do you have any idea what is causing this and what I cam do about it? I have found a temporary workaround i...

Labview Dll call library function Causing Labview to unload
I am trying to use the Call Library function in Labview 7.1 to call an Init function for a Zathic Can4USB device. When I run the vi, it complete log LabView out of the computer. Can anyone tell me why the function totally unloads LV without displaying an error?   Thanks Either the function has a serious bug or you are calling it with invalid parameters or wrongly setup parameters. The problem happening here is that your DLL passes somehow invlid parameters to a system device driver and that driver causes a protection fault. For device driver execeptions which happen in the privileged...

Re: LabVIEW and LabVIEW RT?
Hello Iman, I will try to illustrate it with an example since it all will depend on the type of application you would like to implement. Let's say you would like to implement an application where you log data, maybe exchange data with databases and you acquire a bunch of data points at a time not performing any type of control and where high determinism is not needed. In this case LabVIEW for Windows work great. If you on the other hand would like to implement a closed-loop application where you need high determinism and reliability and will acquire data point by point you would use LabVIEW RT which is an add-on to LabVIEW. I.e. you need LabVIEW + LabVIEW RT when developing an RT application. ...

If i have a labview .vi file(and labview) but i want to open it in a computer that doesn't have labview, how would i do it??
Okay, i have a made a labview program and save it as.vi.   Let's say that it is a program that when opened and you hit run it shows a sine wave.   Now if i wanted to open up the program without Labview, ( i don't need to modify it) on a computer that doesn't have labview. How would i go about doing this??   Thanks, K ...

How to pass a struct to LabView
I have a LabVIEW application that reads data from SCRAMNet card and process/display data to front panels.&nbsp; &nbsp; NI provides SCRAMNET.llb (a set of VIs using Call Library Function Node) to call read/write functions in a vendor provided DLL that supports SCRAMNET card.&nbsp; But the problem is that every time to get the data from the card in LabVIEW, you have to provide specific memory offset to call the read/write VIs in SCRAMNET.llb.&nbsp; Dealing with offset values to get data seems cumbersome. &nbsp; &nbsp; We have struct data type defined in a header file for the program that writes data to the SCRAMNET card. &nbsp;I am just wondering if there is something I can do in LabView that the DLL returns the struct as a pointer and load it to a cluster so that I can access the SCRAMNET struct data via accessing each element of the cluster.&nbsp; If it is possible, is it an easy thing to do or not.&nbsp; &nbsp; Thanks for your advice in advance! If you cast your Struct to a byte array, so you can unflatten this array to a (similar) cluster in LabVIEW and&nbsp;ariive&nbsp;each element of your DLL-Struct. Do you have a specific topic or example in the website <a href="http://www.labviewtutorial.eu/" target="_blank"> LabVIEW Tutorial </a>&nbsp;you referred to?&nbsp; Thanks! Sorry, that's my signature and no reffering for this topic.&nbsp;But I think there is no problem to p...

Getting an old Labview 4.1 prog working with Labview 8
Hi, We've an old program for a mass flow controller that was written in labview version 4.1, however labview ver. 8 does not seem to recognise many of the functions, such as AI Clear and AI read. There does not seem to be a problem with Labview 6 recognising the old program. In short I am wondering if there is some quick fix or if the best thing to do is to uninstall ver.8, and install ver. 4.1. :robotsad:Regards,Harry Hi Harry, did you save it with LV6? Mike I am not sure what you mean. If you mean... did I load the version 4.1 program into version 6, save it, and then load it into 8? No I didn't think of that. Do you think that should work?I am unclear as to whether an old program is supposed to work in a later version automatically (in which case I have some other problem), or if its usual that there needs to be some changes made. Ok... I just tried saving it in 6 and then trying to open it in 8.2. It still doesn't work. Very bizzare the way it searches for the "bread and butter" VIs like AI Read, clear etc. Is there any reason why I shouldn't un-install the 8.2 and return to 4.1?? Say issues with 4.1 recognising the card or some such? Your only problem is that you did not install traditional DAQ. By default, the only driver installed is DAQmx but the older driver is on the device drivers CD. Install that or you can replace the old functions with DAQmx functions. Cheers Dennis, I'll have a crack at that! Harry &nbsp; &nbsp; ...

Hi ALL, I am a new user of LabVIEW. I have been assigned to acquire a signal from a sensor at a car. However, all these signals must be filtered. But I am not sure, what type of filter most powerful. Besides, as I know, different type of signal needs differenct type of filter. Anybody can help me to solve my problems. Your kind cooperation is highly appreciated. Regards, M. Firdaus, France Fird wrote: > Hi ALL, > I am a new user of LabVIEW. > I have been assigned to acquire a signal from a sensor at a car. > However, all these signals must be filtered. ...

How can I calling LabView DLL within LabView and pass similar Data Types?
--5972977.1071582281832.JavaMail.quiq.tekken Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I am trying to use an Instrument Driver, which is created in LabView6.1 as a DLL. At this point I have only LabView to test this DLL. I was wondering, is there easy way to find out what sort of Parameter or Data Type I should be using. How can I pass the following data with in LabView: LVRefnum as Type? LVBoolean as Type? TD1 (a structure) as Type? It is funny to see that I am able to create a DLL in labview but having trouble calling it within LabView. I th...

Debugging a C++ dll from LabVIEW
Hello all, &nbsp; What I want to get a feel for is how easy it is to set up the ability to debug code both in labVIEW AND in a C++&nbsp;compiler, say Visual Studio. &nbsp; If we have a situation where we have a c++ dll which we are accessing from labVIEW is it possible to attach the process so that you can set breakpoints in both environments. Hence run labVIEW app and when dll gets called hit a Visual Studio breakpoint? &nbsp; This is a new area to me and I have not found anything regarding debugging. Any comments would be appreciated. &nbsp; Regards &nbsp; Kevin Hi,...

How can I get handle(s) to and poll non-LabVIEW window(s)/application(s) from LabVIEW?
Want to launch&nbsp;EXE from LabVIEW, wait for user to finish with EXE's UI, and once they closed it, return execution flow in LabVIEW. Cool, no problem. Used the System Exec VI and with the "wait until completion" = TRUE the EXE never launches. Not sure why. With the "wait until completion" = FALSE, the application runs with no problems, but now LabVIEW no longer waits.&nbsp; Can't tell when user is done. Work around idea... Once the Sys Exec VI launches the EXE, wait&nbsp;and poll some Windows API call to see when the window for the specific EXE closes. Cool. I know G and no C.&nbsp; What I would ideally like is a DLL, that I can wrap with the DLL Import Wizard.&nbsp; Of course best would be a VI and the wrapped API call. Any ideas? You could try it with a pipe. With a pipe you can open an exe, and interact with it through a read and write reference. Although in your case the exe might not start, since the normal sysexec doesn't start it... http://forums.ni.com/ni/board/message?board.id=170&message.id=270461&requireLogin=False Regards, Wiebe. ...

how to make my labview codings as a package for labview
Hello NI, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I made drivers for some thrid party instruments, which is compatable for serial port and&nbsp;Ethernet.&nbsp;I have several vi's for that i cant able to share these vi's to my friends. i just want to build one package of my driver, also i want to install these package to labview user library. &nbsp; Tell me some good suggestion for this. &nbsp; With&nbsp;warm regards, Balaji DP Application Engineer, Gantner&nbsp;Instruments.&nbsp; The easiest way is to do a development distribution (File&gt;&gt;Save As. If your needs are more complex, you can also try <a href="http://jkisoft.com/vipm/" target="_blank">VIPM</a>. I don't&nbsp;think the free version can do this, but it's worth it just for getting the OpenG code. where i can find this development distribution ? is there option available in labview? If you re using LV versions &gt; 7.x, you can create an LLB by using the option Save As... in the Files menu. You have to just open the top-level VI of that driver (or something) &amp; go on to build the LLB. All other VIs will get added/bundled into it automatically. :smileyhappy: In LV 7.x, I think it ll be under the Tools &gt;&gt; Build Source Distribution menu... balaji_dp@yahoo.com wrote:Hello NI, &nb...

Installation of LabView 8 after LabView 6
Good afternoon everybody, &nbsp; I've got a big problem with LabView. The fact is that I begin with this software... I've just installed LabView 8 on a computer where LabView 6 was installed. Once the installation finished, I tried to launch a VI That was developped under the old version. &nbsp; The problem is that two VI can't be found : - AI Sample Channel.vi - AI Acquire Waveform.vi Therefore, I can't use anymore the program that was working before... What is the solution to get everything ok please ? Thank you very much ! SylvianTriquigneaux, the VI will now be opened in LV 8 instead of LV 6. So you need all the components which have been used during developement in 6 in 8 as well. The VIs you are missing are from the DAQ-driver. Since the DAQ-driver has been rewritten in the times of LV 7, the new driver is called DAQmx. This one is not available for LV 6, but is the driver which is currently installed with LV (if you installed it with the drivers at all...). The "old" driver has been changed a little and named "traditional DAQ" nowadays. You should find the missing VIs in the API from the trad. DAQ. So i asume that everything you have to do is: install trad. DAQ. You can find a downloadable version <a href="http://search.ni.com/nisearch/nisearchservlet?nistype=default&amp;filter=+%2BProductLine%3A41+%2BDownloadType%3A%22Traditional+NI-DAQ+%28Legacy%29%22+%2BVersion%3A%227.4.2%22+%2Bcontentformat%3Asoftwarel...

Labview.lib was not calld from a labview process
I am working with our labview programers to create a Labview DLL that will be called from Labview and VB6. The code works fine with Labview but I keep getting Fatal Error: Labview.lib was not calld from a labview process. I have checked the versions of development software and the runtime versions that we are using and they matche 8.0.1. We have also preformed a mass compile of the DLL with no change. &nbsp; Are there any other steps that we can take to solve this problem??? &nbsp; &nbsp; <a href="http://digital.ni.com/public.nsf/allkb/A4C3AEF93240280A86256931006FB66C?OpenDocument" target="_blank">http://digital.ni.com/public.nsf/allkb/A4C3AEF93240280A86256931006FB66C?OpenDocument</a> &nbsp;Just to make sure you know of this article, I hope its a new one and else we can look further.<a href="http://www.groupsrv.com/computers/about566915.html" target="_blank">http://www.groupsrv.com/computers/about566915.html</a> Another discussion regarding the same error message.<a href="http://digital.ni.com/public.nsf/allkb/A4C3AEF93240280A86256931006FB66C?OpenDocument" target="_blank"></a> Message Edited by andre.buurman@carya on 06-04-2008 08:02 PM <a href="http://forums.ni.com/ni/board/message?board.id=170&amp;message.id=127655&amp;query.id=62975#M127655" target="_blank">http://forums.ni.com/ni/board/message?board.id=170&amp;message.id=...

How to save in labview 7, from labview 8
Need to open my LV 8 VI in LV7, due to different plattforms... &nbsp; How do I make it possible? Hi, You will have to save out your VI&nbsp;using LabVIEW 8 first, select the Save with options. Then you can select the previous version, which probably is 7.1. ( You will have to repeat the procedure using LV7.1) If you have used any of the new functions and featured in your VI(s), then these will be lost when you save backwards. Hope this helps Regards Ray Farmer Hi Ray, 1) I was just trying your advice on my system and I don't see 'Save with Option' .&nbsp; There is Save, and Save As.. 2) I have a llb file and I wish to know which version it is...how can I find out?&nbsp; (I'm using 8.01).&nbsp; I suspect it is 7.1 and I get bunch of errors when it opens. 3) If the vi is 7.1, will LabView automatically convert it to 8.0? Thanks Rafi &nbsp; p.s. I'm mainly a CVI developer, and apologize for the "basic" questions... Rafi, Thats the trouble when you dont have labview in front of you. Looking at the manual chapter 7-7, there should, be under menu item File a 'Save&nbsp;For Previous Version'. I think under the VI Properties, under the change history,&nbsp;you should be able to find out what version it is. LabVIEW will try to convert automatically, but there are some issue that it cannot cope with. The release notes should identify these. Regards Ray Farmer &nbsp; ...

Help needed: Can anybody convert a hit7104g.llb from LabView 7 into a dll for LabView 6.1??
Gents, I am an absolutley beginner in LabView, but working very hard on it to get a progress.I"ve got great help here at this pages how to find out the first steps installing 2 DSO Scopes Hitachi VC-7104, which are connected via PCI-GPIB.Equipment, settings&nbsp; and communication inside the automation explorer is working perfect.I found a free LabView version inside a PC Magazine, its the LabView 6.1 and I want to let them communicate with my DSO's.There is a driver available but for only for the LabView 7 version.Can anybody convert this file and explain to me how to install it later at LabView 6.1 ??I would be very happy, because my old method was writing data's into the PCMCIA-SRAM card at the DSOand pull out it for reading outit later in a PC, crazy method.Best regards from Germany!Thomas hit7104g.llb: http://forums.ni.com/attachments/ni/170/343224/1/hit7104g.llb I am converting them. Will post soon R Ok, great!!!Many THX !!Meanwhile I read more in the LV6.1 manual.Thomas A bit messy since I was trying to do it quickly, but all the files should be in LV6.1 in their respective folder. Let me know how it goes. R &nbsp; Converted to LV6.1.zip: http://forums.ni.com/attachments/ni/170/343390/1/Converted to LV6.1.zip Joe, Moved all folders from your file into the folder C:\Programme\National Instruments\LabVIEW 6.1\instr.lib,same path were the HP34401 instrument is.Then tried a function, like the GO NOGO function and now the communicaton is perfec...

How to transfer data from MS Excel to labview & Add check boxes and transfer back to excel?
i have some data in the form of quetions with check boxes and text fields in Ms Excel. i want them to be transferred to Labview 8 using program and answer the questions in labview and transfer the answers into Ms Excel spread sheet. Can anyone please help me on these. i m just a beginner and not much familiar to labview. I will be grateful If anyone please post a similar code . Liju Hiii, Liju &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You can refer to the post <a href="http://forums.ni.com/ni/board/message?...

Error Code &quot;1097.....this might corrupted LABVIEW's memory..........&quot; appears after exit the labview and re-start labview
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I have a probelm when I use the "tool/import shared library(.dll)" wizard&nbsp;to generate the&nbsp;API from C. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The API &nbsp;works correctly when I complete the wizard, but after I exit labview and re-start labview to run&nbsp;the API&nbsp;again. The error 1097 code "......this might corrupted LABVIEW's memory.............."appears. &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The only solution now is to re-generate or update the wizard to&nbsp;generate the API. &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I try to find the answer in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://digital.ni.com/public.nsf/allkb/58596F5D41CE8EFB862562AF0074E04C?OpenDocument" target="_blank">http://digital.ni.com/public.nsf/allkb/58596F5D41CE8EFB862562AF0074E04C?OpenDocument</a>&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The paragraph in above article shows ........................... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "LabVIEW does not crash until it is closedThe most likely problem is that the DLL function being called has corrupted th...

DLL in Labview
Hi, I have a great problem and I hope someone can help me. I am trying to include a dll in Labview 7.1. The dll was made in Matlab and represents a biochemical simultion - means a system of differential equation. I included in Labview with this libary node - but the programme is not doing anything - I mean the Labview programme is running without problem, but it is not calculating anything. And I have no idea what the actual problem is. So I hope somebody could help me. nice greetings, Alex ...

Should I call C from LabVIEW or call LabVIEW from C?
I need to write some software and am trying to choose the best development environment. I currently use Borland C++ Builder to develop most of my software and have also used some LabVIEW occasionally. The new package I need to write has to provide several functions, some of which would be better in C++, some in LabVIEW and I am wondering whether to combine the two. So far, I have had a quick play around and called a very basic piece LabVIEW code, built into a dll, from some C++ code. I am about to try to reverse (create dll in C++ and call from LabVIEW) but would appreciate some advice on the advantages/disadvantages of each method. &nbsp; Restrictions I have: 1. I will (probably) be using some hardware which will be supplied with C++ driver functions only. My interface with this card is the 'heart' of my system and is time-critical. Also, I need to assign a pointer to pass to this card (could I do this in LabVIEW?) 2. I wish to analyse data from the card using FFT and related functions so would ideally use the LabVIEW Sound &amp; Vibration and Order Analysis toolkits. I need to use these in real-time where the data sampling rate is fairly high (frequency analysis to be done on 4 channels at once with each channel sampled at approx 100kHz). &nbsp; To add to this, I would like to be able to create/modify the display screen at run-time - something which I am fine with in C++ but understand is very difficult in LabVIEW (I have only used LabVIEW for relatively...

Web resources about - Transfering a struct in a struct form LabVIEW to a dll and get it back to LabVIEW - comp.lang.labview

Helicopter Transfering Lineman to Wire - YouTube
Helicopter transfers linemen to the wire for energized insulator change-outs.

Nintendo details official process for transfering data to your New 3DS
Since the New 3DS is almost out, a lot of us are probably wondering how to copy over data from the old system both on-board data and save files ...

Terry Larrier is transfering to UConn
Terry Larrier, once a top 50 recruit, is leaving VCU to play for Kevin Ollie at UConn after just one season. The UConn Huskies went from National ...

Transfering magnetic fields across long distances
A Catalan, German and Austrian group of physicists has developed a new technology to transfer magnetic fields to arbitrary long distances, which ...

Fifa secretary general Jerome Valcke accused of transfering money central to bribe case
US prosecutors allege Sepp Blatter's deputy is connected to the bribery scandal engulfing football's governing body

User:Aeusoes1 - Wikipedia, the free encyclopedia
This is a Wiki pedia user page . This is not an encyclopedia article but maybe it should be one. If you find this page on any site other than ...

RealPlayer SuperPass - Premium Player with TV &amp Movies - 14-day Free Trial
FREE 14-day Trial RealPlayer SuperPass - Your trial of RealPlayer SuperPass is FREE. You can cancel anytime, or continue to enjoy all the features ...

Life of a Lab Rat
Dear Reader,this entry is a bit of a rant. I started writing about one thing, and finished up on a different road. But I think the final destination ...

Back to Roads site Home About Contact us Online Tutorials Print this page Print this page Decrease Text Size Increase Text Size Change text size ...

On-Site PC Repair Specialists ** Techs-on-Call
Techs-on-Call is an on-site computer repair company. We come to you for all your computer services. Customer satisfaction is our priority.

Resources last updated: 3/28/2016 10:17:59 PM