Help needed setting up Related Content in HCM 9.1 PeopleTools 8.51
I need some help setting up Related Content in HCM 9.1 PeopleTools 8.51.
I created a new service id in "Define Related Content Service". Its simple, it basically goes to google.com.
Then I assigned Related Content to Application Pages on the "Manage Related Content Configuration" page. I'm my scenario I added it to Careers right under the root menu.
Then I went to the careers page, but the "related information" link doesn't appear. How do I get that related information link to appears in the top of the component/page?
Thanks,
-Cory
In order to get this to function, there are some baseline server configuration requirements that you need in order for it to work.
1) Define the authentication Domain on the webserver
2) Define the authentication Domain on the web profile
3) Enable Single Sign-On
The following document in 'My Oracle Support' will provide you with the details on configuration related content services.
E-PORTAL: How To Configure Related Content Service. [ID 984855.1]
In addition here is a link to the online PeopleBooks that discusses the configuration of the related content services.
http://download.oracle.com/docs/cd/E18083_01/pt851pbr0/eng/psbooks/tprt/book.htm?File=tprt/htm/tprt20.htm#H3002
In addition, there are also some know limitations on the use of related content that are different dependent on the tools version you are using.
Hope this helps.
Similar Messages
-
I just upgraded my wife's USB wireless adapter to a Linksys WUSB54G which supports WPA. When I try to invoke WPA personal from my macmini, I get a message that reads that my macmini is not WPA capable. Both machines are attached to an Air Extreme. The airport is running 5.5.1. I'm running 10.4.2 on the macmini.
Do I need to install Airport 4.1 software on my computer? I understand from various posts that 4.2 should be avoided. The PC has service pack 2 on it and should be WPA ready. Any help is appreciated.
SteveIn order to get this to function, there are some baseline server configuration requirements that you need in order for it to work.
1) Define the authentication Domain on the webserver
2) Define the authentication Domain on the web profile
3) Enable Single Sign-On
The following document in 'My Oracle Support' will provide you with the details on configuration related content services.
E-PORTAL: How To Configure Related Content Service. [ID 984855.1]
In addition here is a link to the online PeopleBooks that discusses the configuration of the related content services.
http://download.oracle.com/docs/cd/E18083_01/pt851pbr0/eng/psbooks/tprt/book.htm?File=tprt/htm/tprt20.htm#H3002
In addition, there are also some know limitations on the use of related content that are different dependent on the tools version you are using.
Hope this helps. -
Help needed setting up print server
i got 2 printer:
1 usb inkjet epson 1290
1 hp5100 network
i have 1 server:
serving epson for our col proof using powerripx as driver and shared via os x print server
i have 2 network interface card on the server.
my problem is: the position of the server in the office has only one network interface port, i want to have my HP connected to the 2nd network interface of the server and the server connected to the only available network point there and thus have the server serving both printer.
have set up the en1 interface, enable NAT, dhcp, firewall, but the server itself does not recognised the hp which is connected to the 2nd ethernet interface. when i move it on top of the ethernet list in system preferences it does recegnised it but the the whole print server is not accessible on the network.
can someone with more experience help me set this up.
thxI didn't say it's impossible. I just offered an easy solution to your problem that will save you and you users some hassle in the long run (eg. when you come to troubleshoot you wn;t have to look at 2 networks and a firewall). I guess I just like easy solutions. And ,dude, 20 bucks...
If you want to go the hard(er) way you need to:
1. set up a second network address range on the second card
2. give the printer a fixed IP address within that range
3. ensure firewall is not blocking packets from/to the printer
4. config the printer on your print server & clients
hth,
b. -
Help Needed Setting Up IMAP Relay?
I an currently maintaining an OS X 10.4.11 Tiger server, running on a PowerMac G4 Mirror.
Currently, we have our mail setup through our isp via pop (they do not offer imap). All of our employees have set up several access points to the pop server (i.e. home, office, smart phone, etc.). However, the problem arises that as each device is maintaining its own mail, when accessing mail on each device, mail read on one device still shows as unread on the others. As well as, any mail sent from one device, does not exist on the others.
To eliminate the duplication, and missing mail, I thought setting up an imap server would keep all devices in sync.
My thought is, collect all the mail from the isp pop server, onto the OS X server and then have the employees access only the imap server from all the devices.
i.e.
Setup imap server
setup imap server to download mail from pop server, and save in the appropriate account.
setup all client mail accounts to access imap server.
I have been able to set up the imap server without any issues, however, I have not been able to figure out how to get the pop server mail from the isp into the local imap database.
I hope this make sense.
I know there are free services out there that will do what we want, but we do not want to rely on an external service if it is a process we can maintain internal.
If anyone can help me set this up, or suggestions on how to approach this problem, I would be very grateful.
TIAI'd probably have a conversation with the mail ISP along the lines of "add IMAP, please" and that will either be followed by happiness, or by migrating to another mail vendor, or migrating to local mail services.
I've bucketed mail over (via imap), and it's not really a good solution; there are a number of wheels that need be kept spinning and by the time the dust settles (outages, glitches, the usual cruft), you might as well either re-host mail to to another mail ISP that offers imap (gmail, for instance), or simply run your own mail server.
Usual tools are imapsync and offlineimap, and those target (obviously) imap and not pop. (I haven't seen much that does a pop pull, but it's likely feasible.)
If you decide to host your own, you'll probably want to upgrade to something newer than the PPC gear, and you'll need to sort out your public forward and reverse DNS for your mail server, and ensure all that matches your MX record. -
Help Needed With Scrollbar and Content
I'm having a difficult time with the Scrollbar component. I'm trying to have a scrollbar set up to navigate a text field or a MC of a text field. I managed to get it functioning within the desired frame, however when I jump to another frame, that very same content appears on the other frame, despite the fact that said frame did not have the scrollbar nor the content pasted within.
The bar seems to do what I want it to do save for the unwelcomed presence outside of the frame of choice. Here's the code I'm using. This is the keyframe code:
import boppreh.ui.Scrollbar
var scrollbar1:Scrollbar = new Scrollbar(boomboom, 500, true, false, 293, bar, slider, arrowUp, arrowDown)
addChild(scrollbar1)
scrollbar1.x = 50
scrollbar1.y = 50
And this is the code found in the AS file:
package boppreh.ui
import flash.display.*
import flash.events.*
import flash.geom.Rectangle;
import flash.utils.Timer
import flash.ui.Keyboard
* Scrollbar to handle single display objects.
* Author: Lucas Boppre Niehues ([email protected])
* Date: 09/02/2010
public class Scrollbar extends Sprite {
/// The default width for the default slider, bar and arrows, as well as the default arrows' height
public static const DEFAULT_SIDE:Number = 20
/// The delay (in milliseconds) between clicking and holding an arrow and the slider moving continously
public static var SCROLL_DELAY:Number = 300
/// The number of lines to be scrolled every second during continous scrolling
public static var LINES_PER_SECOND:Number = 1.5
/// Number of pixels to be scrolled for each mouse wheel line (default lines per wheel tick is 3)
public static var PIXELS_PER_LINE:Number = 16
protected var windowSize:Number
protected var contentPadding:Number
protected var isVertical:Boolean
/// Stored movement to be applied on the next "scroll()" call
protected var movement:Number
/// Timer used to control the delay before continous scrolling
protected var timer:Timer
protected var content:DisplayObject
protected var contentBounds:Rectangle
protected var bar:InteractiveObject
protected var arrowUp:InteractiveObject
protected var arrowDown:InteractiveObject
protected var slider:InteractiveObject
protected var partHold:InteractiveObject
protected function get eventOrigin():String {
if (partHold == arrowUp)
return ScrollEvent.ARROW_UP
else if (partHold == arrowDown)
return ScrollEvent.ARROW_DOWN
else if (partHold == bar)
return ScrollEvent.BAR
throw new Error("Unkown event origin.")
private var mouseOffset:Number
protected function get maxContentPos():Number {
if (isVertical)
return -(contentBounds.height - windowSize) - 1
else
return -(contentBounds.width - windowSize) - 1
/// The content's current position, in a scale from 0 to 1
public function get position():Number {
if (isVertical)
return contentBounds.y / maxContentPos
else
return contentBounds.x / maxContentPos
public function set position(value:Number) {
value = Math.min(1, Math.max(value, 0))
var newContentPos:Number = value * maxContentPos
setPosition(content, isVertical ? null : newContentPos, isVertical ? newContentPos : null, false, false)
contentBounds = content.getBounds(this)
if (isVertical) {
bar.height = windowSize - (arrowUp.height + arrowDown.height)
slider.height = (windowSize / Math.max(contentBounds.height, windowSize)) * bar.height
var newSliderY:Number = arrowUp.height + (-newContentPos / contentBounds.height) * bar.height
setPosition(slider, null, newSliderY, false, false)
} else {
bar.width = windowSize - (arrowUp.width + arrowDown.width)
slider.width = (windowSize / Math.max(contentBounds.width, windowSize)) * bar.width
var newSliderX:Number = arrowUp.width + (-newContentPos / contentBounds.width) * bar.width
setPosition(slider, newSliderX, null, false, false)
updatePartsPositions()
* Creates a new Scrollbar object to scroll a single Display Object.
* @param content the object to be scrolled
* @param windowSize the height or width of the scrollbar, depending if it's vertical or not; i.e.: the dimension of the content's visible part
* @param isVertical defines if the scrollbar's parts should be placed on the right or bottom of the content, and if the content should be scrolled upways or to the right
* @param autoUpdate automatically checks for dimensions changes in any part and updates accordingly. Use only if the content will be resized
* @param contentPadding the distance between the content and all the other parts
* @param bar the bar object to be used; if null, a default one will be used
* @param slider the slider object to be used; if null, a default one will be used
* @param arrowUp the arrow up/left object to be used; if null, a default one will be used
* @param arrowDown the arrow down/right object to be used; if null, a default one will be used
public function Scrollbar(content:DisplayObject, windowSize:Number, isVertical:Boolean=true, autoUpdate:Boolean=false, contentPadding:Number=5, bar:InteractiveObject=null, slider:InteractiveObject=null, arrowUp:InteractiveObject=null, arrowDown:InteractiveObject=null) {
this.content = content
this.windowSize = windowSize
this.contentPadding = contentPadding
this.isVertical = isVertical
this.bar = bar || createDefaultBar()
this.arrowUp = arrowUp || createDefaultArrow(false)
this.arrowDown = arrowDown || createDefaultArrow(true)
this.slider = slider || createDefaultSlider()
timer = new Timer(SCROLL_DELAY)
timer.addEventListener(TimerEvent.TIMER, startScrolling)
addParts()
if (autoUpdate)
this.addEventListener(Event.ENTER_FRAME, update)
configureListeners()
update()
position = 0
protected function scroll(e:*= null):void {
// This nested if forbids the slider to continue moving if the user is
// "holding" the bar and the slider already reached the mouse position
if (e && (e is Event) && (Event(e).type == Event.ENTER_FRAME)) {
if (partHold == bar) {
var sliderBounds:Rectangle = slider.getBounds(this)
if (isVertical) {
if (mouseY > sliderBounds.top && mouseY < sliderBounds.bottom) {
stopScrolling()
return
} else {
if (mouseX > sliderBounds.left && mouseX < sliderBounds.right) {
stopScrolling()
return
scrollPixels(movement)
* Scrolls the content by the specified ammount.
* @param number number of pixels to be scrolled
protected function scrollPixels(number:Number):void {
position += number / -maxContentPos
protected function configureListeners():void {
slider.addEventListener(MouseEvent.MOUSE_DOWN, startSliderDrag)
for each (var part:InteractiveObject in [arrowUp, arrowDown, bar]) {
part.addEventListener(MouseEvent.MOUSE_DOWN, fixedPart_onMouseDownHandler)
addEventListener(MouseEvent.MOUSE_WHEEL, mouse_onWheelScrollHandler)
addEventListener(KeyboardEvent.KEY_DOWN, keyboard_onKeyDownHandler)
protected function fixedPart_onMouseDownHandler(event:MouseEvent):void
partHold = InteractiveObject(event.currentTarget)
if (partHold == arrowUp) {
movement = -PIXELS_PER_LINE
} else if (partHold == arrowDown) {
movement = PIXELS_PER_LINE
} else if (partHold == bar) {
var sliderBounds:Rectangle = slider.getBounds(this)
if (isVertical) {
if (mouseY > (sliderBounds.top + sliderBounds.height / 2))
movement = windowSize
else
movement = -windowSize
} else {
if (mouseX > (sliderBounds.left + sliderBounds.width / 2))
movement = windowSize
else
movement = -windowSize
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, eventOrigin))
stage.addEventListener(MouseEvent.MOUSE_UP, stopScrolling)
partHold.addEventListener(MouseEvent.MOUSE_OUT, stopScrolling)
timer.start()
protected function keyboard_onKeyDownHandler(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.UP:
case Keyboard.LEFT:
movement = -PIXELS_PER_LINE
break
case Keyboard.DOWN:
case Keyboard.RIGHT:
movement = PIXELS_PER_LINE
break
case Keyboard.SPACE:
case Keyboard.PAGE_DOWN:
movement = windowSize
break
case Keyboard.PAGE_UP:
movement = -windowSize
break
case Keyboard.HOME:
movement = 0
position = 0
break
case Keyboard.END:
movement = 0
position = 100
break
default:
return
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, ScrollEvent.KEYBOARD))
protected function startScrolling(e:*=null):void {
timer.reset()
this.addEventListener(Event.ENTER_FRAME, scroll)
movement = (movement * (LINES_PER_SECOND * PIXELS_PER_LINE)) / stage.frameRate
dispatchEvent(new ScrollEvent(ScrollEvent.CONTINOUS_SCROLL_START, eventOrigin))
protected function stopScrolling(e:*=null) {
timer.stop()
this.removeEventListener(Event.ENTER_FRAME, scroll)
stage.removeEventListener(KeyboardEvent.KEY_UP, stopScrolling)
stage.removeEventListener(MouseEvent.MOUSE_UP, stopScrolling)
dispatchEvent(new ScrollEvent(ScrollEvent.CONTINOUS_SCROLL_STOP, eventOrigin))
if (partHold) {
partHold.removeEventListener(MouseEvent.MOUSE_OUT, stopScrolling)
partHold = null
protected function mouse_onWheelScrollHandler(event:MouseEvent) {
// The mouse wheel delta arrives inverted
var delta:int = -event.delta
movement = delta * PIXELS_PER_LINE
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, ScrollEvent.MOUSE_WHEEL))
//{ region Slider Drag functions
protected function startSliderDrag(event:MouseEvent) {
if (isVertical)
mouseOffset = slider.getBounds(this).y - this.mouseY
else
mouseOffset = slider.getBounds(this).x - this.mouseX
stage.addEventListener(MouseEvent.MOUSE_MOVE, onSliderDrag)
stage.addEventListener(MouseEvent.MOUSE_UP, stopSliderDrag)
dispatchEvent(new ScrollEvent(ScrollEvent.SLIDER_DRAG_START, ScrollEvent.SLIDER))
protected function stopSliderDrag(event:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_UP, stopSliderDrag)
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onSliderDrag)
dispatchEvent(new ScrollEvent(ScrollEvent.SLIDER_DRAG_STOP, ScrollEvent.SLIDER))
protected function onSliderDrag(event:MouseEvent) {
if (isVertical) {
if (bar.height == slider.height)
return
} else {
if (bar.width == slider.width)
return
if (isVertical)
position = (this.mouseY + mouseOffset - arrowUp.height) / (bar.height - slider.height)
else
position = (this.mouseX + mouseOffset - arrowUp.width) / (bar.width - slider.width)
//} endregion
//{ region Visual functions
/// Adds all required parts to the scrollbar's display list
protected function addParts():void {
setPosition(content, 0, 0, false, false)
addChild(this.bar)
addChild(this.arrowUp)
addChild(this.arrowDown)
addChild(this.slider)
addChild(this.content)
* Updates all parts to fit the new dimensions and positions.
public function update(e:*= null):void {
contentBounds = content.getBounds(this)
updatePartsPositions()
// Ugly, but updates everything that was not update in the above call based on the content's position and size
position = position
protected function updatePartsPositions(event:Event = null):void {
if (isVertical) {
// The parts width is divided by 2 because they will be center aligned
var newX:Number = contentBounds.width +
contentPadding +
Math.max(slider.width, arrowUp.width, arrowDown.width, bar.width) / 2
setPosition(arrowUp, newX, 0, true, false)
setPosition(bar, newX, arrowUp.height, true, false)
setPosition(arrowDown, newX, arrowUp.height + bar.height, true, false)
setPosition(slider, newX, null, true, false)
} else {
var newY:Number = contentBounds.height +
contentPadding +
Math.max(slider.height, arrowUp.height, arrowDown.height, bar.height) / 2
setPosition(arrowUp, 0, newY, false, true)
setPosition(bar, arrowUp.width, newY, false, true)
setPosition(arrowDown, arrowUp.width + bar.width, newY, false, true)
setPosition(slider, null, newY, false, true)
updateMask()
private function updateMask():void {
if (content.mask && this.contains(content.mask))
removeChild(content.mask)
var contentMask:Sprite = createWindowMask()
addChild(contentMask)
content.mask = contentMask
protected function setPosition(part:DisplayObject, newX:Object=null, newY:Object=null, alignHorizontal:Boolean=false, alignVertical:Boolean=false):void {
var bounds:Rectangle = part.getBounds(this)
if (newX is Number)
part.x = int(newX) + (part.x - bounds.x) - ((alignHorizontal) ? bounds.width / 2 : 0)
if (newY is Number)
part.y = int(newY) + (part.y - bounds.y) - ((alignVertical) ? bounds.height / 2 : 0)
//} endregion
//{ region Functions to draw parts
private function createDefaultBar():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xFFFFFF)
if (isVertical)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, windowSize - DEFAULT_SIDE * 2)
else
image.graphics.drawRect(0, 0, windowSize - DEFAULT_SIDE * 2, DEFAULT_SIDE)
image.graphics.endFill()
//image.buttonMode = true
return image
private function createDefaultArrow(inverted:Boolean):Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xBFBFBF)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, DEFAULT_SIDE)
image.graphics.endFill()
image.graphics.lineStyle(3)
if (isVertical) {
if (inverted) {
image.graphics.moveTo(4, 4)
image.graphics.lineTo(10, 16)
image.graphics.lineTo(16, 4)
} else {
image.graphics.moveTo(4, 16)
image.graphics.lineTo(10, 4)
image.graphics.lineTo(16, 16)
} else {
if (inverted) {
image.graphics.moveTo(4, 4)
image.graphics.lineTo(16, 10)
image.graphics.lineTo(4, 16)
} else {
image.graphics.moveTo(16, 4)
image.graphics.lineTo(4, 10)
image.graphics.lineTo(16, 16)
image.buttonMode = true
return image
private function createDefaultSlider():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xBFBFBF)
if (isVertical)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, windowSize - DEFAULT_SIDE * 2)
else
image.graphics.drawRect(0, 0, windowSize - DEFAULT_SIDE * 2, DEFAULT_SIDE)
image.graphics.endFill()
image.buttonMode = true
return image
private function createWindowMask():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(0)
image.graphics.beginFill(0x000000, 1)
if (isVertical)
image.graphics.drawRect(0, 0, content.width + 1, windowSize)
else
image.graphics.drawRect(0, 0, windowSize, content.width + 1)
image.graphics.endFill()
image.alpha = 0
return image
//} endregion
And this is the ScrollEvent AS file:
package boppreh.ui
import flash.events.Event;
* Events related to the Scrollbar class.
* Author: Lucas Boppre Niehues ([email protected])
* Date: 09/02/2010
public class ScrollEvent extends Event
/// Dispatched when a scroll movement occurs
public static const SCROLL:String = "scroll"
/// Dispatched when the user has clicked and is holding an arrow or the bar
public static const CONTINOUS_SCROLL_START:String = "continous scroll start"
/// Dispatched when the user has clicked and dropped an arrow or the bar
public static const CONTINOUS_SCROLL_STOP:String = "continous scroll stop"
/// Dispatched when the user starts dragging the slider part
public static const SLIDER_DRAG_START:String = "slider drag start"
/// Dispatched when the user stops dragging the slider part
public static const SLIDER_DRAG_STOP:String = "slider drag stop"
/// Origin type representing the arrow up part
public static const ARROW_UP:String = "arrow up"
/// Origin type representing the arrow down part
public static const ARROW_DOWN:String = "arrow down"
/// Origin type representing the bar part
public static const BAR:String = "part"
/// Origin type representing the slider part
public static const SLIDER:String = "slider"
/// Origin type representing the keyboard
public static const KEYBOARD:String = "keyboard"
/// Origin type representing the mouse wheel
public static const MOUSE_WHEEL:String = "mouse wheel"
public var origin:String
* Creates a new ScrollEvent object.
* @param type the object type (first group of declared constants)
* @param origin the object that originated the event (second group of declared constants)
public function ScrollEvent (type:String, origin:String, bubbles:Boolean = false, cancelable:Boolean = false) {
this.origin = origin
super(type, bubbles, cancelable)
Any help would be appreciated. I've been stuck here all day.I'm having a difficult time with the Scrollbar component. I'm trying to have a scrollbar set up to navigate a text field or a MC of a text field. I managed to get it functioning within the desired frame, however when I jump to another frame, that very same content appears on the other frame, despite the fact that said frame did not have the scrollbar nor the content pasted within.
The bar seems to do what I want it to do save for the unwelcomed presence outside of the frame of choice. Here's the code I'm using. This is the keyframe code:
import boppreh.ui.Scrollbar
var scrollbar1:Scrollbar = new Scrollbar(boomboom, 500, true, false, 293, bar, slider, arrowUp, arrowDown)
addChild(scrollbar1)
scrollbar1.x = 50
scrollbar1.y = 50
And this is the code found in the AS file:
package boppreh.ui
import flash.display.*
import flash.events.*
import flash.geom.Rectangle;
import flash.utils.Timer
import flash.ui.Keyboard
* Scrollbar to handle single display objects.
* Author: Lucas Boppre Niehues ([email protected])
* Date: 09/02/2010
public class Scrollbar extends Sprite {
/// The default width for the default slider, bar and arrows, as well as the default arrows' height
public static const DEFAULT_SIDE:Number = 20
/// The delay (in milliseconds) between clicking and holding an arrow and the slider moving continously
public static var SCROLL_DELAY:Number = 300
/// The number of lines to be scrolled every second during continous scrolling
public static var LINES_PER_SECOND:Number = 1.5
/// Number of pixels to be scrolled for each mouse wheel line (default lines per wheel tick is 3)
public static var PIXELS_PER_LINE:Number = 16
protected var windowSize:Number
protected var contentPadding:Number
protected var isVertical:Boolean
/// Stored movement to be applied on the next "scroll()" call
protected var movement:Number
/// Timer used to control the delay before continous scrolling
protected var timer:Timer
protected var content:DisplayObject
protected var contentBounds:Rectangle
protected var bar:InteractiveObject
protected var arrowUp:InteractiveObject
protected var arrowDown:InteractiveObject
protected var slider:InteractiveObject
protected var partHold:InteractiveObject
protected function get eventOrigin():String {
if (partHold == arrowUp)
return ScrollEvent.ARROW_UP
else if (partHold == arrowDown)
return ScrollEvent.ARROW_DOWN
else if (partHold == bar)
return ScrollEvent.BAR
throw new Error("Unkown event origin.")
private var mouseOffset:Number
protected function get maxContentPos():Number {
if (isVertical)
return -(contentBounds.height - windowSize) - 1
else
return -(contentBounds.width - windowSize) - 1
/// The content's current position, in a scale from 0 to 1
public function get position():Number {
if (isVertical)
return contentBounds.y / maxContentPos
else
return contentBounds.x / maxContentPos
public function set position(value:Number) {
value = Math.min(1, Math.max(value, 0))
var newContentPos:Number = value * maxContentPos
setPosition(content, isVertical ? null : newContentPos, isVertical ? newContentPos : null, false, false)
contentBounds = content.getBounds(this)
if (isVertical) {
bar.height = windowSize - (arrowUp.height + arrowDown.height)
slider.height = (windowSize / Math.max(contentBounds.height, windowSize)) * bar.height
var newSliderY:Number = arrowUp.height + (-newContentPos / contentBounds.height) * bar.height
setPosition(slider, null, newSliderY, false, false)
} else {
bar.width = windowSize - (arrowUp.width + arrowDown.width)
slider.width = (windowSize / Math.max(contentBounds.width, windowSize)) * bar.width
var newSliderX:Number = arrowUp.width + (-newContentPos / contentBounds.width) * bar.width
setPosition(slider, newSliderX, null, false, false)
updatePartsPositions()
* Creates a new Scrollbar object to scroll a single Display Object.
* @param content the object to be scrolled
* @param windowSize the height or width of the scrollbar, depending if it's vertical or not; i.e.: the dimension of the content's visible part
* @param isVertical defines if the scrollbar's parts should be placed on the right or bottom of the content, and if the content should be scrolled upways or to the right
* @param autoUpdate automatically checks for dimensions changes in any part and updates accordingly. Use only if the content will be resized
* @param contentPadding the distance between the content and all the other parts
* @param bar the bar object to be used; if null, a default one will be used
* @param slider the slider object to be used; if null, a default one will be used
* @param arrowUp the arrow up/left object to be used; if null, a default one will be used
* @param arrowDown the arrow down/right object to be used; if null, a default one will be used
public function Scrollbar(content:DisplayObject, windowSize:Number, isVertical:Boolean=true, autoUpdate:Boolean=false, contentPadding:Number=5, bar:InteractiveObject=null, slider:InteractiveObject=null, arrowUp:InteractiveObject=null, arrowDown:InteractiveObject=null) {
this.content = content
this.windowSize = windowSize
this.contentPadding = contentPadding
this.isVertical = isVertical
this.bar = bar || createDefaultBar()
this.arrowUp = arrowUp || createDefaultArrow(false)
this.arrowDown = arrowDown || createDefaultArrow(true)
this.slider = slider || createDefaultSlider()
timer = new Timer(SCROLL_DELAY)
timer.addEventListener(TimerEvent.TIMER, startScrolling)
addParts()
if (autoUpdate)
this.addEventListener(Event.ENTER_FRAME, update)
configureListeners()
update()
position = 0
protected function scroll(e:*= null):void {
// This nested if forbids the slider to continue moving if the user is
// "holding" the bar and the slider already reached the mouse position
if (e && (e is Event) && (Event(e).type == Event.ENTER_FRAME)) {
if (partHold == bar) {
var sliderBounds:Rectangle = slider.getBounds(this)
if (isVertical) {
if (mouseY > sliderBounds.top && mouseY < sliderBounds.bottom) {
stopScrolling()
return
} else {
if (mouseX > sliderBounds.left && mouseX < sliderBounds.right) {
stopScrolling()
return
scrollPixels(movement)
* Scrolls the content by the specified ammount.
* @param number number of pixels to be scrolled
protected function scrollPixels(number:Number):void {
position += number / -maxContentPos
protected function configureListeners():void {
slider.addEventListener(MouseEvent.MOUSE_DOWN, startSliderDrag)
for each (var part:InteractiveObject in [arrowUp, arrowDown, bar]) {
part.addEventListener(MouseEvent.MOUSE_DOWN, fixedPart_onMouseDownHandler)
addEventListener(MouseEvent.MOUSE_WHEEL, mouse_onWheelScrollHandler)
addEventListener(KeyboardEvent.KEY_DOWN, keyboard_onKeyDownHandler)
protected function fixedPart_onMouseDownHandler(event:MouseEvent):void
partHold = InteractiveObject(event.currentTarget)
if (partHold == arrowUp) {
movement = -PIXELS_PER_LINE
} else if (partHold == arrowDown) {
movement = PIXELS_PER_LINE
} else if (partHold == bar) {
var sliderBounds:Rectangle = slider.getBounds(this)
if (isVertical) {
if (mouseY > (sliderBounds.top + sliderBounds.height / 2))
movement = windowSize
else
movement = -windowSize
} else {
if (mouseX > (sliderBounds.left + sliderBounds.width / 2))
movement = windowSize
else
movement = -windowSize
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, eventOrigin))
stage.addEventListener(MouseEvent.MOUSE_UP, stopScrolling)
partHold.addEventListener(MouseEvent.MOUSE_OUT, stopScrolling)
timer.start()
protected function keyboard_onKeyDownHandler(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.UP:
case Keyboard.LEFT:
movement = -PIXELS_PER_LINE
break
case Keyboard.DOWN:
case Keyboard.RIGHT:
movement = PIXELS_PER_LINE
break
case Keyboard.SPACE:
case Keyboard.PAGE_DOWN:
movement = windowSize
break
case Keyboard.PAGE_UP:
movement = -windowSize
break
case Keyboard.HOME:
movement = 0
position = 0
break
case Keyboard.END:
movement = 0
position = 100
break
default:
return
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, ScrollEvent.KEYBOARD))
protected function startScrolling(e:*=null):void {
timer.reset()
this.addEventListener(Event.ENTER_FRAME, scroll)
movement = (movement * (LINES_PER_SECOND * PIXELS_PER_LINE)) / stage.frameRate
dispatchEvent(new ScrollEvent(ScrollEvent.CONTINOUS_SCROLL_START, eventOrigin))
protected function stopScrolling(e:*=null) {
timer.stop()
this.removeEventListener(Event.ENTER_FRAME, scroll)
stage.removeEventListener(KeyboardEvent.KEY_UP, stopScrolling)
stage.removeEventListener(MouseEvent.MOUSE_UP, stopScrolling)
dispatchEvent(new ScrollEvent(ScrollEvent.CONTINOUS_SCROLL_STOP, eventOrigin))
if (partHold) {
partHold.removeEventListener(MouseEvent.MOUSE_OUT, stopScrolling)
partHold = null
protected function mouse_onWheelScrollHandler(event:MouseEvent) {
// The mouse wheel delta arrives inverted
var delta:int = -event.delta
movement = delta * PIXELS_PER_LINE
scroll()
dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, ScrollEvent.MOUSE_WHEEL))
//{ region Slider Drag functions
protected function startSliderDrag(event:MouseEvent) {
if (isVertical)
mouseOffset = slider.getBounds(this).y - this.mouseY
else
mouseOffset = slider.getBounds(this).x - this.mouseX
stage.addEventListener(MouseEvent.MOUSE_MOVE, onSliderDrag)
stage.addEventListener(MouseEvent.MOUSE_UP, stopSliderDrag)
dispatchEvent(new ScrollEvent(ScrollEvent.SLIDER_DRAG_START, ScrollEvent.SLIDER))
protected function stopSliderDrag(event:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_UP, stopSliderDrag)
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onSliderDrag)
dispatchEvent(new ScrollEvent(ScrollEvent.SLIDER_DRAG_STOP, ScrollEvent.SLIDER))
protected function onSliderDrag(event:MouseEvent) {
if (isVertical) {
if (bar.height == slider.height)
return
} else {
if (bar.width == slider.width)
return
if (isVertical)
position = (this.mouseY + mouseOffset - arrowUp.height) / (bar.height - slider.height)
else
position = (this.mouseX + mouseOffset - arrowUp.width) / (bar.width - slider.width)
//} endregion
//{ region Visual functions
/// Adds all required parts to the scrollbar's display list
protected function addParts():void {
setPosition(content, 0, 0, false, false)
addChild(this.bar)
addChild(this.arrowUp)
addChild(this.arrowDown)
addChild(this.slider)
addChild(this.content)
* Updates all parts to fit the new dimensions and positions.
public function update(e:*= null):void {
contentBounds = content.getBounds(this)
updatePartsPositions()
// Ugly, but updates everything that was not update in the above call based on the content's position and size
position = position
protected function updatePartsPositions(event:Event = null):void {
if (isVertical) {
// The parts width is divided by 2 because they will be center aligned
var newX:Number = contentBounds.width +
contentPadding +
Math.max(slider.width, arrowUp.width, arrowDown.width, bar.width) / 2
setPosition(arrowUp, newX, 0, true, false)
setPosition(bar, newX, arrowUp.height, true, false)
setPosition(arrowDown, newX, arrowUp.height + bar.height, true, false)
setPosition(slider, newX, null, true, false)
} else {
var newY:Number = contentBounds.height +
contentPadding +
Math.max(slider.height, arrowUp.height, arrowDown.height, bar.height) / 2
setPosition(arrowUp, 0, newY, false, true)
setPosition(bar, arrowUp.width, newY, false, true)
setPosition(arrowDown, arrowUp.width + bar.width, newY, false, true)
setPosition(slider, null, newY, false, true)
updateMask()
private function updateMask():void {
if (content.mask && this.contains(content.mask))
removeChild(content.mask)
var contentMask:Sprite = createWindowMask()
addChild(contentMask)
content.mask = contentMask
protected function setPosition(part:DisplayObject, newX:Object=null, newY:Object=null, alignHorizontal:Boolean=false, alignVertical:Boolean=false):void {
var bounds:Rectangle = part.getBounds(this)
if (newX is Number)
part.x = int(newX) + (part.x - bounds.x) - ((alignHorizontal) ? bounds.width / 2 : 0)
if (newY is Number)
part.y = int(newY) + (part.y - bounds.y) - ((alignVertical) ? bounds.height / 2 : 0)
//} endregion
//{ region Functions to draw parts
private function createDefaultBar():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xFFFFFF)
if (isVertical)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, windowSize - DEFAULT_SIDE * 2)
else
image.graphics.drawRect(0, 0, windowSize - DEFAULT_SIDE * 2, DEFAULT_SIDE)
image.graphics.endFill()
//image.buttonMode = true
return image
private function createDefaultArrow(inverted:Boolean):Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xBFBFBF)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, DEFAULT_SIDE)
image.graphics.endFill()
image.graphics.lineStyle(3)
if (isVertical) {
if (inverted) {
image.graphics.moveTo(4, 4)
image.graphics.lineTo(10, 16)
image.graphics.lineTo(16, 4)
} else {
image.graphics.moveTo(4, 16)
image.graphics.lineTo(10, 4)
image.graphics.lineTo(16, 16)
} else {
if (inverted) {
image.graphics.moveTo(4, 4)
image.graphics.lineTo(16, 10)
image.graphics.lineTo(4, 16)
} else {
image.graphics.moveTo(16, 4)
image.graphics.lineTo(4, 10)
image.graphics.lineTo(16, 16)
image.buttonMode = true
return image
private function createDefaultSlider():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(1)
image.graphics.beginFill(0xBFBFBF)
if (isVertical)
image.graphics.drawRect(0, 0, DEFAULT_SIDE, windowSize - DEFAULT_SIDE * 2)
else
image.graphics.drawRect(0, 0, windowSize - DEFAULT_SIDE * 2, DEFAULT_SIDE)
image.graphics.endFill()
image.buttonMode = true
return image
private function createWindowMask():Sprite {
var image:Sprite = new Sprite()
image.graphics.lineStyle(0)
image.graphics.beginFill(0x000000, 1)
if (isVertical)
image.graphics.drawRect(0, 0, content.width + 1, windowSize)
else
image.graphics.drawRect(0, 0, windowSize, content.width + 1)
image.graphics.endFill()
image.alpha = 0
return image
//} endregion
And this is the ScrollEvent AS file:
package boppreh.ui
import flash.events.Event;
* Events related to the Scrollbar class.
* Author: Lucas Boppre Niehues ([email protected])
* Date: 09/02/2010
public class ScrollEvent extends Event
/// Dispatched when a scroll movement occurs
public static const SCROLL:String = "scroll"
/// Dispatched when the user has clicked and is holding an arrow or the bar
public static const CONTINOUS_SCROLL_START:String = "continous scroll start"
/// Dispatched when the user has clicked and dropped an arrow or the bar
public static const CONTINOUS_SCROLL_STOP:String = "continous scroll stop"
/// Dispatched when the user starts dragging the slider part
public static const SLIDER_DRAG_START:String = "slider drag start"
/// Dispatched when the user stops dragging the slider part
public static const SLIDER_DRAG_STOP:String = "slider drag stop"
/// Origin type representing the arrow up part
public static const ARROW_UP:String = "arrow up"
/// Origin type representing the arrow down part
public static const ARROW_DOWN:String = "arrow down"
/// Origin type representing the bar part
public static const BAR:String = "part"
/// Origin type representing the slider part
public static const SLIDER:String = "slider"
/// Origin type representing the keyboard
public static const KEYBOARD:String = "keyboard"
/// Origin type representing the mouse wheel
public static const MOUSE_WHEEL:String = "mouse wheel"
public var origin:String
* Creates a new ScrollEvent object.
* @param type the object type (first group of declared constants)
* @param origin the object that originated the event (second group of declared constants)
public function ScrollEvent (type:String, origin:String, bubbles:Boolean = false, cancelable:Boolean = false) {
this.origin = origin
super(type, bubbles, cancelable)
Any help would be appreciated. I've been stuck here all day. -
Help Needed : Setting JDBC Datasource in Crystal XI using Sybase 12.5??
All,
We are migrating our systems to the Crystal XI from Crystal 9 Reporting Servers. I need some technical assistance on the Java API ( use of the Datasources) .
Problem: Currently in Crystal 9 we are using OLEDB datasources to connect to various Sybase 12.5 databases (which is been set programmatically at runtime). After I changed the Java code for getting the report object from the Crystal XI server instead of 9. I stared facing the dbLogon failed exceptions.. But surprisingly it does work randomly on only one datasource for a given session (AppServer Restart).
Need Help on Topics:
1. Is there any different way of configuring/usage the OLEDB datasources for CrXI? or any Java API changes while setting the datasource when using OLEDB?
2. Configuration required for using Simple JDBC connection (Sybase) instead of OLEDB? Can I get detailed help on this.
I will prefer using JDBC for CrXI using the Sybase 12.5, but there are very less documentation for how to configure and set databases at runtime.
Many Thanks in Adv.
Regards - Sudhir Deshmukh | Solutions LeadHi Sudhir,
For Building up a connection for OLEDB we need :
In order for Crystal Reports to connect to a database through OLE DB, there are some requirements that must be met:
u2022 The database client software must be installed on the client machine.
u2022 The client machine must be able to connect to the server from its client software
u2022 The client softwareu2019s working directory (example. c:\orant\bin) must be in the Windows search path
u2022 The OLE DB provider must be installed on the local machine.
We have the connection for crystal reports through OLEDB :
The process by which Crystal Reports access data from an OLE DB data source consists of these five layers:
Crystal Reports Layer
OLE DB Translation Layer
OLE DB Layer
DBMS Translation (OLE DB provider) Layer
Database Layer
The data translation is similar to the ODBC connection model. Crystal Reports uses CRDB_ADO.DLL to communicate to the OLE DB provider, which communicates to the database. Crystal Reports can connect to any database as long as that database has an OLE DB provider.
When creating a new report in Crystal Reports, OLE DB data sources are found in the Create New Connection folder with the OLE DB (ADO) connection.
Regards,
Naveen. -
Help needed to take JSP content to hard copy
this is what i hav encounterd with..i hav text content in a jsp .that is to be printed in a in a pre printed paper,i only need to print some numbers and text in the page given infornt of the the fields printed in the page.can anyone giv a suggetion.i
hav no idea how to do it.plse help.thnaks in advance.This forum provides a spellchecker in the message editor toolbar. It might help a lot.
-
Help need setting up remote desktop (on a router)
hey networking pros,
I have major trouble setting up remote login (remote desktop).
Specification : OSX tiger, LINKSYS
now i have managed to use tightVNC and manage remote desktop BUT that was when i was on the same network. Now my laptop lies at home and at school (work) i have windows running and want to access my mac at home. I cant manage to do that. Since i am on a different network and that i have router at home and also i do not use air port express (i use a linksys)
I need a static ip which in need to know the DNS servers (adelphia dosent give that to me since i am not a business customer). I have enabled port forwarding (5900) i have even set up an an account with dysDNS.org (i dunno how that helped).
can some one please give me with step by step instruction.
thanksYou already have most of what you need, but you do need a little more understanding of what you're doing.
Keep in mind that the Microsoft Remote Desktop Connection client is one-way only. You can connect from a Mac to a Window XP Professional computer, but not from Windows XP Pro to Mac OS X. What I describe below is how to connect from a Mac on the Internet to a Windows XP Pro computer at home.
First, Remote Desktop may look like VNC, but it's not the same thing. Therefore, port 5900, which works with VNC, won't work for Remote Desktop. You'll want to port forward 3389 to make this work. When you go to your router and make this port forward entry, you'll enter the IP address of the machine you want to direct all RDC traffic to. This gets the RDC traffic from your router to your computer.
You went to DynDNS.org to help you find your router on the Internet. The IP address, as you've researched, can change. But if you set up your router to report its IP address to DynDNS then you can always connect to your router by name. You don't have to keep track of your IP address changing. DynDNS will do this for you. This gets the RDC traffic from you to your router.
So, the steps are:
1. Set up a DynDNS.org account and you'll give yourself a name such as "myrouter" so that you can use a name like "myrouter.homeip.net" to connect to your home network.
2. On your router, port forward all incoming Internet 3389 traffic to the IP address and port 3389 of your computer.
3. On your Windows XP Pro computer (you can't do this with Windows XP Home) enable the Remote Desktop Connection software (right-click My Computer --> Properties --> Remote tab --> select the second checkbox).
4. From a Mac somewhere on the Internet, open the RDC client and enter the DynDNS name you gave yourself and click the Connect button.
5. Your Mac will contact DynDNS and get your current IP address.
6. Your Mac will then connect to your home router, which will forward all RDC traffic (coming in on port 3389) to your Windows computer in your home.
Hope this helps! bill
1 GHz Powerbook G4 Mac OS X (10.4.4) -
Help needed setting up printParams in c#
I am trying to setup a automated print to PDF file setting from within my C# .net application. I have made good progress with setting up the needed code but i am unable to set the right printParams to pass the reader to print the PDF to a new PDF file by giving it a file name in the printParams.
I user Adobe Professional 9.0 and .net 3.5
Below is the code i have. Running these params gives me a exception. I have comments above each param. Any help is appreciated.
//binaryOK,bitmapDPI,booklet,colorOverride,colorProfile,downloadFarEastFonts,
object[] printParams = { true, 300, null, 1, "Printer/PostScript Color Management", false,
//fileName,firstPage,flags,fontPolicy,gradientDPI,interactive,lastPage,nUpAutoRotate
"TestPrintJs.pdf", 0, 0, 0, 150, 0, _pdDoc.GetNumPages() -1,false,
//nUpNumPagesH,nUpNumPagesV,nUpPageBorder,nUpPageOrder,pageHandling,pageSubset,printAsIma ge
2,2,false,0,0,0,false,
//printContent,printerName,psLevel,rasterFlags,reversePages,titleLabel,tileMark,tileOverl ap,tileScale,
0,String.Empty,0,0,false,false,0,0,1.0,
//transperencyLevel,usePrinterCRD,useT1Conversion
100,0,0};
T.InvokeMember(
"print",
BindingFlags.InvokeMethod |
BindingFlags.Public |
BindingFlags.Instance,
null, jsObj, printParams);What led you to believe that is the order in which arguments will be processed? There is no defined order, and it's certainly not alphabetic. Print is expecting an object with named properties that it can reference - not simply an ordered array.
-
Help needed setting up an accelerometer via serial port
Hoping you might be able to give me some advice and point me in the right direction as my experience with labview is limited.
I am wanting to read data from an accelerometer streaming through a serial port. Using the labview examples i have no problems in connecting to the device and seeing the data but i am going around in circles trying to work out where to from now.
I need to create a VI which would show data streaming and then gives the user the ability to save data for various time periods to a text file. I am getting stuck as the data from the accelerometer is constantly streaming in 20byte packets every 2ms in the following format: 7E 00 0E 83 00 00 26 00 01 0E 00 02 00 01 F9 02 64 E5, where 00 02 01 F9 02 64 is the data of interest and of course when starting to read from the device it isnt necessary going to begin at the start of the packet.
I am assuming that inside the while loop i need to get the vi to scan the string to find the start of the first packet and then begin writing it to an array using a shift register for each sample with the left over from the string if not reading the full packet being attached to the next read, then if the data is to be saved to a txt file get it to enter a for loop for the user to define the number of samples to be saved or use an index array option to save a subset of data to a txt file.
Would greatly appreciate any device or examples of the most efficient way to set this up before i lose my sanity!The easy way is a three step process.
First, acquire 2n-1 bytes (39 in your case) so you are sure you have a full set of data. Parse out the first full set using the string utilities (match pattern, split string, etc.). The remainder of the string is the start of your next data set.
Second, acquire enough points to get the next data set and parse it.
Third, continue looping and getting 20 bytes (keep verifying your start and end so you know if there are glitches).
A harder, but far more robust, way, is the following:
Read in data until you get your start sequence. A circular buffer would be useful for this (you will need to implement this yourself).
Read in your data of interest and record/save/...
Read in the terminator.
Repeat as needed.
For all of these, you can use a flat sequence in a loop, but a state machine is far easier and more flexible in the long run. Check out the LabVIEW help and these forums for how to create and use a state machine.
It is often easier to use arrays of U8s instead of strings for this type of data manipulation. Under the hood, they are the same thing, so the conversions between the two are highly efficient.
Let us know about any problems you run into.
This account is no longer active. Contact ShadesOfGray for current posts and information. -
Help needed setting up access point to public network
Hi from a newbie,
Assuming they are suitable, I want to use one (or two) AP1232AG-E-K9 access points for Internet connection through a public wireless network (BTFON), where wire broadband is not an option. I've downloaded what I think is the correct manual for the APs and I'm now scratching my head as to where and how to start setting them up. I want to use these Cisco APs in the hope they will give me better wireless performance than I'm currently getting, which is frequently flakey.
I've tried to reset the APs to the factory default but there seem to be different ways of doing this depending on what you want and what you've got. I made up a console cable to access the console but there even appear to be different versions of this so I'm not sure if the cable I have is the correct one.
I have setup and used lower end wireless devices in the past but these Cisco units seem real complicated and I'm going to need help in getting them working.
Any assistance would be much appreciated.
Kind regards,
Glenn.Updated network diagram.
-
Help needed setting specific date in GregorianCalendar object?
Hi All!
I have set SimpleTimeZone object in GregorianCalendar object. How can I set a new date to the GregorianCalendar object, such that i can find DAY_OF_YEAR specific to this date's day?
URGENT replies will be appreciated!Thanks for ur reply!
but the problem is that i have to create a method:
public int getDayOfYear(int day, int month, int year)
return day_of_the year;
This method should accept user specified day, month and year and passes to GregorianCalendar/Calendar object. I need want to get DAY_OF_YEAR value from Calendar.DAY_OF_YEAR which it will provide, but the change is not affecting!
ACTUAL CODE
===========
public static double getDayofYear(int hr, int min, int sec)
String[] ids = TimeZone.getAvailableIDs(5 * 60 * 60 * 1000);
SimpleTimeZone pdt = new SimpleTimeZone(5 * 60 * 60 * 1000, ids[0]);
for (int i=0; i<ids.length; i++)
System.out.println (ids);
//setting DLS start and end rule
pdt.setStartRule(Calendar.MAY, 1, Calendar.SUNDAY, 00 * 60 * 60 * 1000);
pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 00 * 60 * 60 * 1000);
Calendar calendar = new GregorianCalendar(pdt);
//Date trialTime = new Date();//SET DATE
//calendar.setTime(trialTime);
calendar.set(Calendar.HOUR,hr);
calendar.set(Calendar.MINUTE,min);
calendar.set(Calendar.SECOND,sec);
return ((double) calendar.get(Calendar.DAY_OF_YEAR));
This method is giving true output for today [2nd Dec. 2002 -> 336], but only when it accepts current time, not date. Also giving same output on changing arguments!
Hoping ur help! -
Help needed setting up WebUI for Wireless Gateway
I have a problem setting up a webUI for my demo project.
I am just doing a simple WSN application measuring temperature on a WSN-3121 thermocouple node, and logging it on a wireless RT gateway NI 9792.
Then I wanted to create a web UI for it, and display whats in the gateway's UI - see project.
SO I'm coming up stuck with the web UI. I've tried reading as much as I can but I still dont know what I'm doing wrong.
As far as I can see, I need to create a web service in the build specs for my gateway, and place the gateway_main.vi as the vi to use. Then build it, and deploy it. Once that has happened and I run the vi on the gateway, I created a webUI as shown in the pic, where it imports the web service from the gateway using 192.168.0.16:8080 - that works fine.
When I run the webUI, it just sits there and times out.
I am using LAbview 2010. Please help.
Solved!
Go to Solution.
Attachments:
Straight Temperature Monitor.zip 2152 KB
webUIsetup.jpg 75 KBHello markza,
Your approach to using Web UI Builder and understanding its use case is exactly right, the issue lies in the web service you have deployed. The VI you are building as a web service, i.e. gateway_main.vi, has while loops in it and hence cannot be used as a web service. The reason for the timeout is that your UI Builder app is calling the LV2010 web service and is getting stuck there waiting for the while loops to complete. Also, the cluster datatype is not supported in Web UI Builder so you would have to break up the Wireless Node Sampling Time input into two separate numeric inputs.
I would recommend creating a subVI out of your code inside the inner while loop in gateway_main.vi. This subVI should have two numeric inputs to replace the cluster (as mentioned above) and not have either of the Start or Stop boolean inputs. Outputs would stay the same i.e. two doubles and a boolean.
Let me know if that helps you and if you have any further questions.
Thanks!
Diya Jakkidi
LabVIEW Web UI Builder R&D -
Help needed setting up cluster communication network
Hi,
I need some help setting up a two node cluster communication network.
I have two virtual Servers each with four virtual nics.
I want to create a network for:
Management
Heartbeat
Live Migration
iSCSI
What type of switch would I need to create for each of them? (External/Internal/Private)
I presume that they would all have to be external as they will have to be able to communicate with the other host in the cluster through the physical network.
Would I need to configure VLANs on the physical switch to keep the traffic isolated?
ThanksThat's all. I don't see any reason to create 4th node. Regarding the iSCSI target - for the test you can install this one
https://www.starwindsoftware.com/starwind-virtual-san-free on the Hyper-V host which can create iSCSI disks. Just create Internal network for the iSCSI traffic (add third adapter to the
FS nodes of course) which is providing network visibility between the VMs and the hypervisor. (you can use the external network too of course).
Regarding the live migration - this is something you cannot test with single hyper-v host. You'll need at least two. You can try ESX which can expose virtualization instructions to the VMs and create two Hyper-V VM to test live migration.
1) It's actually possible to install StarWind Virtual SAN on the same hosts where hypervisor (in this case Hyper-V) runs. That would build so-called hyper-converged setup, something Microsoft is going to represent with Windows Server 2016 (vNext) and Storage
Spaces Direct. Except MSFT requires at least 4 nodes and StarWind can do 2 and 3 :)
2) All hypervisors except Hyper-V do support "nested" virtualization these days. So for very lean labs f.e. ESXi sounds like a better choice.
Cheers,
Anton Kolomyeytsev [MVP]
StarWind Software Chief Architect
Profile:
Blog:
Twitter:
LinkedIn:
Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.
Hi VR38DETT,
I may need your help with a couple of Starwind Virtual SAN questions.
Thanks -
Help needed setting-up a Y-Cam on a WRT54GS
Has anybody set up a Y-Cam Knight surveillance camera using a WRT54GS router. I have set one up on my network. All my PC’s see it ok, the problem is I should be able it remotely access it from anywhere in the World with no PC’s on as it has a built in server, but I can’t nor can anybody else that I give my ip address (not the network address) to. I (and others) can access it using my ip address when I have the PC on and I run a third party program WebCamXP 5. It sends out a “movement detected” warning e-mail to me ok with no PC on, I have done all the setup as directed, static address, port forwarding ect .Has anybody got any ideas on the settings so I can remotely access it.
In order to Access camera remotely you need to forward ports for your camera on the router . And also make sure that the wanip address on router should be public.
Maybe you are looking for
-
I need to run an active directory that is on a WAN (Utah). a server 2012 standard will be the DC with 60Mbps internet speed both up and downstream. approximately 100 clients/member systems will be all over the united states. NO VPN. only via internet
-
I'm Disapointed with iTunes 8.1 performance! How do I go back to 8.0?
I was very happy with iTunes 8.0 then allong comes 8.1 and I did and upgrade. Way too many things just didn't work and iTunes was now very sluggish. I have the Installation file for iTunes 8.0 but iTunes is still sluggish. I would hate to totally uni
-
how can i search for a certain word in a txt file?
-
Hi, Please any one can help me in setting ldap client for solaris 7 guidelines or any website or docs help. Thanking you, Naren
-
Have a iPhone 5s and can't Download iwork apps for free
I bought my iPhone 5s since 1 year (after september). There i get the iWork apps for free. But now they cost money. Some Information : Now I´m on iOS8 I have changed one time my email-adress My iPhone 5s is registered on my apple id I hope you can he